1 unstable release

0.1.0 Jan 18, 2022

#2096 in Parser implementations

22 downloads per month

MIT license

16KB
328 lines

dft.p

dft instructions file parser

description

this lib/bin project is the official tool to parse, lint and fix .dft files

why

while working in the dft project I realized 2 things:

  • the dft tool itself shouldn't be responsible of parsing the instructions file, but rather the execution itself

  • haven't made a parser yet, so... here's one

grammar (BNF)

:= | ;

:= ; ;

:= ;

:= SET | ADD | ALIAS | MERGE | IGNORE | RENAME | FILTER | COERCE | DISTINCT | VALIDATE ;

:= | , ;

:= String ;

:= | ;

:= ;

:= OR | TO | TYPED | RESCUE | DEFAULT | MATCHING ;

:= | | | | ;

:= f64 | String | bool | isize ;

:= FLOAT | STRING | INTEGER | BOOLEAN ;

:= URI | UUID | DATE | TIME | EMAIL | DATETIME ;

:= HALT | NOTIFY | DISCARD ;

:= EQUALS | LESSER | DIFFERS | GREATER | EQLESSER | EQGREATER ;

TODO

[] Improve combinators that return lists [] Improve error verbosity

Dependencies

~1MB
~17K SLoC