PEG and template system?

Started by newland, September 15, 2014, 01:20:42 PM

Previous topic - Next topic

newland

Hi,



I'm wondering, is there something like the PEG implementation of guile:



https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html">https://www.gnu.org/software/guile/docs ... rsing.html">https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html



That would allow to define templates and to define parsing rules for e.g. the wiki, without using regular expressions.  Probably slower, but probably also easier to read.



thanks,



newland

TedWalther

#1
Interesting.  Are PEG related to the Scheme Regular Expressions that the Scheme crowd created a few years ago as the superior alternative to regular expressions?



http://srfi.schemers.org/srfi-115/srfi-115.html#Abstract">http://srfi.schemers.org/srfi-115/srfi- ... l#Abstract">http://srfi.schemers.org/srfi-115/srfi-115.html#Abstract



Or the Structural Regular Expressions designed by Rob Pike?



http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf">http://doc.cat-v.org/bell_labs/structur ... xps/se.pdf">http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf
Cavemen in bearskins invaded the ivory towers of Artificial Intelligence.  Nine months later, they left with a baby named newLISP.  The women of the ivory towers wept and wailed.  \"Abomination!\" they cried.

newland

#2
Hi,



The scheme regex or Pike's system are not related to PEG's.  A PEG is a top down parsing language, and you can use it to parse data or (small) command languages.  A PEG often looks like a BNF , so making it quite easy to read and write.  In contrast, simple regexes are easy to write and work fast, but complicated regexes are difficult to write and nearly impossible to decipher.  Lua also has a quite nice PEG implementation.







https://en.wikipedia.org/wiki/Parsing_expression_grammar">https://en.wikipedia.org/wiki/Parsing_e ... on_grammar">https://en.wikipedia.org/wiki/Parsing_expression_grammar



https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form">https://en.wikipedia.org/wiki/Backus–Naur_Form

newland

#3
Hi,



forgot to add this link: http://www.inf.puc-rio.br/~roberto/docs/ry10-01.pdf">http://www.inf.puc-rio.br/~roberto/docs/ry10-01.pdf on how to write regex equivalent in PEG.  That article gives  some motivation why PEG's are sometimes easier.

cormullion

#4
https://github.com/dahu/nlpeg">https://github.com/dahu/nlpeg ?