Class StringSubstring.IMPStringSubstring

  • All Implemented Interfaces:
    it.unive.lisa.program.cfg.ProgramPoint, it.unive.lisa.program.cfg.statement.PluggableStatement, it.unive.lisa.program.CodeElement, it.unive.lisa.util.datastructures.graph.code.CodeNode<it.unive.lisa.program.cfg.CFG,​it.unive.lisa.program.cfg.statement.Statement,​it.unive.lisa.program.cfg.edge.Edge>, it.unive.lisa.util.datastructures.graph.Node<it.unive.lisa.program.cfg.CFG,​it.unive.lisa.program.cfg.statement.Statement,​it.unive.lisa.program.cfg.edge.Edge>, java.lang.Comparable<it.unive.lisa.program.cfg.statement.Statement>
    Enclosing class:
    StringSubstring

    public static class StringSubstring.IMPStringSubstring
    extends it.unive.lisa.program.cfg.statement.string.Substring
    implements it.unive.lisa.program.cfg.statement.PluggableStatement
    An expression modeling the string substring operation. The type of the first operand must be StringType, while the other two operands' types must be Int32Type. The type of this expression is the StringType.
    • Field Summary

      • Fields inherited from class it.unive.lisa.program.cfg.statement.string.Substring

        originating
    • Constructor Summary

      Constructors 
      Constructor Description
      IMPStringSubstring​(it.unive.lisa.program.cfg.CFG cfg, it.unive.lisa.program.cfg.CodeLocation location, it.unive.lisa.program.cfg.statement.Expression left, it.unive.lisa.program.cfg.statement.Expression middle, it.unive.lisa.program.cfg.statement.Expression right)
      Builds the substring.
      IMPStringSubstring​(it.unive.lisa.program.cfg.CFG cfg, java.lang.String sourceFile, int line, int col, it.unive.lisa.program.cfg.statement.Expression left, it.unive.lisa.program.cfg.statement.Expression middle, it.unive.lisa.program.cfg.statement.Expression right)
      Builds the substring.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static StringSubstring.IMPStringSubstring build​(it.unive.lisa.program.cfg.CFG cfg, it.unive.lisa.program.cfg.CodeLocation location, it.unive.lisa.program.cfg.statement.Expression... params)
      Builds a new instance of this native call, according to the PluggableStatement contract.
      void setOriginatingStatement​(it.unive.lisa.program.cfg.statement.Statement st)  
      • Methods inherited from class it.unive.lisa.program.cfg.statement.string.Substring

        compareSameClassAndParams, fwdTernarySemantics
      • Methods inherited from class it.unive.lisa.program.cfg.statement.TernaryExpression

        backwardSemanticsAux, bwdTernarySemantics, forwardSemanticsAux, getLeft, getMiddle, getRight
      • Methods inherited from class it.unive.lisa.program.cfg.statement.NaryExpression

        accept, backwardSemantics, compareSameClass, equals, forwardSemantics, getConstructName, getOrder, getStatementEvaluatedAfter, getStatementEvaluatedBefore, getSubExpressions, hashCode, toString
      • Methods inherited from class it.unive.lisa.program.cfg.statement.Expression

        getMetaVariables, getParentStatement, getRootStatement, getStaticType, setParentStatement
      • Methods inherited from class it.unive.lisa.program.cfg.statement.Statement

        compareTo, getCFG, getEvaluationPredecessor, getEvaluationSuccessor, getLocation, stopsExecution, throwsError
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface it.unive.lisa.program.cfg.ProgramPoint

        getProgram
    • Constructor Detail

      • IMPStringSubstring

        public IMPStringSubstring​(it.unive.lisa.program.cfg.CFG cfg,
                                  java.lang.String sourceFile,
                                  int line,
                                  int col,
                                  it.unive.lisa.program.cfg.statement.Expression left,
                                  it.unive.lisa.program.cfg.statement.Expression middle,
                                  it.unive.lisa.program.cfg.statement.Expression right)
        Builds the substring.
        Parameters:
        cfg - the CFG where this operation lies
        sourceFile - the source file name where this operation is defined
        line - the line number where this operation is defined
        col - the column where this operation is defined
        left - the left-hand side of this operation
        middle - the middle operand of this operation
        right - the right-hand side of this operation
      • IMPStringSubstring

        public IMPStringSubstring​(it.unive.lisa.program.cfg.CFG cfg,
                                  it.unive.lisa.program.cfg.CodeLocation location,
                                  it.unive.lisa.program.cfg.statement.Expression left,
                                  it.unive.lisa.program.cfg.statement.Expression middle,
                                  it.unive.lisa.program.cfg.statement.Expression right)
        Builds the substring.
        Parameters:
        cfg - the CFG where this operation lies
        location - the code location where this operation is defined
        left - the left-hand side of this operation
        middle - the middle operand of this operation
        right - the right-hand side of this operation
    • Method Detail

      • build

        public static StringSubstring.IMPStringSubstring build​(it.unive.lisa.program.cfg.CFG cfg,
                                                               it.unive.lisa.program.cfg.CodeLocation location,
                                                               it.unive.lisa.program.cfg.statement.Expression... params)
        Builds a new instance of this native call, according to the PluggableStatement contract.
        Parameters:
        cfg - the cfg where the native call happens
        location - the location where the native call happens
        params - the parameters of the native call
        Returns:
        the newly-built call
      • setOriginatingStatement

        public void setOriginatingStatement​(it.unive.lisa.program.cfg.statement.Statement st)
        Specified by:
        setOriginatingStatement in interface it.unive.lisa.program.cfg.statement.PluggableStatement