diff options
Diffstat (limited to 'wlp_yacc.py')
-rw-r--r-- | wlp_yacc.py | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/wlp_yacc.py b/wlp_yacc.py deleted file mode 100644 index 910ed1f..0000000 --- a/wlp_yacc.py +++ /dev/null @@ -1,108 +0,0 @@ -import logging - -import rply - -logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', - level=logging.DEBUG) - -pg = rply.ParserGenerator(['OWNER', 'VAL', 'VAR'], - cache_id='wlp_parser') - -""" - $accept ::= block $end - - block ::= blockstatement - | block blockstatement - - blockstatement ::= owner '{' commandline '}' - - commandline ::= command - | commandline command - - command ::= varpart '=' valpart - - owner ::= OWNERID - - varpart ::= VARID - - valpart ::= VALID -""" - -## Makes from this source -## -## <kame@innocent.com> { -## From: = 'ME' Sender: = "Cosimo" Reply-to = "me" -## } -## -## <alfarano@students.cs.unibo.it> { -## From: = 'Cosimo Alfarano' -## X-Firstname: = 'Cosimo' -## } -## -## <kame@innocent.com> { -## From: = 'kame@inwind.it' -## Reply-to: = "KA" -## Sender: = "Kalfa" -## } -## -## this dictionary -## -## expected_dict = {'alfarano@students.cs.unibo.it': { -## 'From:': 'Cosimo Alfarano', -## 'X-Firstname:': 'Cosimo' -## }, -## 'kame@innocent.com': { -## 'From:': 'kame@inwind.it', -## 'Reply-to': 'me', -## 'Reply-to:': 'KA', -## 'Sender:': 'Kalfa'} -## } - - -@pg.production('main : block') -def main(p): - return p[0] - - -# block: -# blockstatement -# | block blockstatement -@pg.production('block : blockstatement') -def block(p): - logging.debug('block p = %s', p) - return p[0] - - -@pg.production('block : block blockstatement') -def block_blockstatement(p): - logging.debug('block p = %s', p) - return [p[0], [p[1]]] - - -# blockstatement: -# owner '{' commandline '}' -@pg.production('blockstatement : OWNER commandline') -def blockstatement(p): - logging.debug('blockstatement p = %s', p) - return [p[0], [p[1]]] - - -# commandline: -# command | commandline command -@pg.production('commandline : command') -def commandline(p): - logging.debug('commandline p = %s', p) - return p[0] - -@pg.production('commandline : commandline command') -def commandline_command(p): - return p[0] + [p[1]] - -# command: -# varpart '=' valpart { found(left,right,owner); } -@pg.production('command : VAR VAL') -def command(p): - logging.debug('command p = %s', p) - return [p[0], p[1]] - -parser = pg.build() |