Exemplo n.º 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))
Exemplo n.º 2
0
 def nonterminal(self, name):
     if name in self.terminal_names:
         return name
     return grammar.Nt(name, ())
Exemplo n.º 3
0
 def nt_lhs_with_params(self, name, params):
     return grammar.Nt(name, tuple(params))
Exemplo n.º 4
0
 def nt_lhs_no_params(self, name):
     return grammar.Nt(name, ())
Exemplo n.º 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))
Exemplo n.º 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))