Example #1
0
 def nonterminal_apply(self, name, args):
     if name in self.terminal_names:
         raise ValueError(
             "parameters applied to terminal {!r}".format(name))
     if len(set(k for k, expr in args)) != len(args):
         raise ValueError("parameter passed multiple times")
     return grammar.Nt(name, tuple(args))
Example #2
0
 def nonterminal(self, name):
     if name in self.terminal_names:
         return name
     return grammar.Nt(name, ())
Example #3
0
 def nt_lhs_with_params(self, name, params):
     return grammar.Nt(name, tuple(params))
Example #4
0
 def nt_lhs_no_params(self, name):
     return grammar.Nt(name, ())
Example #5
0
 def nonterminal_apply(self, name, ob, args, cb):
     assert (ob, cb) == ('[', ']')
     if len(set(k for k, expr in args)) != len(args):
         raise ValueError("parameter passed multiple times")
     return grammar.Nt(name, tuple(args))
Example #6
0
 def nonterminal_apply(self, name, args):
     if len(set(k for k, expr in args)) != len(args):
         raise ValueError("parameter passed multiple times")
     return grammar.Nt(name, tuple(args))