summaryrefslogtreecommitdiff
path: root/spec/parser.ebnf
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2025-03-31 23:46:24 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2025-03-31 23:46:24 +0200
commitcf934006c650d3d008a4408bedbd95597f906e43 (patch)
treedc99b4c87497936fc4c5fe37ab0b3d8ef5ea89bf /spec/parser.ebnf
parent4922f3a4437f7ea8495f32aea0aa329830bd2d8b (diff)
parser cleanup
Diffstat (limited to 'spec/parser.ebnf')
-rw-r--r--spec/parser.ebnf75
1 files changed, 0 insertions, 75 deletions
diff --git a/spec/parser.ebnf b/spec/parser.ebnf
deleted file mode 100644
index caa24f3..0000000
--- a/spec/parser.ebnf
+++ /dev/null
@@ -1,75 +0,0 @@
-unit : blank* ( datum blank? | EOF ) ;
-
-
-blank : 9...13 | comment ;
-
-datum : one_datum ( join_char? one_datum )* ;
-
-join_char : '.' | ':' ;
-
-
-comment : ';' ( skip_unit | skip_line ) ;
-
-skip_unit : '~' unit ;
-
-skip_line : ( ~LF )* LF? ;
-
-
-one_datum : bare_string | clad_datum ;
-
-bare_string : ( '.' | '+' | '-' | DIGIT ) ( bare_str_elt | '.' )*
- | bare_str_elt+
- ;
-
-clad_datum : '\' bare_esc_str
- | '|' pipe_str_elt* '|'
- | '"' quot_str_elt* '"'
- | '#' hash_expr
- | '(' list ')'
- | '[' list ']'
- | '{' list '}'
- | quote_expr
- ;
-
-
-bare_str_elt : bare_char | '\' bare_esc ;
-
-
-bare_esc_str : bare_esc bare_str_elt* ;
-
-pipe_str_elt : ~( '|' | '\' ) | '\' pipe_esc ;
-
-quot_str_elt : ~( '"' | '\' ) | '\' quot_esc ;
-
-hash_expr : rune clad_datum?
- | '%' label ( '%' | '=' datum )
- | clad_datum
- ;
-
-list : unit* ( '.' unit )? blank* ;
-
-quote_expr : ( "'" | "`" | "," ) datum ;
-
-
-bare_char : ALPHA | DIGIT | bare_punct ;
-
-bare_punct : '!' | '$' | '%' | '&' | '*' | '+' | '-' | '/'
- | '<' | '=' | '>' | '?' | '@' | '^' | '_' | '~'
- ;
-
-bare_esc : 33...126 ;
-
-
-pipe_esc : string_esc | '|' ;
-
-quot_esc : string_esc | '"' ;
-
-string_esc : '\' | 'a' | 'b' | 'e' | 'f' | 'n' | 'r' | 't' | 'v'
- | 'x' HEXDIG{2}
- | 'u' '{' HEXDIG+ '}'
- ;
-
-
-rune : ALPHA ( ALPHA | DIGIT ){0,5} ;
-
-label : HEXDIG{1,12} ;