Class Expression

    • Constructor Detail

      • Expression

        public Expression()
    • Method Detail

      • rewriteExpression

        public abstract Expression rewriteExpression​(String prefix)
      • setOutput

        public void setOutput​(Identifier output)
      • getOutput

        public Identifier getOutput()
        Obtain identifier.
        Returns:
        Identifier
      • getOutputs

        public Identifier[] getOutputs()
        Obtain identifiers.
        Returns:
        Identifiers
      • getBinaryOp

        public static Expression.BinaryOp getBinaryOp​(String val)
        Convert string value to binary operator.
        Parameters:
        val - String value ('+', '-', '*', '/', '%%', '%/%', '^', %*%')
        Returns:
        Binary operator (BinaryOp.PLUS, BinaryOp.MINUS, BinaryOp.MULT, BinaryOp.DIV, BinaryOp.MODULUS, BinaryOp.INTDIV, BinaryOp.POW, BinaryOp.MATMULT). Returns BinaryOp.INVALID if string value not recognized.
      • getRelationalOp

        public static Expression.RelationalOp getRelationalOp​(String val)
        Convert string value to relational operator.
        Parameters:
        val - String value ('<', '<=', '>', '>=', '==', '!=')
        Returns:
        Relational operator (RelationalOp.LESS, RelationalOp.LESSEQUAL, RelationalOp.GREATER, RelationalOp.GREATEREQUAL, RelationalOp.EQUAL, RelationalOp.NOTEQUAL). Returns RelationalOp.INVALID if string value not recognized.
      • getBooleanOp

        public static Expression.BooleanOp getBooleanOp​(String val)
        Convert string value to boolean operator.
        Parameters:
        val - String value ('&&', '&', '||', '|', '!')
        Returns:
        Boolean operator (BooleanOp.CONDITIONALAND, BooleanOp.LOGICALAND, BooleanOp.CONDITIONALOR, BooleanOp.LOGICALOR, BooleanOp.NOT). Returns BooleanOp.INVALID if string value not recognized.
      • convertFormatType

        public static Types.FileFormat convertFormatType​(String format)
        Convert string format type to Hop.FileFormatTypes.
        Parameters:
        format - String format type ("text", "binary", "mm", "csv")
        Returns:
        Format as Hop.FileFormatTypes. Can be FileFormatTypes.TEXT, FileFormatTypes.BINARY, FileFormatTypes.MM, or FileFormatTypes.CSV. Unrecognized type is set to FileFormatTypes.TEXT.
      • getTempName

        public static String getTempName()
        Obtain temporary name ("parsertemp" + _tempId) for expression. Used to construct Hops from parse tree.
        Returns:
        Temporary name of expression.
      • variablesRead

        public abstract VariableSet variablesRead()
      • variablesUpdated

        public abstract VariableSet variablesUpdated()
      • computeDataType

        public static Types.DataType computeDataType​(Expression expression1,
                                                     Expression expression2,
                                                     boolean cast)
        Compute data type based on expressions. The identifier for each expression is obtained and passed to computeDataType(Identifier, Identifier, boolean). If the identifiers have the same data type, the shared data type is returned. Otherwise, if cast is true and one of the identifiers is a matrix and the other identifier is a scalar, return DataType.MATRIX. Otherwise, throw a LanguageException.
        Parameters:
        expression1 - First expression
        expression2 - Second expression
        cast - Whether a cast should potentially be performed
        Returns:
        The data type (Types.DataType)
      • computeDataType

        public static Types.DataType computeDataType​(Identifier identifier1,
                                                     Identifier identifier2,
                                                     boolean cast)
        Compute data type based on identifiers. If the identifiers have the same data type, the shared data type is returned. Otherwise, if cast is true and one of the identifiers is a matrix and the other identifier is a scalar, return DataType.MATRIX. Otherwise, throw a LanguageException.
        Parameters:
        identifier1 - First identifier
        identifier2 - Second identifier
        cast - Whether a cast should potentially be performed
        Returns:
        The data type (Types.DataType)
      • computeValueType

        public static Types.ValueType computeValueType​(Expression expression1,
                                                       Expression expression2,
                                                       boolean cast)
        Compute value type based on expressions. The identifier for each expression is obtained and passed to computeValueType(Identifier, Identifier, boolean). If the identifiers have the same value type, the shared value type is returned. Otherwise, if cast is true and one value type is a double and the other is an int, return ValueType.DOUBLE. If cast is true and one value type is a string or the other value type is a string, return ValueType.STRING. Otherwise, throw a LanguageException.
        Parameters:
        expression1 - First expression
        expression2 - Second expression
        cast - Whether a cast should potentially be performed
        Returns:
        The value type (Types.ValueType)
      • computeValueType

        public static Types.ValueType computeValueType​(Identifier identifier1,
                                                       Identifier identifier2,
                                                       boolean cast)
        Compute value type based on identifiers. If the identifiers have the same value type, the shared value type is returned. Otherwise, if cast is true and one value type is a double and the other is an int, return ValueType.DOUBLE. If cast is true and one value type is a string or the other value type is a string, return ValueType.STRING. Otherwise, throw a LanguageException.
        Parameters:
        identifier1 - First identifier
        identifier2 - Second identifier
        cast - Whether a cast should potentially be performed
        Returns:
        The value type (Types.ValueType)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • raiseValidateError

        public void raiseValidateError​(String message)
        Throw a LanguageException with the message.
        Parameters:
        message - the error message
      • raiseValidateError

        public void raiseValidateError​(String message,
                                       boolean conditional)
        Throw a LanguageException with the message if conditional is false; otherwise log the message as a warning.
        Parameters:
        message - the error (or warning) message
        conditional - if true, display log warning message. Otherwise, the message will be thrown as a LanguageException
      • raiseValidateError

        public void raiseValidateError​(String msg,
                                       boolean conditional,
                                       String errorCode)
        Throw a LanguageException with the message (and optional error code) if conditional is false; otherwise log the message as a warning.
        Parameters:
        msg - the error (or warning) message
        conditional - if true, display log warning message. Otherwise, the message (and optional error code) will be thrown as a LanguageException
        errorCode - optional error code
      • getBinaryMatrixCharacteristics

        public static MatrixCharacteristics getBinaryMatrixCharacteristics​(Expression expression1,
                                                                           Expression expression2)
        Returns the matrix characteristics for scalar-scalar, scalar-matrix, matrix-scalar, matrix-matrix operations. This method is aware of potentially unknowns and matrix-vector (col/row) operations.
        Parameters:
        expression1 - The first expression
        expression2 - The second expression
        Returns:
        matrix characteristics [1] is the number of columns (clen), [2] is the number of rows in a block (blen), and [3] is the number of columns in a block (blen). Default (unknown) values are -1. Scalar values are all 0.
      • setBeginLine

        public void setBeginLine​(int passed)
        Specified by:
        setBeginLine in interface ParseInfo
      • setBeginColumn

        public void setBeginColumn​(int passed)
        Specified by:
        setBeginColumn in interface ParseInfo
      • setEndLine

        public void setEndLine​(int passed)
        Specified by:
        setEndLine in interface ParseInfo
      • setEndColumn

        public void setEndColumn​(int passed)
        Specified by:
        setEndColumn in interface ParseInfo
      • setParseExceptionList

        public void setParseExceptionList​(ArrayList<String> passed)
      • setParseInfo

        public void setParseInfo​(ParseInfo parseInfo)
        Set parse information.
        Parameters:
        parseInfo - parse information, such as beginning line position, beginning column position, ending line position, ending column position, text, and filename
      • setCtxValues

        public void setCtxValues​(org.antlr.v4.runtime.ParserRuleContext ctx)
        Set ParserRuleContext values (begin line, begin column, end line, end column, and text).
        Parameters:
        ctx - the antlr ParserRuleContext
      • setCtxValuesAndFilename

        public void setCtxValuesAndFilename​(org.antlr.v4.runtime.ParserRuleContext ctx,
                                            String filename)
        Set ParserRuleContext values (begin line, begin column, end line, end column, and text) and file name.
        Parameters:
        ctx - the antlr ParserRuleContext
        filename - the filename (if it exists)
      • printErrorLocation

        public String printErrorLocation()
      • printWarningLocation

        public String printWarningLocation()
      • printInfoLocation

        public String printInfoLocation()
        Return info message containing the filename, the beginning line position, and the beginning column position.
        Returns:
        the info message