Interface IExpression

    • Constructor Detail

    • Method Detail

      • getAST

         abstract ITree getAST()
        Returns:

        the ast representing the IExpression

      • matches

         abstract boolean matches(IExpression expr, Map<HashString, ITreeNode<out Object>> map)

        Tries to match this expression with expr. The matching rules are: (i) a variable matches everything; (ii) a constant value matches an identical constant value; (iii) a number matches an identical number or an operator, (iv) operators match everything but constants, (v) comparators match numbers and operators (verifying the values); (vi) expr type can't be comparator; (vii) add and rem operators work only with lists.

        Parameters:
        expr - the expression to match
        map - the matches map
        Returns:

        true if this expression can "match" with expr.

      • mayMatch

         abstract boolean mayMatch(IExpression expr)

        This match method test whether or not two expressions might match. It can be used to evaluate dependencies in a general fashion, it does not check if all the relations are satisfied (e.g. if applying the comparators) but makes a sort of "type checking". If you want to compare two templates, this is the way to go.

        Parameters:
        expr - the expression to verify the possibility of future matches
        Returns:

        true if this expression can "match" with expr.

      • syntacticMatch

         abstract boolean syntacticMatch(IExpression e)

        Runs a syntactic match against the e.

        Parameters:
        e - the expression to match with
        Returns:

        true if the passed IExpression matches this one