Class VerilogCalculator
- java.lang.Object
-
- ru.ispras.verilog.parser.interpreter.VerilogCalculator
-
public final class VerilogCalculator extends java.lang.Object
VerilogCalculator
implements expression reduction and evaluation utilities.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ru.ispras.fortress.data.Data
evaluate(ru.ispras.fortress.expression.Node node)
Evaluates the expression.static ru.ispras.fortress.data.Data
evaluate(ru.ispras.fortress.expression.Node node, java.util.Map<java.lang.String,ru.ispras.fortress.data.Data> context)
Evaluates the expression.static ru.ispras.fortress.data.Data
evaluate(ru.ispras.fortress.expression.Node node, ru.ispras.fortress.transformer.ValueProvider valueProvider)
Evaluates the expression.static java.lang.Integer
evaluateInteger(ru.ispras.fortress.expression.Node node)
Evaluates the integer-value expression.static java.lang.Integer
evaluateInteger(ru.ispras.fortress.expression.Node node, java.util.Map<java.lang.String,ru.ispras.fortress.data.Data> context)
Evaluates the integer-value expression.static java.lang.Integer
evaluateInteger(ru.ispras.fortress.expression.Node node, ru.ispras.fortress.transformer.ValueProvider valueProvider)
Evaluates the integer-value expression.static ru.ispras.fortress.expression.Node
reduce(ru.ispras.fortress.expression.Node node)
Reduces the expression by folding constant subexpressions.
-
-
-
Method Detail
-
reduce
public static ru.ispras.fortress.expression.Node reduce(ru.ispras.fortress.expression.Node node)
Reduces the expression by folding constant subexpressions.- Parameters:
node
- the expression to be reduced.- Returns:
- the reduced expression.
-
evaluate
public static ru.ispras.fortress.data.Data evaluate(ru.ispras.fortress.expression.Node node, ru.ispras.fortress.transformer.ValueProvider valueProvider)
Evaluates the expression.- Parameters:
node
- the expression to be evaluated.valueProvider
- the variables' values provider.- Returns:
- the expression value or
null
.
-
evaluate
public static ru.ispras.fortress.data.Data evaluate(ru.ispras.fortress.expression.Node node, java.util.Map<java.lang.String,ru.ispras.fortress.data.Data> context)
Evaluates the expression.- Parameters:
node
- the expression to be evaluated.context
- the variables' values.- Returns:
- the expression value or
null
.
-
evaluate
public static ru.ispras.fortress.data.Data evaluate(ru.ispras.fortress.expression.Node node)
Evaluates the expression.- Parameters:
node
- the expression to be evaluated.- Returns:
- the expression value or
null
.
-
evaluateInteger
public static java.lang.Integer evaluateInteger(ru.ispras.fortress.expression.Node node)
Evaluates the integer-value expression.- Parameters:
node
- the expression to be evaluated.- Returns:
- the expression value or
null
.
-
evaluateInteger
public static java.lang.Integer evaluateInteger(ru.ispras.fortress.expression.Node node, ru.ispras.fortress.transformer.ValueProvider valueProvider)
Evaluates the integer-value expression.- Parameters:
node
- the expression to be evaluated.valueProvider
- the variables' values provider.- Returns:
- the expression value or
null
.
-
evaluateInteger
public static java.lang.Integer evaluateInteger(ru.ispras.fortress.expression.Node node, java.util.Map<java.lang.String,ru.ispras.fortress.data.Data> context)
Evaluates the integer-value expression.- Parameters:
node
- the expression to be evaluated.context
- the variables' values.- Returns:
- the expression value or
null
.
-
-