def start_one(rule): rule | star(ID)
def start_four(rule): rule | star(four_sub)
def section(rule): rule | (head, star(_or(define, NEWLINE))) rule.astAttrs = {'head':head, 'body':[define]}
def value(rule): rule | (ID, star('-', _or(INT, ID))) rule.dont_ignore = True
def start(rule): rule | star(_or(section, NEWLINE)) rule.astAttrs = {'sections':[section]}
def value(rule): rule | (star(_or(*not_newline)), _or(EOF, (NEWLINE, [INDENT, star(star(_or(*not_newline)), _or(NEWLINE, EOF)), _or(DEDENT, EOF)]))) rule.astAttrs = {'text':list(not_newline)+[NEWLINE]}
def at(rule): rule | (no_ignore("@", ID), _or(STRING, SSTRING, star(_not(_or(";", "}")))), ";") rule | star(_not(_or(";", "}")))
def start(rule): rule | (RESERVED, star(ID, RESERVED))
def at(rule): rule | (no_ignore('@', ID), _or(STRING, SSTRING, star(_not(_or(';','}')))), ';') rule | star(_not(_or(';','}')))