11.1.9.3.2. Parser¶
This module implements a parser for Spice expressions.
-
class
PySpice.Spice.Expression.Parser.
Parser
[source]¶ Bases:
object
-
p_binary_operation
(p)[source]¶ expression : expression POWER expression | expression MULTIPLY expression | expression DIVIDE expression | expression MODULO expression | expression INT_DIVIDE expression | expression PLUS expression | expression MINUS expression | expression EQUAL expression | expression NOT_EQUAL expression | expression LESS expression | expression GREATER expression | expression LESS_EQUAL expression | expression GREATER_EQUAL expression | expression AND expression | expression OR expression
-
precedence
= (('left', 'IF'), ('left', 'OR'), ('left', 'AND'), ('left', 'GREATER', 'LESS', 'GREATER_EQUAL', 'LESS_EQUAL', 'NOT_EQUAL', 'EQUAL'), ('left', 'MINUS', 'PLUS'), ('left', 'INT_DIVIDE', 'MODULO', 'DIVIDE', 'MULTIPLY'), ('left', 'POWER'), ('left', 'NOT'))¶
-
reserved
= {}¶
-
start
= 'statement'¶
-
t_AND
= '&&'¶
-
t_COLON
= ':'¶
-
t_DIVIDE
= '/'¶
-
t_EQUAL
= '=='¶
-
t_GREATER
= '>'¶
-
t_GREATER_EQUAL
= '>='¶
-
t_IF
= '\\?'¶
-
t_INT_DIVIDE
= '\\/'¶
-
t_LEFT_PARENTHESIS
= '\\('¶
-
t_LESS
= '<'¶
-
t_LESS_EQUAL
= '<='¶
-
t_MINUS
= '-'¶
-
t_MODULO
= '%'¶
-
t_MULTIPLY
= '\\*'¶
-
t_NOT
= '!'¶
-
t_NOT_EQUAL
= '!='¶
-
t_OR
= '\\|\\|'¶
-
t_PLUS
= '\\+'¶
-
t_POWER
= '\\*\\*'¶
-
t_RIGHT_PARENTHESIS
= '\\)'¶
-
t_SEMICOLON
= ';'¶
-
t_SET
= '='¶
-
t_ignore
= ' \t'¶
-
t_ignore_COMMENT
= '\\#[^\\n]*'¶
-
tokens
= ['NAME', 'NUMBER', 'SEMICOLON', 'LEFT_PARENTHESIS', 'RIGHT_PARENTHESIS', 'SET', 'NOT', 'POWER', 'MULTIPLY', 'DIVIDE', 'INT_DIVIDE', 'MODULO', 'PLUS', 'MINUS', 'EQUAL', 'NOT_EQUAL', 'LESS', 'GREATER', 'LESS_EQUAL', 'GREATER_EQUAL', 'AND', 'OR', 'IF', 'COLON']¶
-