Lines Matching refs:self
34 def __init__(self, message, token=None):
35 Exception.__init__(self, message)
36 self.token = token
39 def setupLexerFactory(self, **kwargs):
42 self.lex_kwargs = kwargs
44 def setupParserFactory(self, **kwargs):
55 self.yacc_kwargs = kwargs
57 def __getattr__(self, attr):
59 self.lexers = []
60 return self.lexers
63 self.setupLexerFactory()
64 return self.lex_kwargs
67 self.setupParserFactory()
68 return self.yacc_kwargs
71 self.lex = ply.lex.lex(module=self, **self.lex_kwargs)
72 return self.lex
75 self.yacc = ply.yacc.yacc(module=self, **self.yacc_kwargs)
76 return self.yacc
79 if not self.lexers:
81 return self.lexers[-1][0]
84 if not self.lexers:
86 return self.lexers[-1][1]
89 if not self.lexers:
91 return self.current_lexer.lineno
94 "'%s' object has no attribute '%s'" % (type(self), attr))
96 def parse_string(self, data, source='<string>', debug=None, tracking=0):
102 lexer = self.lex.clone()
104 self.lexers.append((lexer, source))
106 'productions' : self.yacc.productions,
107 'action' : self.yacc.action,
108 'goto' : self.yacc.goto,
109 'errorfunc' : self.yacc.errorfunc,
113 self.lexers.pop()
116 def parse_file(self, f, **kwargs):
126 return self.parse_string(f.read(), source, **kwargs)
128 def p_error(self, t):
131 (self.current_source, t.lineno, t.lexpos + 1, t.value)
133 msg = "Syntax error at end of %s" % (self.current_source, )
136 def t_error(self, t):