Skip to content

SimplePEG/Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

84c3c22 · Oct 3, 2017

History

31 Commits
Jun 28, 2016
Jun 28, 2016
Jun 28, 2016
Jun 25, 2016
Jun 25, 2016
Jun 28, 2016
Jun 22, 2016
Jun 22, 2016
Oct 3, 2017
Jun 28, 2016
Jun 28, 2016

Repository files navigation

Python version of SimplePEG

A very simple implementation of PEG parser generator.

Join the chat at https://gitter.im/SimplePEG/Python https://travis-ci.org/SimplePEG/Python.svg?branch=master https://coveralls.io/repos/github/SimplePEG/Python/badge.svg?branch=master

To use, simply do

from simplepeg import SPEG
parser = SPEG()
parser.parse_grammar('GRAMMAR test b -> "a";')
ast = parser.parse_text('a')
print ast.to_json()

or

from simplepeg import SPEG
parser = SPEG()
ast = parser.parse('GRAMMAR test b -> "a";', 'a')
print ast.to_json()

Grammar Example

url.peg

GRAMMAR url

url       ->  scheme "://" host pathname search hash?;
scheme    ->  "http" "s"?;
host      ->  hostname port?;
hostname  ->  segment ("." segment)*;
segment   ->  [a-z0-9-]+;
port      ->  ":" [0-9]+;
pathname  ->  "/" [^ ?]*;
search    ->  ("?" [^ #]*)?;
hash      ->  "#" [^ ]*;