abstract class Interpreter extends AnyRef
Interpreter for TIP programs.
- Alphabetic
 - By Inheritance
 
- Interpreter
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - All
 
Instance Constructors
-  new Interpreter(program: AProgram)(implicit declData: DeclarationData)
 
Type Members
-  type Env = Map[ADeclaration, Location]
 -  class ExecutionError extends TipProgramException
 -  abstract type Extra
 -  case class Store(content: Map[ReferenceValue, Value], extra: Extra) extends Product with Serializable
 
Abstract Value Members
-  abstract val spec: ValueSpecification
 
Concrete Value Members
- 
      
      
      
        
      
    
      
        final 
        def
      
      
        !=(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ##(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ==(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        asInstanceOf[T0]: T0
      
      
      
- Definition Classes
 - Any
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        branchTaken(guard: AExpr, value: EValue, branch: Boolean, store: Store): Store
      
      
      
- Attributes
 - protected
 
 -  val capturedOut: StringBuilder
 - 
      
      
      
        
      
    
      
        
        def
      
      
        clone(): AnyRef
      
      
      
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... ) @native() @IntrinsicCandidate()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        eq(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        equals(arg0: Any): Boolean
      
      
      
- Definition Classes
 - AnyRef → Any
 
 -  def errorAccessMissingField(loc: Loc, rec: RecordValue, field: String, store: Store): Nothing
 -  def errorAccessNonRecord(loc: Loc, x: EValue, store: Store): Nothing
 -  def errorArithmeticOnNonInt(loc: Loc, op: BinaryOperator, store: Store): Nothing
 -  def errorCallNotFunction(loc: Loc, funValue: EValue, store: Store): Nothing
 -  def errorConditionNotInt(loc: Loc, store: Store): Nothing
 -  def errorDerefNotPointer(loc: Loc, x: EValue, store: Store): Nothing
 -  def errorErrorNonInt(loc: Loc, v: EValue, store: Store): Nothing
 -  def errorInputNotInt(loc: Loc, store: Store): Nothing
 -  def errorNullDereference(loc: Loc, store: Store): Nothing
 -  def errorOutputNotInt(loc: Loc, store: Store): Nothing
 -  def errorReturnNotInt(loc: Loc, fun: AFunDeclaration, store: Store): Nothing
 -  def errorUninitializedLocation(loc: Loc, store: Store): Nothing
 -  def errorWriteFieldRecord(loc: Loc, x: EValue, store: Store): Nothing
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        getClass(): Class[_]
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native() @IntrinsicCandidate()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        hashCode(): Int
      
      
      
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native() @IntrinsicCandidate()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        input(exp: AExpr, env: Env, store: Store): (EValue, Store)
      
      
      
Takes an integer input from stdin.
Takes an integer input from stdin.
- Attributes
 - protected
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        isInstanceOf[T0]: Boolean
      
      
      
- Definition Classes
 - Any
 
 -  val log: Logger
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        ne(arg0: AnyRef): Boolean
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notify(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native() @IntrinsicCandidate()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        notifyAll(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @native() @IntrinsicCandidate()
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        semc(stm: AStmt, env: Env, store: Store): (Env, Store)
      
      
      
Semantics for statements (including local variable declarations).
Semantics for statements (including local variable declarations).
- stm
 the statement to execute
- env
 the initial environment
- store
 the initial store
- returns
 the resulting environment and store
- Attributes
 - protected
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        semeref(exp: FieldAssignable, env: Env, store: Store): (ReferenceValue, String, Store)
      
      
      
Semantics for field lvalue expressions.
Semantics for field lvalue expressions.
- exp
 the lvalue expression to execute
- env
 the environment
- store
 the initial store
- returns
 the resulting location, field, and store
- Attributes
 - protected
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        semeref(exp: ReferenceAssignable, env: Env, store: Store): (ReferenceValue, Store)
      
      
      
Semantics for ordinary lvalue expressions.
Semantics for ordinary lvalue expressions.
- exp
 the lvalue expression to execute
- env
 the environment
- store
 the initial store
- returns
 the resulting location and store
- Attributes
 - protected
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        semeright(exp: AExpr, env: Env, store: Store): (EValue, Store)
      
      
      
Semantics for right-hand-side expressions.
Semantics for right-hand-side expressions.
- exp
 the expression to execute
- env
 the environment
- store
 the initial store
- returns
 the resulting value and store
- Attributes
 - protected
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        semp(initEnv: Env, initStore: Store): (IntValue, Store)
      
      
      
Semantics for programs.
Semantics for programs.
- returns
 the resulting value
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        synchronized[T0](arg0: ⇒ T0): T0
      
      
      
- Definition Classes
 - AnyRef
 
 - 
      
      
      
        
      
    
      
        
        def
      
      
        toString(): String
      
      
      
- Definition Classes
 - AnyRef → Any
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long, arg1: Int): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(arg0: Long): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... ) @native()
 
 - 
      
      
      
        
      
    
      
        final 
        def
      
      
        wait(): Unit
      
      
      
- Definition Classes
 - AnyRef
 - Annotations
 - @throws( ... )
 
 
Deprecated Value Members
- 
      
      
      
        
      
    
      
        
        def
      
      
        finalize(): Unit
      
      
      
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws( classOf[java.lang.Throwable] ) @Deprecated
 - Deprecated