Fixpoint3.Ast.ExecutableRam.RamStmt
enum RamStmtSourcecase Insert(RelOp)case MergeInto(Int32, Int32, BoxedDenotation)case Swap(Int32, Int32)case Purge(Int32)case Seq(Vector[RamStmt])case Par(Vector[RamStmt])case Until(Vector[BoolExp], RamStmt)case Comment(String)Insert(body) executes the RelOp body. body is a RelOp which always
ends with insertions.
MergeInto(posFrom, posTo, den) merges the facts of the index at posFrom
into posTo. den describes whether lattice semantics should. If lattice
semantics are used and the same tuple is inserted twice least upper bound
is computed for the lattice value. For relational semantics multiple insertions
are ignored.
Swap(newPos, deltaPos) swaps the facts of the indexes placed at newPos and
deltaPos.
Purge(pos) removes all facts from the index at position pos.
Seq(body) is sequence of statements to be executed sequentially.
Par(body) is a sequence of statments to be executed in parallel.
Until(condition, body) checks if condition is false and repeadetly executes
body until condition is true.
Comment(string) is a comment for debugging.