Delete the grammar file
It was almost always wrong anyways.
This commit is contained in:
parent
90078b5956
commit
9059f2d474
34
grammar.txt
34
grammar.txt
@ -1,34 +0,0 @@
|
|||||||
Justfile grammar is a little weird. Because of the freeform
|
|
||||||
nature of recipe bodies, we don't tokenize them with the
|
|
||||||
same rules as the rest of the justfile. Instead the
|
|
||||||
tokenizer will emit a INDENT at the beginning of a recipe
|
|
||||||
body, one or more LINEs, which match everything after the
|
|
||||||
INDENT whitespace, and a DEDENT at the end.
|
|
||||||
|
|
||||||
Thus the lexer is context sensitive, which is a little
|
|
||||||
gross.
|
|
||||||
|
|
||||||
tokens:
|
|
||||||
|
|
||||||
NAME = /[a-z]((_|-)?[a-z0-9])*/
|
|
||||||
EOL = /\n|\r\n/
|
|
||||||
COMMENT = /#[^!].*/
|
|
||||||
COLON = /:/
|
|
||||||
INDENT = emitted when indentation increases
|
|
||||||
DEDENT = emitted when indentation decreases
|
|
||||||
LINE = /.*/ only emitted between INDENT/DEDENT pairs, doesn't include INDENT whitespace
|
|
||||||
EOF = emitted at the end of input
|
|
||||||
|
|
||||||
grammar:
|
|
||||||
|
|
||||||
justfile = item* EOF
|
|
||||||
|
|
||||||
item = COMMENT
|
|
||||||
| recipe
|
|
||||||
| EOL
|
|
||||||
|
|
||||||
assignment = NAME EQUALS expression COMMENT? EOL
|
|
||||||
|
|
||||||
expression = STRING
|
|
||||||
|
|
||||||
recipe = NAME+ COLON NAME* EOL (INDENT LINE+ DEDENT)?
|
|
Loading…
Reference in New Issue
Block a user