Re: GSOC 2016: FastParse library
Vladimir Polushin <[email protected]> Mon, 11 Apr 2016 06:14:59 -0700 (PDT)
| Newsgroups | gmane.comp.lang.scala |
|---|---|
| Message-ID | <[email protected]> |
Hello! I've just created pull-request that moved my repository into FastParse. I made a new module cssparse and added several basic tests along with test for PrettyPrinter and tests of large css files from bootstrap and primer <https://github.com/primer/primer>. вторник, 5 апреля 2016 г., 13:12:32 UTC+3 пользователь Haoyi Li написал: > > Yep, that looks good! > > The next step would be broadening the parser to accept more test input: > 1-2 more large-ish css files from 3rd party projects like Bootstrap or > JQuery UI. After that works, put together a simple test suite and send a > pull request to include your CSS parser and tests as a sample parser in the > FastParse repo. > > On Thu, Mar 31, 2016 at 11:50 PM, Vladimir Polushin <[email protected] > <javascript:>> wrote: > >> Hello! >> >> I wrote simple PrettyPrinter >> <https://github.com/vovapolu/CssParser/blob/master/src/main/scala/cssparser/PrettyPrinter.scala> >> for my AST tree, so now it can parse this <http://pastebin.com/7EHUyu52> into >> this <http://pastebin.com/2wqfh6ev> . Is it okay for the task? >> (Sorry for the long answer, I had an important assignment at the >> university) >> >> пятница, 25 марта 2016 г., 17:33:24 UTC+3 пользователь Haoyi Li написал: >>> >>> No worries about local cuts, we can discuss that more when GSOC starts >>> if we get a slot =) >>> >>> With regard to the CSS parser, the original goal still stands: >>> >>> """ >>> Lastly, w.r.t. the CSS parser, the end goal would be to have your parser >>> be complete enough to parse >>> >>> - >>> https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css >>> >>> into an AST, which can then be used to pretty-print it the same way this >>> does: >>> >>> - http://www.dirtymarkup.com/ >>> >>> Along with 1-2 more test CSS files of your choosing from other >>> well-known open source projects. After that, send a PR and we'll merge the >>> parser along with tests into the FastParse codebase. >>> >>> Note that you don't need to do this now - the proposal is probably more >>> urgent since it's due on the 25th of March - but this should happen by >>> mid-April when the student acceptance decisions are due. >>> >>> Note that this is a non-trivial amount of work, and I can't guarantee >>> you a spot on GSOC even if you do it (that's up to the kind mercies of >>> Google and the Scala org) but it will no doubt leave you proficient working >>> with this library and writing parsers. >>> """ >>> >>> Can your CSS parser parse bootstrap.min.css into one big AST, and >>> serialize it out again pretty-printed? If not, that's what to make it do >>> next =) After that the next step would be contributing it to the FastParse >>> repo as a bundled parser/example >>> >>> >>> On Fri, Mar 25, 2016 at 8:18 PM, Vladimir Polushin <[email protected]> >>> wrote: >>> >>>> Haoyi, hello! >>>> >>>> In my proposal you have written about "local" cuts, but I don't cleary >>>> understand this case. Can you give me some example? >>>> >>>> And I will continue to work on CSS Parser, what should I do next in it? >>>> >>>> понедельник, 21 марта 2016 г., 22:56:54 UTC+3 пользователь Vladimir >>>> Polushin написал: >>>> >>>>> Hello! I've just shared the proposal >>>>> https://docs.google.com/document/d/1DebYhXZ3wRfT6yPjv3tIEtacvmUKo25zhr-unJjjNhc/edit?usp=sharing >>>>> <https://docs.google.com/document/d/1DebYhXZ3wRfT6yPjv3tIEtacvmUKo25zhr-unJjjNhc/edit?usp=sharing> . >>>>> Could you review it and give me some feedback? >>>>> >>>>> четверг, 17 марта 2016 г., 17:59:28 UTC+3 пользователь Haoyi Li >>>>> написал: >>>>>> >>>>>> Lastly, w.r.t. the CSS parser, the end goal would be to have your >>>>>> parser be complete enough to parse >>>>>> >>>>>> - >>>>>> https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.cs >>>>>> >>>>>> into an AST, which can then be used to pretty-print it the same way >>>>>> this does: >>>>>> >>>>>> - http://www.dirtymarkup.com/ >>>>>> >>>>>> Along with 1-2 more test CSS files of your choosing from other >>>>>> well-known open source projects. After that, send a PR and we'll merge the >>>>>> parser along with tests into the FastParse codebase. >>>>>> >>>>>> Note that you don't need to do this now - the proposal is probably >>>>>> more urgent since it's due on the 25th of March - but this should happen by >>>>>> mid-April when the student acceptance decisions are due. >>>>>> >>>>>> Note that this is a non-trivial amount of work, and I can't guarantee >>>>>> you a spot on GSOC even if you do it (that's up to the kind mercies of >>>>>> Google and the Scala org) but it will no doubt leave you proficient working >>>>>> with this library and writing parsers. >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Mar 17, 2016 at 10:37 PM, Haoyi Li <[email protected]> wrote: >>>>>> >>>>>>> All three cases are more or less the same idea: you will need to >>>>>>> make FastParse generic enough to work with non String/Char data. >>>>>>> >>>>>>> Yes, you should dig into the code a bit and come up with some ideas >>>>>>> of how you would implement it. It's likely our plan will change if/when you >>>>>>> get accepted an GSOC starts, since we would have more time to go deeper >>>>>>> into things. Nevertheless, the exercise of putting together the proposal >>>>>>> will be valuable >>>>>>> >>>>>>> On Thu, Mar 17, 2016 at 12:07 AM, Vladimir Polushin < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Great :) Then I will start to write a proposal. And I would like to >>>>>>>> clarify about this: If I understand correctly, there are 3 main cases in >>>>>>>> idea, and in proposal I should describe how I will implement they with some >>>>>>>> rough plan? >>>>>>>> >>>>>>>> среда, 16 марта 2016 г., 16:02:06 UTC+3 пользователь Haoyi Li >>>>>>>> написал: >>>>>>>>> >>>>>>>>> That's a good start. A lot more work would go into that if we want >>>>>>>>> to get that into the main repo (and I do). If you've already put together a >>>>>>>>> proposal we can discuss how to take it further, if not you probably should >>>>>>>>> put together a proposal before the March 25th deadline and we can keep >>>>>>>>> working on it after. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Mar 16, 2016 at 7:25 PM, Vladimir Polushin < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> I wrote basic version of CSS parser >>>>>>>>>> https://github.com/vovapolu/CssParser . According to >>>>>>>>>> https://www.w3.org/TR/css-syntax-3/ it only breaks css into >>>>>>>>>> simple elements like words and delimiters and it also can handle blocks in >>>>>>>>>> brackets. Now I am planning to add more tests and to try to implement some >>>>>>>>>> complex structures (selectors, other rules) in parser, but I think it will >>>>>>>>>> be pretty hard given all these rules and requirements. >>>>>>>>>> >>>>>>>>>> вторник, 15 марта 2016 г., 6:05:14 UTC+3 пользователь Haoyi Li >>>>>>>>>> написал: >>>>>>>>>>> >>>>>>>>>>> A CSS parser would serve the purpose as well and could plausibly >>>>>>>>>>> be useful. I think a Smalltalk parser would be a bit obscure I don't think >>>>>>>>>>> it would serve well: people won't be familiar enough to use it as an >>>>>>>>>>> example, nor would they find it useful in real life for parsing their >>>>>>>>>>> smalltalk code (since they won't have any) >>>>>>>>>>> >>>>>>>>>>> I'm not totally convinced that a CSS parser would be simpler >>>>>>>>>>> than a Markdown parser though. The CSS3 Grammar: >>>>>>>>>>> >>>>>>>>>>> - https://www.w3.org/TR/css-syntax-3/ >>>>>>>>>>> >>>>>>>>>>> Certainly looks awfully complicated! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Mar 15, 2016 at 10:55 AM, Naftoli Gugenheim < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Have you seen CommonMark (http://commonmark.org/)? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Mon, Mar 14, 2016 at 6:59 PM Vladimir Polushin < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello! >>>>>>>>>>>>> >>>>>>>>>>>>> Several days ago I started to write markdown parser, but now >>>>>>>>>>>>> this task seems to me very hard to implement. I tried to google grammars of >>>>>>>>>>>>> markdown or some specification, but markdown literally doesn't have any >>>>>>>>>>>>> standard and any grammar I found is quite large and complicated for the >>>>>>>>>>>>> first experience with library. So may I write CSS or Smalltalk parser >>>>>>>>>>>>> first? They have clear and concise grammars, which won't cause difficulties >>>>>>>>>>>>> in the implemenation. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> пятница, 11 марта 2016 г., 7:24:06 UTC+3 пользователь Haoyi Li >>>>>>>>>>>>> написал: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hello! I wrote FastParse. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> A good first contribution to FastParse would probably be some >>>>>>>>>>>>>> kind of example parser. The project already has Scala, Python, JSON and XML >>>>>>>>>>>>>> parsers, but it would be nice to add to the collection. >>>>>>>>>>>>>> >>>>>>>>>>>>>> For example, a FastParse based Markdown parser would both >>>>>>>>>>>>>> very useful as well as serve to introduce you to the FastParse library and >>>>>>>>>>>>>> build you up to a reasonably high level of expertise. You would gain a much >>>>>>>>>>>>>> deeper understanding of its behavior and internals, the "why"s of the >>>>>>>>>>>>>> library, and be in a much better position to contribute significantly. >>>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Mar 11, 2016 at 3:59 AM, Vladimir Polushin < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>> Hello! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I am a third-year undergraduate Computer Science student at >>>>>>>>>>>>>>> the Moscow State University. I've been working with scala for a year and >>>>>>>>>>>>>>> now I want to start contributing to the Scala community. I looked thought >>>>>>>>>>>>>>> the list of ideas for GSOC, and I liked The FastParse library. I've already >>>>>>>>>>>>>>> used Scala Parser Combinators and I have a basic knowledge about formal >>>>>>>>>>>>>>> grammars and compilers. So where can I start? Should I fix some bug in that >>>>>>>>>>>>>>> repository first? >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>>>> Google Groups "scala-language" group. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>> Google Groups "scala-language" group. >>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>> Google Groups "scala-language" group. >>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "scala-language" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to [email protected]. >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "scala-language" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "scala-language" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "scala-language" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "scala-language" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.