Enki Operators

(Back to Syntax Guide)

Extended EBNF Operators

Enki also provides a series of Extended operators that use D constructs, bindings and EBNF productions in order to support a wider arrange of parsing tasks that mere bindings and EBNF can allow. These allow for idioms and techniques that are unique to Enki.

  • Negation is the "!" prefix operator.
  • Testing is performed by the "/" operator (does not advance the parser through the file on success)
   AnythingButX ::= !x;
   TryThis ::= /y;

   # test and negate are usually used together as a "non-consuming terminator" for repetition:
   Foobar ::= {"foo"} /!"bar" "barred";