Class IfElseMacro

  • All Implemented Interfaces:
    Macro, MacroDeclarations

    public class IfElseMacro
    extends Object
    implements MacroDeclarations, Macro
    A macro declaration exposing the ifelse function.

    The ifelse macro can be used as follows:
    ifelse(condition, ifpart, elsepart)

    Whith the following constraints:
    • condition must be of boolean type
    • ifpart and elsepart must be of the same type
    • ifpart must be either of boolean, double or string type
    Examples:
    • ifelse(A < B, true, A = B)
    • ifelse(A = B, 4.0^2, 1/5)
    • ifelse(A > B, 'bigger', 'smaller')
    Version:
    $Revision: 1000 $
    Author:
    Benjamin Weber ( benweber at student dot ethz dot ch )
    • Constructor Detail

      • IfElseMacro

        public IfElseMacro()
    • Method Detail

      • hasMacro

        public boolean hasMacro​(String name)
        Whether the macro is declared
        Specified by:
        hasMacro in interface MacroDeclarations
        Parameters:
        name - name of the macro
        Returns:
        whether the macro is declared
      • evaluate

        public Node evaluate​(Node... params)
                      throws SemanticException
        Evaluates the ifelse macro
        Specified by:
        evaluate in interface Macro
        Parameters:
        params - the parameters
        Returns:
        an AST (abstract syntax tree) node evaluating the ifelse function
        Throws:
        SemanticException