September 22, 2020 Adela Vais - SAOC Milestone 1 Update 1 - Dlang GLR Parser for GNU Bison | ||||
---|---|---|---|---|
| ||||
Hello! This is an update post for #SAOC2020. My plan for last week was to: - work more with M4, because the GLR parser will be written in both D and M4, by continuing to work in the Bison repository; - add documentation for Dlang in Bison's documentation (right now D is part of Bison as an experimental feature; this step would change that); - start analyzing the existing D LALR1 parser; - read an article that was recommended to me about LR parsers (details in the next section). As of last week: - I started analyzing the D LALR1 code, reading it and testing features along the way - that's how I discovered a bug[0]. - I modified the test calc.at, in Dlang and M4, in order to change the return value of yylex() from int to TokenKind[1]. It is still under review. I started adding to Bison's documentation, but it cannot be committed/made public without deciding on the return value of yylex() first - it is part of the Lexer interface, that the user must implement - so this step was pushed back. - I read and followed the examples from this article[2] recommended by Akim Demaille (one of my mentors and Bison co-maintainer), to better understand the LALR1 and GLR algorithms and to have a smoother transition for learning about GLR. - I needed a way of extracting the number of characters consumed by std.conv.parse, for location tracking purposes in Bison's D calc example, so I made a PR for dlang/phobos[3]. The plan for next week is: - to continue analyzing the LALR1 D parser; - to continue familiarizing myself with the M4 functions used within the repo; - to start analyzing the C and C++ existing parsers, by writing programs that would help me understand the key differences between them. General milestones can be found in my first SAoC post[4]. [0]: https://github.com/akimd/bison/commit/f8cd049ecc493067720ab873747391795ce59c64 [1]: https://github.com/adelavais/bison/commits/yylex [2]: https://www.codeproject.com/Articles/5259825/GLR-Parsing-in-Csharp-How-to-Use-The-Most-Powerful [3]: https://github.com/dlang/phobos/pull/7642 [4]: https://forum.dlang.org/post/ngdkxwyhrcduspuslfoe@forum.dlang.org |
Copyright © 1999-2021 by the D Language Foundation