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

Class UFOExpressionParserFortran

source code

         object --+    
                  |    
UFOExpressionParser --+
                      |
                     UFOExpressionParserFortran
Known Subclasses:

A parser for UFO algebraic expressions, outputting Fortran-style code.

Instance Methods [hide private]
 
__init__(self, model, *args, **opts)
Initialize the lex and yacc
source code
 
clean(self)
remove information about object parse for previous parsing
source code
 
p_expression_number(self, p)
expression : NUMBER
source code
 
p_expression_variable(self, p)
expression : VARIABLE
source code
 
p_expression_power(self, p)
expression : expression POWER expression
source code
 
p_expression_if(self, p)
expression : expression IF boolexpression ELSE expression
source code
 
p_expression_ifimplicit(self, p)
expression : expression IF expression ELSE expression
source code
 
p_expression_cond(self, p)
expression : COND '(' expression ',' expression ',' expression ')'
source code
 
p_expression_recms(self, p)
expression : RECMS '(' boolexpression ',' expression ')'
source code
 
p_expression_complex(self, p)
expression : COMPLEX '(' expression ',' expression ')'
source code
 
p_expression_func(self, p)
expression : CSC group | SEC group | ACSC group | ASEC group | RE group | IM group | ARG group | SQRT group | CONJ group | REGLOG group | REGLOGP group | REGLOGM group | TAN group | ATAN group | BUILTIN group
source code
 
create_modelfct(self) source code
 
p_expression_function1(self, p)
expression : FUNCTION '(' expression ')'
source code
 
p_expression_function2(self, p)
expression : FUNCTION '(' expression ',' expression ')' | FUNCTION '(' boolexpression ',' expression ')'
source code
 
p_expression_function3(self, p)
expression : FUNCTION '(' expression ',' expression ',' expression ')'
source code
 
p_expression_function4(self, p)
expression : FUNCTION '(' expression ',' expression ',' expression ',' expression ')'
source code
 
p_expression_real(self, p)
expression : expression RE2
source code
 
p_expression_pi(self, p)
expression : PI
source code

Inherited from UFOExpressionParser: build, p_error, p_expression_binop, p_expression_group, p_expression_logical, p_expression_logicalcomb, p_expression_uminus, p_group_parentheses, p_group_parentheses_boolexpr, p_statement_expr, parse, t_ACSC, t_ARG, t_ASEC, t_ATAN, t_BUILTIN, t_COMPLEX, t_COND, t_CONJ, t_CSC, t_ELSE, t_FUNCTION, t_IF, t_IM, t_LOGICAL, t_LOGICALCOMB, t_PI, t_RE, t_RE2, t_RECMS, t_REGLOG, t_REGLOGM, t_REGLOGP, t_SEC, t_SQRT, t_TAN, t_VARIABLE, t_error, t_newline

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  builtin_equiv = {'abs': 'ABS', 'bool': 'LOGICAL', 'float': 'RE...
  logical_equiv = {'!=': '.NE.', '<': '.LT.', '<=': '.LE.', '=='...
  types_def = {bool: lambda v: v, int: lambda v: 'INT(%s)' % v, ...

Inherited from UFOExpressionParser: literals, parsed_string, precedence, re_cmath_function, t_NUMBER, t_POWER, t_ignore, tokens

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, model, *args, **opts)
(Constructor)

source code 

Initialize the lex and yacc

Overrides: object.__init__

clean(self)

source code 

remove information about object parse for previous parsing

Overrides: UFOExpressionParser.clean

p_expression_function1(self, p)

source code 

expression : FUNCTION '(' expression ')'

Overrides: UFOExpressionParser.p_expression_function1

p_expression_function2(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ')' | FUNCTION '(' boolexpression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function2

p_expression_function3(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function3

p_expression_function4(self, p)

source code 

expression : FUNCTION '(' expression ',' expression ',' expression ',' expression ')'

Overrides: UFOExpressionParser.p_expression_function4

Class Variable Details [hide private]

builtin_equiv

Value:
{'abs': 'ABS',
 'bool': 'LOGICAL',
 'float': 'REAL',
 'int': 'INTEGER',
 'max': 'MAX',
 'min': 'MIN'}

logical_equiv

Value:
{'!=': '.NE.',
 '<': '.LT.',
 '<=': '.LE.',
 '==': '.EQ.',
 '>': '.GT.',
 '>=': '.GE.',
 'and': '.AND.',
 'or': '.OR.'}

types_def

Value:
{bool: lambda v: v, int: lambda v: 'INT(%s)' % v, float: lambda v: 'DB\
LE(%s)' % v, complex: lambda v: 'DCMPLX(%s)' % v}