A base class for parsers for algebraic expressions coming from
UFO.
|
__init__(self,
**kw)
Ininitialize the lex and yacc |
source code
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t_FUNCTION(self,
t)
(cmath\.){0,1}[a-zA-Z_][0-9a-zA-Z_]*(?=\() |
source code
|
|
|
|
|
|
|
|
|
|
|
p_statement_expr(self,
p)
statement : expression |
source code
|
|
|
p_expression_binop(self,
p)
expression : expression '=' expression | expression '+' expression |
expression '-' expression | expression '*' expression | expression
'/' expression |
source code
|
|
|
p_expression_uminus(self,
p)
expression : '-' expression %prec UMINUS |
source code
|
|
|
p_group_parentheses(self,
p)
group : '(' expression ')' |
source code
|
|
|
p_expression_group(self,
p)
expression : group |
source code
|
|
|
p_expression_function1(self,
p)
expression : FUNCTION '(' expression ')' |
source code
|
|
|
p_expression_function2(self,
p)
expression : FUNCTION '(' expression ',' expression ')' |
source code
|
|
|
|
|
parsed_string = '
'
|
|
tokens = ( ' POWER ' , ' CSC ' , ' SEC ' , ' ACSC ' , ' ASEC ' , ' SQRT ' , ' CONJ ...
|
|
literals = ' =+-*/(), '
|
|
t_NUMBER = ' ([0-9]+\\.[0-9]*|\\.[0-9]+|[0-9]+)([eE][+-]{0,1}[0 ...
|
|
t_POWER = ' \\*\\* '
|
|
t_ignore = ' \t '
|
|
re_cmath_function = re.compile(r'cmath\.(?P< name > [ 0- 9a- zA- Z_] + ) ')
|
|
precedence = ( ( ' left ' , ' = ' ) , ( ' left ' , ' + ' , ' - ' ) , ( ' left ' , ' * ' , ...
|