Mercurial > lcfOS
comparison python/burg.x @ 357:818be710e13d
Added acceptance function to burg
author | Windel Bouwman |
---|---|
date | Fri, 14 Mar 2014 15:14:29 +0100 |
parents | 44f336460c2a |
children |
comparison
equal
deleted
inserted
replaced
356:52492b304adf | 357:818be710e13d |
---|---|
1 | 1 |
2 %tokens ':' ';' '(' ')' ',' template id number '%%' '%terminal' header | 2 %tokens ':' ';' '(' ')' ',' string id number '%%' '%terminal' header |
3 | 3 |
4 %% | 4 %% |
5 | 5 |
6 burgdef: header '%%' directives '%%' rules { self.system.header_lines = $1.val }; | 6 burgdef: header '%%' directives '%%' rules { self.system.header_lines = $1.val }; |
7 | 7 |
18 termid: id { self.system.add_terminal($1.val) }; | 18 termid: id { self.system.add_terminal($1.val) }; |
19 | 19 |
20 rules: | 20 rules: |
21 | rules rule; | 21 | rules rule; |
22 | 22 |
23 rule: id ':' tree cost template { self.system.add_rule($1.val, $3, $4, $5.val) }; | 23 rule: id ':' tree cost string { self.system.add_rule($1.val, $3, $4, None, $5.val) }; |
24 rule: id ':' tree cost string string { self.system.add_rule($1.val, $3, $4, $5.val, $6.val) }; | |
24 | 25 |
25 cost: number { return $1.val }; | 26 cost: number { return $1.val }; |
26 | 27 |
27 tree: id { return self.system.tree($1.val) } | 28 tree: id { return self.system.tree($1.val) } |
28 | id '(' tree ')' { return self.system.tree($1.val, $3) } | 29 | id '(' tree ')' { return self.system.tree($1.val, $3) } |