miller/parser-experiments/two/brackets.bnf

42 lines
1 KiB
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 "miller/src/dsl" >>
// ================================================================
// PARSER
// ----------------------------------------------------------------
Root
: StringLiteral
<< dsl.NewAST($0) >>
;
StringLiteral
: string_literal
<< dsl.NewASTNodeStripDoubleQuotePair($0, dsl.NodeTypeStringLiteral) >>
;