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) }