A PEG Parser Generator on top of LpegLabel for the GSoC2020

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

A PEG Parser Generator on top of LpegLabel for the GSoC2020

Gustavo Castellanos

Hello!

My name is Gustavo and this is my first time writing to this mailing list.

I am writing to announce my project for the GSoC 2020 called Caribay, a PEG (Parsing Expression Grammar) parser generator built with LpegLabel, with support of automatic generation of error labels and error recovery rules. The generated parser produces a generic abstract syntax tree or a list of thrown errors. Caribay makes easier to parse lexical symbols, comments, identifiers and keywords using its own syntax.

We developed a parser for the input grammar, a preprocessor for computing FIRST and FOLLOW sets, an algorithm for automatically generating error labels, optional optimizations which can be enabled by the user, and a translator that generates LPegLabel patterns.

A story about the name: Caribay is the daughter of Zuhé (the Sun) and Chía (the Moon) from a legend of the Mirripuyes (an indigenous group from Mérida, Venezuela). Since Lua means Moon in Portuguese, the tool being the daughter of Lua sounded nice to me. Also, the legend involves the origin of five famous peaks from Mérida, so the name is related to "generating" things.

The Code

Caribay can be installed using Luarocks. The source code has been published on Github.

Who I am

I am a student of computer engineering at Universidad Simón Bolívar, Venezuela. I am interested in programming languages and learning new software engineering and computer science concepts.

Mentors

Sérgio Medeiros


Reply | Threaded
Open this post in threaded view
|

Re: A PEG Parser Generator on top of LpegLabel for the GSoC2020

Eduardo Barthel
Very interesting project!

I like how clean the Lua grammar looks in the `test/expected/lua/grammar.peg`.

I wished I could have tried that library back then,
because I've built a large customized Lua grammar using just LpegLabel
in the programming language I am currently creating
and looks like my grammar definitions would be much more readable with Caribay.

Thus Caribay looks like a cool project to try in a future refactor!

---
Eduardo Bart




Em qua., 2 de set. de 2020 às 02:15, Gustavo Castellanos <[hidden email]> escreveu:

Hello!

My name is Gustavo and this is my first time writing to this mailing list.

I am writing to announce my project for the GSoC 2020 called Caribay, a PEG (Parsing Expression Grammar) parser generator built with LpegLabel, with support of automatic generation of error labels and error recovery rules. The generated parser produces a generic abstract syntax tree or a list of thrown errors. Caribay makes easier to parse lexical symbols, comments, identifiers and keywords using its own syntax.

We developed a parser for the input grammar, a preprocessor for computing FIRST and FOLLOW sets, an algorithm for automatically generating error labels, optional optimizations which can be enabled by the user, and a translator that generates LPegLabel patterns.

A story about the name: Caribay is the daughter of Zuhé (the Sun) and Chía (the Moon) from a legend of the Mirripuyes (an indigenous group from Mérida, Venezuela). Since Lua means Moon in Portuguese, the tool being the daughter of Lua sounded nice to me. Also, the legend involves the origin of five famous peaks from Mérida, so the name is related to "generating" things.

The Code

Caribay can be installed using Luarocks. The source code has been published on Github.

Who I am

I am a student of computer engineering at Universidad Simón Bolívar, Venezuela. I am interested in programming languages and learning new software engineering and computer science concepts.

Mentors

Sérgio Medeiros