org.kiama.example.RISC

RISC

class RISC extends Machine

Abstract state machine simulation of a simple RISC architecture. Run the given code, reading input from console and emitting output using emitter.

Source
RISC.scala
Linear Supertypes
Machine, PrettyPrinter, PrettyPrinterBase, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. RISC
  2. Machine
  3. PrettyPrinter
  4. PrettyPrinterBase
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RISC(code: Code, console: Console, emitter: Emitter)

Type Members

  1. class Doc extends ((output.PrettyPrinter.Indent, output.PrettyPrinter.Width)) ⇒ ((Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]) ⇒ Trampoline[(Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]] with output.PrettyPrinter.DocOps

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  2. trait DocOps extends AnyRef

    Definition Classes
    PrettyPrinterBase
  3. type Indent = Int

    Definition Classes
    PrettyPrinterBase
  4. type Layout = String

    Definition Classes
    PrettyPrinterBase
  5. class ParamState[T, U] extends State[Map[T, U]]

    Definition Classes
    Machine
  6. class ParamUpdate[T, U] extends Update

    Definition Classes
    Machine
  7. class ParamUpdater[T, U] extends AnyRef

    Definition Classes
    Machine
  8. trait PrettyPrintable extends AnyRef

    Definition Classes
    PrettyPrinterBase
  9. class ScalarUpdate[T] extends Update

    Definition Classes
    Machine
  10. class State[T] extends AnyRef

    Definition Classes
    Machine
  11. abstract class Update extends AnyRef

    Definition Classes
    Machine
  12. type Width = Int

    Definition Classes
    PrettyPrinterBase
  13. type Word = Int

    Words are 32-bits long.

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. val FP: ParamUpdater[RegNo, Int]

  7. val LNK: ParamUpdater[RegNo, Int]

  8. val Mem: ParamState[Int, Int]

    Byte addressed store of words.

  9. val N: State[Boolean]

    Condition code: less than.

  10. val PC: ParamUpdater[RegNo, Int]

    Names for special registers.

  11. val R: ParamState[RegNo, Int]

    Integer register file addressed by 0-31.

  12. val SP: ParamUpdater[RegNo, Int]

  13. val Z: State[Boolean]

    Condition code: zero.

  14. def align(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  15. def ampersand: Doc

    Definition Classes
    PrettyPrinterBase
  16. def angles(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  17. def any(a: Any): Doc

    Definition Classes
    PrettyPrinterBase
  18. implicit def anyToPrettyPrintable(a: Any): PrettyPrintable

    Definition Classes
    PrettyPrinterBase
  19. def arithmetic(instr: Instr): Unit

    Execute arithmetic instructions.

  20. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  21. def asterisk: Doc

    Definition Classes
    PrettyPrinterBase
  22. def atsign: Doc

    Definition Classes
    PrettyPrinterBase
  23. def backquote: Doc

    Definition Classes
    PrettyPrinterBase
  24. def backslash: Doc

    Definition Classes
    PrettyPrinterBase
  25. def braces(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  26. def brackets(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  27. def caret: Doc

    Definition Classes
    PrettyPrinterBase
  28. def cat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  29. implicit def char(c: Char): Doc

    Definition Classes
    PrettyPrinterBase
  30. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. def colon: Doc

    Definition Classes
    PrettyPrinterBase
  32. def column(f: (Int) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  33. def comma: Doc

    Definition Classes
    PrettyPrinterBase
  34. def control(instr: Instr): Unit

    Execute control instructions, including default control step.

  35. def debug: Boolean

    Debug flag.

    Debug flag. Set this to true in sub-classes or objects to obtain tracing information during execution of the machine.

    Definition Classes
    RISC → Machine
  36. val defaultIndent: Int

    Definition Classes
    PrettyPrinterBase
  37. val defaultWidth: Int

    Definition Classes
    PrettyPrinterBase
  38. def dollar: Doc

    Definition Classes
    PrettyPrinterBase
  39. def dot: Doc

    Definition Classes
    PrettyPrinterBase
  40. def dquote: Doc

    Definition Classes
    PrettyPrinterBase
  41. def dquotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  42. def empty: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  43. def enclose(l: Doc, d: Doc, r: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  44. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  45. def equal: Doc

    Definition Classes
    PrettyPrinterBase
  46. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  47. def exclamation: Doc

    Definition Classes
    PrettyPrinterBase
  48. def execute(instr: Instr): Unit

    Execute a single instruction.

  49. def fillcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  50. def fillsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  51. def fillsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  52. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  53. def finit(): Unit

    Definition Classes
    Machine
  54. def folddoc(ds: Seq[Doc], f: (Doc, Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  55. def forwslash: Doc

    Definition Classes
    PrettyPrinterBase
  56. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  57. def group(d: Doc): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  58. val halt: State[Boolean]

    Halt flag.

    Halt flag. True if the machine should stop executing, false otherwise.

  59. def hang(d: Doc, i: Indent): Doc

    Definition Classes
    PrettyPrinterBase
  60. def hash: Doc

    Definition Classes
    PrettyPrinterBase
  61. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  62. def hcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  63. def hsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  64. def hsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  65. def indent(d: Doc, i: Indent): Doc

    Definition Classes
    PrettyPrinterBase
  66. def init(): Unit

    Initialise the machine.

    Initialise the machine.

    Definition Classes
    RISC → Machine
  67. def inputoutput(instr: Instr): Unit

    Execute input/output instructions.

  68. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  69. def langle: Doc

    Definition Classes
    PrettyPrinterBase
  70. def lbrace: Doc

    Definition Classes
    PrettyPrinterBase
  71. def lbracket: Doc

    Definition Classes
    PrettyPrinterBase
  72. def line: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  73. def line(repl: Layout): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  74. def linebreak: Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  75. def list[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  76. def lparen: Doc

    Definition Classes
    PrettyPrinterBase
  77. def lsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  78. def lsep2(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  79. def lterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  80. def main(): Unit

    The main rule of this machine.

    The main rule of this machine.

    Definition Classes
    RISC → Machine
  81. def memory(instr: Instr): Unit

    Execute memory instructions.

  82. def minus: Doc

    Definition Classes
    PrettyPrinterBase
  83. val name: String

    Definition Classes
    Machine
  84. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  85. def nest(d: Doc, j: Indent): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  86. def nesting(f: (Int) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  87. final def notify(): Unit

    Definition Classes
    AnyRef
  88. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  89. def padto(p: Int, d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  90. def padtobreak(p: Int, d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  91. implicit def paramUpdaterToU[T, U, V >: U](up: ParamUpdater[T, U]): V

    Definition Classes
    Machine
  92. def parens(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  93. def percent: Doc

    Definition Classes
    PrettyPrinterBase
  94. def performUpdates(): Boolean

    Definition Classes
    Machine
  95. def plist(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  96. def plus: Doc

    Definition Classes
    PrettyPrinterBase
  97. def pretty(d: Doc, w: Width): Layout

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  98. def pretty(p: PrettyPrintable): Layout

    Definition Classes
    PrettyPrinterBase
  99. def pretty_any(a: Any): Layout

    Definition Classes
    PrettyPrinterBase
  100. def pseq(l: Seq[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  101. def question: Doc

    Definition Classes
    PrettyPrinterBase
  102. def rangle: Doc

    Definition Classes
    PrettyPrinterBase
  103. def rbrace: Doc

    Definition Classes
    PrettyPrinterBase
  104. def rbracket: Doc

    Definition Classes
    PrettyPrinterBase
  105. def reset(): Unit

    Definition Classes
    Machine
  106. def rparen: Doc

    Definition Classes
    PrettyPrinterBase
  107. def run(): Unit

    Definition Classes
    Machine
  108. def semi: Doc

    Definition Classes
    PrettyPrinterBase
  109. def sep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  110. def seq[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase
  111. def softbreak: Doc

    Definition Classes
    PrettyPrinterBase
  112. def softline: Doc

    Definition Classes
    PrettyPrinterBase
  113. def space: Doc

    Definition Classes
    PrettyPrinterBase
  114. def spaces(n: Int): Doc

    Definition Classes
    PrettyPrinterBase
  115. def squote: Doc

    Definition Classes
    PrettyPrinterBase
  116. def squotes(d: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  117. def ssep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  118. implicit def stateTToT[T, U >: T](t: State[T]): U

    Definition Classes
    Machine
  119. def step: Boolean

    Definition Classes
    Machine
  120. final def steps(nstep: Int): Unit

    Definition Classes
    Machine
    Annotations
    @tailrec()
  121. def sterm(ds: Seq[Doc], term: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  122. def string(s: String): Doc

    Definition Classes
    PrettyPrinterBase
  123. def surround(d: Doc, b: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  124. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  125. implicit def text(t: String): Doc

    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  126. def tilde: Doc

    Definition Classes
    PrettyPrinterBase
  127. def toString(): String

    Definition Classes
    AnyRef → Any
  128. def underscore: Doc

    Definition Classes
    PrettyPrinterBase
  129. def value(v: Any): Doc

    Definition Classes
    PrettyPrinterBase
  130. def vcat(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  131. def verticalbar: Doc

    Definition Classes
    PrettyPrinterBase
  132. def vsep(ds: Seq[Doc], sep: Doc): Doc

    Definition Classes
    PrettyPrinterBase
  133. def vsep(ds: Seq[Doc]): Doc

    Definition Classes
    PrettyPrinterBase
  134. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  135. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  136. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  137. def width(d: Doc, f: (Int) ⇒ Doc): Doc

    Definition Classes
    PrettyPrinterBase

Deprecated Value Members

  1. def product(p: Any): Doc

    Definition Classes
    PrettyPrinterBase
    Annotations
    @deprecated
    Deprecated

    (Since version 1.2.1) Use PrettyPrinter.any instead.

Inherited from Machine

Inherited from PrettyPrinter

Inherited from PrettyPrinterBase

Inherited from AnyRef

Inherited from Any

Ungrouped