pyg will be a PEG parser library formed as an internal Python DSL. it will be used in cramex, a copycat of cram with expect support.

The surface is heading to resemble Boost.Spirit: grammars are composed using a vaguely (xBNF/PEG)-like syntax enabled through operator overloading.

>>> from pyg import Rule, chr_, int_

>>> n = Rule('number')
>>> o = Rule('operator')
>>> e = Rule('expression')

>>> e %= n >> o >> n
>>> o %= chr_('+-')
>>> n %= int_

>>> e.matches('42 + 69')
True, None
>>> e.matches('69')
True, None
>>> e.matches('42 69')
False, "Failed on line 1 column 3:\n42 69\n  ^\n"

Looking for mad skills in:

python parsing peg

This project is part of:

Hack Week 10

Activity

  • about 6 years ago: rneuhauser added keyword "peg" to pyg: PEG parsing runtime for Python
  • about 6 years ago: rneuhauser added keyword "parsing" to pyg: PEG parsing runtime for Python
  • about 6 years ago: rneuhauser added keyword "python" to pyg: PEG parsing runtime for Python
  • about 6 years ago: rneuhauser started pyg: PEG parsing runtime for Python
  • about 6 years ago: rneuhauser originated pyg: PEG parsing runtime for Python
  • Show History

    Comments

    • rneuhauser
      about 6 years ago by rneuhauser | Reply

      https://github.com/roman-neuhauser/py-impala - Import packages and modules from arbitrary directories and files

    Similar Projects

    Make "salt-toaster" available to be used outside SUSE by PSuarezHernandez

    The salt-toaster (https://github.com/openSUSE...


    Porting Askbot to Python 3 by rbueker

    During the last year Askbot, a question and ans...


    Uyuni: improve spacewalk-repo-sync performance by moio

    Let's make reposync faster

    Every day,

    ...


    Run and manage your Ansible cluster using Salt! by PSuarezHernandez

    At SUSE we've implemented a module on Salt call...


    Finish packaging Angr in OBS by a_faerber

    Following a FOSDEM presentation on [Angr](http:...