Package madgraph :: Package iolibs :: Module ufo_expression_parsers :: Class UFOExpressionParser
[hide private]
[frames] | no frames]

Class UFOExpressionParser

source code

Known Subclasses:

A base class for parsers for algebraic expressions coming from UFO.

Instance Methods [hide private]
 
__init__(self, **kw)
Ininitialize the lex and yacc
source code
 
parse(self, buf)
Parse the string buf
source code
 
t_CSC(self, t)
(?<!\w)csc(?=\()
source code
 
t_SEC(self, t)
(?<!\w)sec(?=\()
source code
 
t_ACSC(self, t)
(?<!\w)acsc(?=\()
source code
 
t_ASEC(self, t)
(?<!\w)asec(?=\()
source code
 
t_SQRT(self, t)
cmath\.sqrt
source code
 
t_PI(self, t)
cmath\.pi
source code
 
t_CONJ(self, t)
complexconjugate
source code
 
t_IM(self, t)
(?<!\w)im(?=\()
source code
 
t_RE(self, t)
(?<!\w)re(?=\()
source code
 
t_COMPLEX(self, t)
(?<!\w)complex(?=\()
source code
 
t_FUNCTION(self, t)
(cmath\.){0,1}[a-zA-Z_][0-9a-zA-Z_]*(?=\()
source code
 
t_VARIABLE(self, t)
[a-zA-Z_][0-9a-zA-Z_]*
source code
 
t_newline(self, t)
\n+
source code
 
t_error(self, t) source code
 
build(self, **kwargs) 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
 
p_error(self, p) source code
Class Variables [hide private]
  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', '*',...
Class Variable Details [hide private]

tokens

Value:
('POWER',
 'CSC',
 'SEC',
 'ACSC',
 'ASEC',
 'SQRT',
 'CONJ',
 'RE',
...

t_NUMBER

Value:
'([0-9]+\\.[0-9]*|\\.[0-9]+|[0-9]+)([eE][+-]{0,1}[0-9]+){0,1}'

precedence

Value:
(('left', '='),
 ('left', '+', '-'),
 ('left', '*', '/'),
 ('right', 'UMINUS'),
 ('left', 'POWER'),
 ('right', 'CSC'),
 ('right', 'SEC'),
 ('right', 'ACSC'),
...