kiama.machine

class Machine

[source: kiama/machine/Machine.scala]

abstract class Machine(val name : java.lang.String)
extends AnyRef
A deterministic abstract state machine defined by its main rule and called name.
Direct Known Subclasses:
RISC

Method Summary
def debug : Boolean
Debug flag. Set this to true in sub-classes or objects to obtain tracing information during execution of the machine.
abstract def init : Unit
Initialise the state of this machine. This routine is called before the first step of the machine is attempted.
abstract def main : Unit
The rule to execute to run one step of this machine.
def run : Unit
Run this machine by initialising its state and then executing its steps.
implicit def stateTToT [T](t : State[T]) : T
Implicitly allow a state value of type T to be used as a value of type T.
def step : Boolean
Perform a step of this machine. Return true if some updates were made or false if none.
def steps : Unit
Execute the steps of this machine. Halt when a step makes no updates. init should be called before this method.
Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Class Summary
case class State [T](val sname : java.lang.String) extends scala.Product
An item of abstract state machine state holding a value of type T and called sname.
case class Update [T](val s : State[T], val t : T) extends scala.Product
An update of an item of state s to have the value t.
Method Details
def debug : Boolean
Debug flag. Set this to true in sub-classes or objects to obtain tracing information during execution of the machine.

implicit def stateTToT[T](t : State[T]) : T
Implicitly allow a state value of type T to be used as a value of type T.

abstract def init : Unit
Initialise the state of this machine. This routine is called before the first step of the machine is attempted.

abstract def main : Unit
The rule to execute to run one step of this machine.

def step : Boolean
Perform a step of this machine. Return true if some updates were made or false if none.

def steps : Unit
Execute the steps of this machine. Halt when a step makes no updates. init should be called before this method.

def run : Unit
Run this machine by initialising its state and then executing its steps.