p

tip

ast

package ast

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. case class AAlloc(exp: AExpr, loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  2. case class AAssignStmt(left: Assignable, right: AExpr, loc: Loc) extends AstNode with AStmtInNestedBlock with Product with Serializable
  3. sealed trait AAtomicExpr extends AstNode with AExpr
  4. case class ABinaryOp(operator: BinaryOperator, left: AExpr, right: AExpr, loc: Loc) extends AstNode with AExpr with Product with Serializable
  5. sealed trait ABlock extends AstNode with AStmt
  6. case class ACallFuncExpr(targetFun: AExpr, args: List[AExpr], loc: Loc) extends AstNode with AExpr with Product with Serializable
  7. sealed trait ADeclaration extends AstNode
  8. case class ADerefWrite(exp: AExpr, loc: Loc) extends ReferenceAssignable with Product with Serializable
  9. case class ADirectFieldWrite(id: AIdentifier, field: String, loc: Loc) extends FieldAssignable with Product with Serializable
  10. case class AErrorStmt(exp: AExpr, loc: Loc) extends AstNode with AStmtInNestedBlock with Product with Serializable
  11. sealed trait AExpr extends AstNode with AExprOrIdentifierDeclaration
  12. sealed trait AExprOrIdentifierDeclaration extends AstNode
  13. case class AFieldAccess(record: AExpr, field: String, loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  14. case class AFunBlockStmt(declarations: List[AVarStmt], others: List[AStmtInNestedBlock], ret: AReturnStmt, loc: Loc) extends AstNode with ABlock with Product with Serializable
  15. case class AFunDeclaration(name: String, params: List[AIdentifierDeclaration], stmts: AFunBlockStmt, loc: Loc) extends AstNode with ADeclaration with Product with Serializable
  16. case class AIdentifier(name: String, loc: Loc) extends AstNode with AExpr with AAtomicExpr with ReferenceAssignable with Product with Serializable
  17. case class AIdentifierDeclaration(name: String, loc: Loc) extends AstNode with ADeclaration with AExprOrIdentifierDeclaration with Product with Serializable
  18. case class AIfStmt(guard: AExpr, ifBranch: AStmtInNestedBlock, elseBranch: Option[AStmtInNestedBlock], loc: Loc) extends AstNode with AStmtInNestedBlock with Product with Serializable
  19. case class AIndirectFieldWrite(exp: AExpr, field: String, loc: Loc) extends FieldAssignable with Product with Serializable
  20. case class AInput(loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  21. case class ANestedBlockStmt(body: List[AStmtInNestedBlock], loc: Loc) extends AstNode with ABlock with AStmtInNestedBlock with Product with Serializable
  22. case class ANull(loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  23. case class ANumber(value: Int, loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  24. case class AOutputStmt(exp: AExpr, loc: Loc) extends AstNode with AStmtInNestedBlock with Product with Serializable
  25. case class AProgram(funs: List[AFunDeclaration], loc: Loc) extends AstNode with Product with Serializable
  26. case class ARecord(fields: List[ARecordField], loc: Loc) extends AstNode with AExpr with Product with Serializable
  27. case class ARecordField(field: String, exp: AExpr, loc: Loc) extends Product with Serializable
  28. case class AReturnStmt(exp: AExpr, loc: Loc) extends AstNode with AStmt with Product with Serializable
  29. sealed trait AStmt extends AstNode
  30. sealed trait AStmtInNestedBlock extends AstNode with AStmt

    A statement in the body of a nested block (cannot be a declaration or a return).

  31. case class AUnaryOp(operator: UnaryOperator, subexp: AExpr, loc: Loc) extends AstNode with AExpr with Product with Serializable
  32. case class AVarRef(id: AIdentifier, loc: Loc) extends AstNode with AExpr with AAtomicExpr with Product with Serializable
  33. case class AVarStmt(declIds: List[AIdentifierDeclaration], loc: Loc) extends AstNode with AStmt with Product with Serializable
  34. case class AWhileStmt(guard: AExpr, innerBlock: AStmtInNestedBlock, loc: Loc) extends AstNode with AStmtInNestedBlock with Product with Serializable
  35. sealed trait Assignable extends AnyRef
  36. sealed abstract class AstNode extends Product

    AST node.

    AST node.

    (The class extends Product to enable functionality used by AstOps.UnlabelledNode.)

  37. sealed trait BinaryOperator extends AnyRef
  38. class CombineNormalizers extends Normalizer

    Combines two normalizers, running normalizer1 followed by normalizer2 on the input program.

  39. trait DepthFirstAstVisitor[A] extends AnyRef

    A depth-first visitor for ASTs.

    A depth-first visitor for ASTs.

    A

    argument type

  40. sealed trait FieldAssignable extends Assignable
  41. case class Loc(line: Int, col: Int) extends Product with Serializable

    Source code location.

  42. class NoFunctionPointers extends TipSublanguages

    In this sub-language, function identifiers can only be used in direct calls, and indirect calls are prohibited.

  43. class NormalizedCalls extends TipSublanguages

    In this sub-language, all calls are normalized, i.e.

    In this sub-language, all calls are normalized, i.e. they only appear in statements of the form

    x = f(e1, ..., en)

    where f is a function identifier, x is a variable identifier and the parameters e_i are atomic expressions.

  44. class Normalizer extends AnyRef
  45. sealed trait Operator extends AnyRef
  46. sealed trait ReferenceAssignable extends Assignable
  47. trait TipSublanguages extends DepthFirstAstVisitor[Unit]

    Defines restrictions of TIP for the different analyses.

  48. sealed trait UnaryOperator extends AnyRef

Value Members

  1. object AstNodeData
  2. object AstOps

    Convenience operations related to ASTs.

  3. object AstPrinters
  4. object CallsNormalizer extends Normalizer

    Normalizes function calls to fit into the NormalizedCalls sub-language, in which all function calls should have the form id = id(id1, id2, ...).

  5. object DerefOp extends Operator with UnaryOperator with Product with Serializable
  6. object Divide extends Operator with BinaryOperator with Product with Serializable
  7. object Eqq extends Operator with BinaryOperator with Product with Serializable
  8. object GreatThan extends Operator with BinaryOperator with Product with Serializable
  9. object Minus extends Operator with BinaryOperator with Product with Serializable
  10. object NoCalls extends TipSublanguages

    In this sub-language, no calls are allowed.

  11. object NoNormalizer extends Normalizer

    A normalizer that does nothing.

  12. object NoPointers extends TipSublanguages

    In this sub-language, no pointers are allowed.

  13. object NoRecords extends TipSublanguages

    This sub-language has no records and record accesses.

  14. object NormalizedForPointsToAnalysis extends TipSublanguages

    In this sub-language, the only allowed statements are the following:

    In this sub-language, the only allowed statements are the following:

    id = alloc P where P is null or an integer constant id1 = &id2 id1 = id2 id1 = *id2 *id1 = id2 id = null

  15. object Plus extends Operator with BinaryOperator with Product with Serializable
  16. object PointersNormalizer extends Normalizer

    Normalize pointers to fit in the NormalizedForPointsToAnalysis sub-language.

    Normalize pointers to fit in the NormalizedForPointsToAnalysis sub-language. In that sub-language, the only allowed pointer statements are the following: id = alloc P where P is null or an integer constant id1 = &id2 id1 = id2 id1 = *id2 *id1 = id2 id = null

  17. object ReturnsNormalizer extends Normalizer

    Normalizes return statements so that we only have returns of the form return id where id is an identifier.

  18. object Times extends Operator with BinaryOperator with Product with Serializable

Ungrouped