mirror of
https://github.com/johnkerl/miller.git
synced 2026-01-23 10:15:36 +00:00
42 lines
1,021 B
BNF
42 lines
1,021 B
BNF
// ================================================================
|
|
// LEXER
|
|
|
|
_string_literal_element
|
|
: 'A'-'Z' | 'a'-'z' | '0'-'9'
|
|
| ' ' | '!' | '#' | '$' | '%' | '&' | '\'' | '\\'
|
|
| '(' | ')' | '*' | '+' | ',' | '-' | '.' | '/'
|
|
| ':' | ';' | '<' | '=' | '>' | '?' | '@' | '['
|
|
| ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~'
|
|
| ( '\\' '"' )
|
|
| ( '\\' '[' )
|
|
| ( '\\' ']' )
|
|
| ( '\\' 'b' )
|
|
| ( '\\' 'f' )
|
|
| ( '\\' 'n' )
|
|
| ( '\\' 'r' )
|
|
| ( '\\' 't' )
|
|
| ( '\\' '\\' )
|
|
| ( '\\' '0' )
|
|
| ( '\\' 'x' )
|
|
| '\u0100'-'\U0010FFFF'
|
|
;
|
|
string_literal : '"' {_string_literal_element} '"' ;
|
|
|
|
// ================================================================
|
|
// IMPORT
|
|
|
|
<< import "two/src/dsl" >>
|
|
|
|
// ================================================================
|
|
// PARSER
|
|
|
|
// ----------------------------------------------------------------
|
|
Root
|
|
: StringLiteral
|
|
<< dsl.NewAST($0) >>
|
|
;
|
|
|
|
StringLiteral
|
|
: string_literal
|
|
<< dsl.NewASTNodeStripDoubleQuotePair($0, dsl.NodeTypeStringLiteral) >>
|
|
;
|