flix

0.67.2

Fixpoint3.Ast.ExecutableRam.RamStmt

enum RamStmtSource
case 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.

Instances

instance ToString[RamStmt]Source