www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Adela Vais - SAOC Milestone 1 Update 2 - Dlang GLR Parser for GNU

Hello!

This is an update post for #SAOC2020.

My plan for last week was to:
- to continue analyzing the LALR1 D parser (done);
- to continue familiarizing myself with the M4 functions used 
within the repo (done);
- to start analyzing the C and C++ existing parsers, by writing 
programs that would help me understand the key differences 
between them (I didn't get to do this yet and I moved this on 
next week's to-do list).

As of last week:
- I continued analyzing the D LALR1 code and finished it for the 
most part. I found a few more bugs and solved them[0][1].
- I changed the return value of yylex() from int to TokenKind[2], 
as last week's patch was accepted.
- I started adding to Bison's documentation, and I will try to 
finish it for the moment, and add to it as I solve more bugs or 
add new features.
- The PR[3] for dlang/phobos is still open.
- I started working on changing the default value of 
api.token.raw[4] to true - as Dlang uses TokenKind and not int as 
a return value, collisions that are avoided by api.token.raw 
can't happen.
- I started working on adding lookahead correction[5] to D's 
LALR1 skeleton. This is a technique that allows for better error 
handling, and at the moment is not supported by the D backend.

The plan for next week is:
- to continue familiarizing myself with the M4 functions used 
within the repo (working on lookahead correction and continuing 
the add other features);
- to start analyzing the C and C++ existing parsers, by writing 
programs that would help me understand the key differences 
between them.

General milestones: [6].
Milestone 1 Update 1: [7].

[0]: 
https://github.com/akimd/bison/commit/de638df10447bde11a2a79c9c3233be1f7c406b6
[1]: 
https://github.com/akimd/bison/commit/2e5592b3abb94155e6814ddd985694df5dccfc67
[2]: 
https://github.com/akimd/bison/commit/f296669c0f23af63716050593865475471054941
[3]: https://github.com/dlang/phobos/pull/7642
[4]: 
https://www.gnu.org/software/bison/manual/html_node/_0025define-Summary.html
[5]: 
https://www.gnu.org/software/bison/manual/html_node/Lookahead.html
[6]: 
https://forum.dlang.org/post/ngdkxwyhrcduspuslfoe forum.dlang.org
[7]: 
https://forum.dlang.org/post/xxnwpbmagtzuhwmsusnu forum.dlang.org
Sep 30 2020