flix

0.67.2

Fixpoint3.Ast.Ram.RelOp

enum RelOpSource
case Search(RowVar, RelSym, RelType, RelOp)case Query(RowVar, RelSym, Vector[BoolExp], Int32, RelType, RelOp)case Functional(RowVar, Vector[Boxed] -> Vector[Vector[Boxed]], Vector[RamTerm], RelOp, Int32, RelType)case Project(Vector[RamTerm], RelSym, Int32)case If(Vector[BoolExp], RelOp)

Search(rv, relSym, relType, body) iterates through the facts in relation relSym, saving them as RowVar rv and executes body.

Query(rv, relSym, bools, indexPos, relType, body) iterates through the facts in relation relSym, saving them as rv and executes body if bools is true. The index saved at indexPos will be used.

Functional(rv, f, input, body, arity, relType) evaluates f(input), for each result, saves it as rv and executes body. arity is the arity of the output tuples.

Project(terms, relSym, ruleNum) constructs a tuple from terms and inserts it as a fact for relation relSym. relSym should be a new relation. ruleNum is a unique number assigned to the rule the project statement is associated with.

If(bools, body) evaluates body if bools is true.

Instances

instance ToString[RelOp]Source