Re: Recent Works on Programming Language Parsers
Darcy Shen via Texmacs-dev <[email protected]>
| Newsgroups | gmane.editors.texmacs.devel |
|---|---|
| Message-ID | <[email protected]> |
> OK, for the next several months, only bug fixes will be committed. Unfortunately, there are bugs from `Language(C++): re-impl coloring using improved string_parser` to `Language(DOT): tuning on dot-edit`. I will fix it next weekend and add the missing test cases. On 2020/3/29 上午9:43, TeXmacs wrote: > Thanks Darcy. With Covid-19 raging, it is indeed a top priority to > focus on the community. You are also in an ideal position for guiding > Chinese students who may wish to help in the GSoC context. > I am extremely busy, but hope to contribute a few ideas as well later. > > Best wishes, --Joris > > > On Sat, Mar 28, 2020 at 03:26:03PM +0800, Darcy Shen via Texmacs-dev wrote: >>> In the next one or two months, I will continue to work on improving the xyz_parser and abc_language. >> OK, for the next several months, only bug fixes will be committed. >> >> And last week, we have some good news on GSoC. For the next serveral months, I will focus more on the community: >> >> 1. Write documentation on devel (https://github.com/texmacs/devel) for new contributors >> 2. Review pull requests >> 3. ... >> >> On 2020/3/26 ??????9:07, TeXmacs wrote: >> >>> Hi Darcy, >>> >>> I noticed your recent changes. >>> Please be very careful when commiting changes, >>> since version 2.1 is still approaching, despite the Covid-19 setback. >>> >>> Best wishes, --Joris >>> >>> >>> On Mon, Mar 23, 2020 at 02:36:03AM +0800, Darcy Shen via Texmacs-dev wrote: >>>> Recent tree months, I wrote some parsers under src/Data/Parser: >>>> >>>> + blanks_parser >>>> >>>> + escaped_char_parser >>>> >>>> + identifier_parser >>>> >>>> + inline_comment_parser >>>> >>>> + keyword_parser >>>> >>>> + number_parser >>>> >>>> + operator_parser >>>> >>>> + string_parser (TODO: multi-line support) >>>> >>>> On top of these parsers, I rewrite various part of xxx_language.cpp . >>>> >>>> I didn't use a higher-level abstraction like packrat-parser. In my >>>> opinion,for now, low level small parsers written in C++ should work >>>> fine. >>>> >>>> Most programing languages are similar in syntax. Doing simple >>>> abstraction is sufficient for syntax highlighting. >>>> >>>> >>>> The goal of these small parsers with `can_parser` and `do_parser` is >>>> to minimize the time to implemented a new programming language >>>> parser. >>>> >>>> >>>> Below are the detailed progress: >>>> >>>> + dot: new composition of parsers, string_parser, keyword_parser, >>>> operator_parser >>>> >>>> + cpp: new composition of parsers, string_parser >>>> >>>> + java/scala/python: old composition of parsers, string_parser >>>> >>>> + others: old composition of parsers >>>> >>>> >>>> Composition of parsers: old vs new >>>> >>>> Almost all xxx_language.cpp (except scheme_language.cpp) is derived >>> >from mathemagix_language.cpp . >>>> I call it old-style composition of parsers. It is not efficient >>>> enough, because, we have to re-parse the code in `get_color`. >>>> >>>> Dive into concat_text.cpp:typeset_prog_string, we will find what >>>> actually is `get_color` and `advance`. >>>> >>>> The new-style composition of parsers, reduce the unnecessary >>>> parsings in get_color. >>>> >>>> >>>> Keyword/Operator Parser >>>> >>>> Aims to keep the (type, keyworkd) mapping in Scheme files. Please >>>> refer to `dot-lang.scm`. >>>> >>>> >>>> String Parser >>>> >>>> Currently, the String parser only support inline string. Actually, >>>> string and multi-comment are the same type. >>>> >>>> They both have openings and corresponding closings. >>>> >>>> The string parser will finally support multi-line. Once it is ready, >>>> the multi-comment parser will also be implemented >>>> >>>> in a short time. >>>> >>>> >>>> Recent Plans >>>> >>>> I will continue my developments on newly-supported languages (like >>>> dot). The goal is to make it extremely easy to >>>> >>>> support a new language. For coloring schemes, it is another topic. >>>> In the next one or two months, I will continue to >>>> >>>> work on improving the xyz_parser and abc_language. >>>> >>>> >>>> Darcy >>>> >>>> 2020/03/23 >>>> >>>> _______________________________________________ >>>> Texmacs-dev mailing list >>>> [email protected] >>>> https://lists.gnu.org/mailman/listinfo/texmacs-dev >>> _______________________________________________ >>> Texmacs-dev mailing list >>> [email protected] >>> https://lists.gnu.org/mailman/listinfo/texmacs-dev >> >> _______________________________________________ >> Texmacs-dev mailing list >> [email protected] >> https://lists.gnu.org/mailman/listinfo/texmacs-dev > _______________________________________________ > Texmacs-dev mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/texmacs-dev _______________________________________________ Texmacs-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/texmacs-dev