This page purpose is to help HATP developers : it describes how HATP works under the hood.
Parsing
Preconditions
The parsing of the preconditions are based on the following formal grammar:
term := e | (e, a) | size(e, a) | f(x1, ..., xn) | const literal := term = term | term ≠ term | term > term | term ≥ term | term < term | term ≤ term | term ∈ (e, a) | term ∉ (e, a) precond := precond ⋁ precond | ∀(e' ∈ t), precond → precond | ∃(e' ∈ t), precond → precond | literal | precond