Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 41c27a80 authored by cha's avatar cha
Browse files

first draft MSO lark

parent dae22e58
No related branches found
No related tags found
No related merge requests found
formula : formula or formula
| formula and formula
| formula implies formula
| formulas ssi formula
| all1 formulas
| all2 formulas
| exists1 formulas
| exists2 formulas
| mod formulas
| atoms
or : "OR" | "|" | "∨"
and : "AND | "&" | "∧"
implies : "implies" | "->"
ssi : "ssi" | "<->"
all1 : ("All" | "A" | "∀" ) vardef ":" formula
all2 : ("All2" | "A2" | "∀2") vardef ":" formula
exists1 : ("Exists" | "E" | "∃" ) vardef ":" formula
exists2 : ("Exists2"| "E2" | "∃2") vardef ":" formula
mod : "Mod(" (integer",")? integer")" var1def ":" formula
integer : INT -> number
string : CNAME -> str
vardef: (identifier ",")* identifier
identifier: string
atoms : numerical_predicates
| descriptive_predicates
| set_predicates
constantes : max | min | emptyset | fullset
max : "max"
min : "min"
emptyset : "∅" | "Empty"
fullset : "FULL"
value : identifier | constantes | functional_operation
functional_operation : value "+" integer
| "letter(" value ")"
numerical_predicates : value "<" value
| value "<=" value
| value ">" value
| value ">=" value
| value "=" value
| value "=" value
| value "!=" value
| value "+" integer "=" value
| integer "+" value "=" value
| (integer | value) "=" (integer | value) "%" integer
| value "%" integer
descriptive_predicates : letter_predicate | word_predicate
letter_predicate : LETTER "(" value ")"
| \l "(" hash ")" "(" value ")"
| \l tuple "(" value ")"
word_predicate : LETTER+ "(" value ")"
| \w "(" (Hashable | SetOfHashable)+ ")"
| \W "(" (Hashable | SetOfHashable)+ ")"
set_predicates : value ("in" | "∈") identifier
| identifier ("contains" | "⊂") identifier
| "Union(" (identifier ",")* identifier ")"
| identifier "∪" identifier
| "Intersection(" (identifier ",")* identifier ")"
| identifier "∩" identifier
| "Partition(" (identifier ",")* identifier ")"
%import utils.hashable
%import utils.tuple
%import common.LETTER
%import common.CNAME
%import common.INT
%import common.WS
%ignore WS
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment