FancyPars
Bastiaan Veelo via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Wed Sep 16 14:25:38 PDT 2015
On Wednesday, 16 September 2015 at 20:17:15 UTC, Stefan Koch
wrote:
> On Monday, 14 September 2015 at 08:50:48 UTC, Bastiaan Veelo
> wrote:
>
>> Understanding the source of FancyPars is challenging because
>> the core source, example vibe.d application source and
>> supporting code, as well as generated lexer/parser code are
>> all contained in the same directory and committed in the
>> repository.
>
> Sorry about that.
> The Files that are really interesting are
> 1. fancy_grammar.d - contains helpers for working with the
> FancyParsGrammar Definition.
> 2. fancy_genPars.d - generates a function which parses the
> output form the generated lexer
> 3. fancy_genLex.d generates the lexer function.
> 4. fancy_genAST.d - generates the AST
Thanks. At first I thought that
fancy_[ast|token|lexer|parser|printer].d were generated files
because their content is so similar to the code produced in the
vibe application. But on closer look I think it is the other way
around: that the example grammar in vibe describes its own input
format, and that the similarity in the produced output to said
files is an illustration that it works the way it should. Am I
close?
> The Syntax is inspired by D and Pegged.
> It is going to be extend though and you should consider it
> unstable.
> I will document it as it becomes more stable.
Wow that is great news! Not so abandoned after all :-)
> TransCompilers are what fancyPars is written for.
> please show me a few examples of your pascal gramamr.
> might be in pegged or EBNF or something similar.
>
> So I can see if there are idioms I should integrate in fp.
Please have a look in
https://www.dropbox.com/sh/k0ewq4dkz0q009v/AADq5V6j5lPBfBkmpwIpkMq8a?dl=0
p2d.d is my dance with Pegged, containing a subset of the
Extended Pascal grammar. It was only after typing close to 400
lines of grammar that I discovered left-recursions, which are
commented out. These put a spanner in the works, but before that
I felt this could go somewhere: even comments are translated.
There are many recursions in the complete grammar, for which you
find the specification in the PDF. (This is the ANSI/IEEE
standard; Extended Pascal became an ISO standard a year or so
later, with identical text.) Note the alphabetical list of EBNF
starting on page 129; the numbers in front refer to the
corresponding section.
> Thanks for the interest.
Thanks for finding the time for this.
Bastiaan.
More information about the Digitalmars-d-announce
mailing list