[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LPEG output
- From: Roberto Ierusalimschy <roberto@...>
- Date: Wed, 19 Jun 2019 09:30:49 -0300
> I've just finished reading Mr Ierusalemschi's 2008 paper on Lua
> Parsing Expression Grammars, and I'm very enthusiastic about the
> possibilities of PEG in general. Especially the intermediate language
> that it produces (because I want to play with creating an engine that
> executes that code). And there lies a bit of a problem for me: I
> cannot seem to make the traditional PEG libraries output the
> intermediate language, for example in the form that is also used in
> the paper (the 'ASM' of the language, with the instructions 'Char',
> 'Jump', etc). Is there a way to use the PEG library much more
> modularly, in a way that, for example, a C compiler can generally also
> output ASM? Thanks!
The current version (now at github [1]) has a method to print
these bytecodes. ('pattern:pcode()', when compiled with LPEG_DEBUG
defined.) However, there is no explicit way to export or have
other access to the code. But it shouldn't be difficult for another
library to access that code inside the corresponding userdata.
(See the print function 'lp_printcode' for inspiration.)
Please keep in mind that the current instruction set is different from
the one used back there in that paper, but the general idea is the same.
[1] https://github.com/roberto-ieru/LPeg
-- Roberto