Pragmas permit to set command-line flags and configurations directly in the source code.
For example,
.pragma "legacy"
.decl A(x:number) output
A(1).
will enable the --legacy
flag in the source without specifying when invoking souffle.
Syntax
In the following, we define pragmas more formally using syntax diagrams and EBNF. The syntax diagrams were produced with Bottlecaps.
Pragma
A pragma is followed by a parameter string. An additional string for the value of the parameter is optional.
pragma ::= '.pragma' STRING STRING?