History: PEG

Preview of version: 9

Parsing Expression grammars. Parsing expression grammars allow for full lookahead and backtracking in time linear to the input size. This makes them more expressive than YACC or BNF, which are limited in the how far they look ahead, and as a consequence how far they can backtrack. They also require more memory than either YACC or BNF to parse an equivalently sized input.

PEG grammars also do not have a separate lexing stage. Lexing and parsing are performed at the same time, using the same language for both.

See wikipedia for additional general information on Parsing Expression Grammars.

4th Baseline Machine Grammar Proposal


.alyn.post. is working on a proposal for a 4th Machine Grammar Baseline, replacing the 3rd baseline's YACC grammar with a PEG grammar. This work is scheduled for inclusion into CLL version 2.0 or CLL version 2.1.

Morphology


Since PEG does not have a separate lexing stage, any PEG Machine Grammar will also need to express the Lojban Morphology in PEG.

Technical Points of the PEG language

  • The '.' characters means any character, in any character set. It is only used after fa'o, which unconditionally consumes the remaining characters.
  • '!.' is the way EOF is tested in PEG.
  • space is defined as the literal '.' (as opposed to the '.' operator of PEG), whitespace, and all punctuation other than ',' and '''.

CLL


The CLL will need to be updated to account for changes resulting from the translation of the grammar to PEG.

Main Article: CLL PEG Errata

Uncategorized Material

Open Discussion Points

  • jbogenturfa'i further transforms the PEG grammar into an idealized representation. This parse tree is suitable for programmatic manipulation. Why is this idealized parse tree not the way the PEG is written?

Lojban parsers that use PEG

See Also

  • Robin Powell's PEG Grammar Page. This document builds on the work camgusmis and xorxes have done, documented on this page.
  • Grammar, for a discussion of Lojban's grammar beyond PEG.
  • YACC, the language in which Lojban's official grammar is defined.
  • BNF, widely considered easier to read than the YACC grammar.

History

Information Version
Tue 10 of Jun, 2014 04:19 GMT mukti from 68.173.146.212 13
Sun 19 of Jan, 2014 03:43 GMT guskant from 123.230.96.166 12
Sun 16 of Sep, 2012 14:05 GMT gleki from 178.204.70.160 11
Fri 04 of Nov, 2011 14:33 GMT najrut from 178.205.62.228 10
Sun 03 of Jul, 2011 22:44 GMT alyn.post from 74.93.1.121 actually, I have an errata page specifically for PEG. 9
Sun 03 of Jul, 2011 22:40 GMT alyn.post from 74.93.1.121 place this work in time with CLL work. 8
Wed 09 of Feb, 2011 12:25 GMT alyn.post from 68.35.165.60 Add some uncategorized material relating to the baseline change proposal. 7
Wed 02 of Feb, 2011 04:48 GMT alyn.post from 68.35.165.60 Add link to Robin's website in See Also section. 6
Wed 02 of Feb, 2011 01:45 GMT alyn.post from 68.35.165.60 link in CLL PEG Errata 5
Wed 02 of Feb, 2011 01:41 GMT alyn.post from 68.35.165.60 move exact PEG format notes to this page. 4
Wed 02 of Feb, 2011 01:37 GMT alyn.post from 68.35.165.60 move material from other pages. 3
Tue 01 of Feb, 2011 23:53 GMT alyn.post from 68.35.165.60 flesh out the PEG page. 2
Mon 17 of May, 2004 19:55 GMT arj from 129.241.210.216 1