decaf

AST

package AST

Contains the Decaf Abstract Syntax Tree and related types Created by hawk on 11/14/14.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. AST
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. case class ASTBoolConstant(loc: Position, value: Boolean) extends Expr with Product with Serializable

  2. case class ASTDoubleConstant(loc: Position, value: Double) extends Expr with Product with Serializable

  3. case class ASTIdentifier(loc: Position, name: String) extends ASTNode with Product with Serializable

  4. case class ASTIntConstant(loc: Position, value: Int) extends Expr with Product with Serializable

  5. sealed abstract class ASTNode extends Positional

    Abstract class for nodes in the Decaf abstract syntax tree.

  6. case class ASTNullConstant(loc: Position) extends Expr with Product with Serializable

  7. case class ASTOperator(loc: Position, token: String) extends ASTNode with Product with Serializable

  8. case class ASTStringConstant(loc: Position, value: String) extends Expr with Product with Serializable

  9. case class ArithmeticExpr(l: Position, lhs: Expr, o: ASTOperator, rhs: Expr) extends CompoundExpr with Product with Serializable

  10. case class ArrayAccess(loc: Position, base: Expr, subscript: Expr) extends LValue with Product with Serializable

  11. case class ArrayType(locat: Position, elemType: Type) extends Type with Product with Serializable

  12. case class AssignExpr(l: Position, lhs: Expr, rhs: Expr) extends CompoundExpr with Product with Serializable

  13. case class BoolType(loc: Position) extends Type with Product with Serializable

  14. case class BreakStmt(loc: Position) extends Stmt with Product with Serializable

  15. case class Call(loc: Position, base: Option[Expr], field: ASTIdentifier, args: List[Expr]) extends Expr with Product with Serializable

  16. case class CaseStmt(value: Expr, body: List[Stmt], loc: Position) extends Stmt with Product with Serializable

  17. case class ClassDecl(name: ASTIdentifier, extnds: Option[NamedType] = None, implements: List[NamedType], members: List[Decl]) extends Decl with Product with Serializable

  18. abstract class CompoundExpr extends Expr

  19. abstract class ConditionalStmt extends Stmt

  20. abstract class Decl extends ASTNode

  21. case class DefaultCase(body: List[Stmt], loc: Position) extends Stmt with Product with Serializable

  22. case class DoubleType(loc: Position) extends Type with Product with Serializable

  23. case class EmptyExpr(loc: Position) extends Expr with Product with Serializable

  24. case class EqualityExpr(l: Position, lhs: Expr, o: ASTOperator, rhs: Expr) extends CompoundExpr with Product with Serializable

  25. class ErrorType extends Type

  26. abstract class Expr extends Stmt

  27. case class FieldAccess(loc: Position, base: Option[Expr], field: ASTIdentifier) extends LValue with Product with Serializable

  28. case class FnDecl(name: ASTIdentifier, returnType: Type, formals: List[VarDecl], body: Option[StmtBlock]) extends Decl with Product with Serializable

  29. case class ForStmt(init: Option[Expr], test: Expr, step: Option[Expr], loopBody: Stmt) extends LoopStmt with Product with Serializable

  30. case class IfStmt(test: Expr, testBody: Stmt, elseBody: Option[Stmt]) extends ConditionalStmt with Product with Serializable

  31. case class IntType(loc: Position) extends Type with Product with Serializable

  32. case class InterfaceDecl(name: ASTIdentifier, members: List[Decl]) extends Decl with Product with Serializable

  33. abstract class LValue extends Expr

  34. class ListError extends ErrorType

  35. case class LogicalExpr(l: Position, lhs: Option[Expr], o: ASTOperator, rhs: Expr) extends CompoundExpr with Product with Serializable

  36. abstract class LoopStmt extends ConditionalStmt

  37. class MultiError extends ErrorType

  38. case class NamedType(name: ASTIdentifier) extends Type with Product with Serializable

  39. case class NewArrayExpr(loc: Position, size: Expr, elemType: Type) extends Expr with Product with Serializable

  40. case class NewExpr(loc: Position, cType: NamedType) extends Expr with Product with Serializable

  41. case class NullType(loc: Position) extends Type with Product with Serializable

  42. case class PostfixExpr(l: Position, o: ASTOperator, rhs: Expr) extends CompoundExpr with Product with Serializable

  43. case class PrintStmt(args: List[Expr], loc: Position) extends Stmt with Product with Serializable

  44. case class Program(decls: List[Decl], loc: Position) extends ASTNode with Product with Serializable

  45. case class ReadIntegerExpr(loc: Position) extends Expr with Product with Serializable

  46. case class ReadLineExpr(loc: Position) extends Expr with Product with Serializable

  47. case class RelationalExpr(l: Position, lhs: Expr, o: ASTOperator, rhs: Expr) extends CompoundExpr with Product with Serializable

  48. case class ReturnStmt(loc: Position, expr: Option[Expr]) extends Stmt with Product with Serializable

  49. type ScopeTable = ForkTable[String, TypeAnnotation]

  50. abstract class Stmt extends ASTNode

  51. case class StmtBlock(decls: List[VarDecl], stmts: List[Stmt], loc: Position) extends Stmt with Product with Serializable

  52. case class StringType(loc: Position) extends Type with Product with Serializable

  53. case class SwitchStmt(variable: Option[Expr], cases: List[CaseStmt], default: Option[DefaultCase], loc: Position) extends Stmt with Product with Serializable

  54. case class This(loc: Position) extends Expr with Product with Serializable

  55. abstract class Type extends ASTNode

  56. case class UndeclaredType(m: String, w: Position) extends ErrorType with Product with Serializable

  57. case class VarDecl(n: ASTIdentifier, t: Type) extends Decl with Product with Serializable

  58. case class VoidType(loc: Position) extends Type with Product with Serializable

  59. case class WhileStmt(test: Expr, loopBody: Stmt) extends LoopStmt with Product with Serializable

Value Members

  1. package annotations

  2. implicit def errorType2TypeError(e: ErrorType): List[Exception]

Inherited from AnyRef

Inherited from Any

Ungrouped