diff options
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/syntax.abnf | 13 | ||||
| -rw-r--r-- | spec/syntax.md | 19 | ||||
| -rw-r--r-- | spec/syntax.zbnf | 19 |
3 files changed, 24 insertions, 27 deletions
diff --git a/spec/syntax.abnf b/spec/syntax.abnf index a3c4ab9..6ee024d 100644 --- a/spec/syntax.abnf +++ b/spec/syntax.abnf @@ -1,4 +1,4 @@ -Unit = *Blank Datum [ ';' SkipLine ] +Unit = *Blank Datum [ Blank ] Blank = HTAB / LF / %x0b / %x0c / CR / Comment @@ -8,7 +8,7 @@ Datum = OneDatum *( [JoinChar] OneDatum ) JoinChar = '.' / ':' -Comment = ';' ( SkipUnit / SkipLine LF ) +Comment = ';' ( SkipUnit / SkipLine [LF] ) SkipUnit = '~' Unit @@ -17,8 +17,7 @@ SkipLine = *( %x00-09 / %x0b-ff ) ; any but LF OneDatum = BareString / CladDatum -BareString = ( '.' / '+' / '-' / DIGIT ) *( BareChar / '.' ) - / 1*BareChar +BareString = 1*BareChar CladDatum = '|' *( PipeStrChar / '\' StringEsc ) '|' / '"' *( QuotStrChar / '\' StringEsc ) '"' @@ -28,7 +27,7 @@ CladDatum = '|' *( PipeStrChar / '\' StringEsc ) '|' BareChar = ALPHA / DIGIT - / '!' / '$' / '%' / '&' / '*' / '+' / '-' / '/' + / '!' / '$' / '%' / '*' / '+' / '-' / '.' / '/' / '<' / '=' / '>' / '?' / '@' / '^' / '_' / '~' @@ -36,12 +35,12 @@ PipeStrChar = %x00-5b / %x5d-7b / %x7d-ff ; any but | or \ QuotStrChar = %x00-21 / %x23-5b / %x5d-ff ; any but " or \ -HashExpr = rune ( '\' BareString / [CladDatum] ) +HashExpr = Rune [ '\' BareString / CladDatum ] / '\' BareString / '%' Label ( '%' / '=' Datum ) / CladDatum -List = *Unit [ '.' Unit ] *Blank +List = *Unit [ '&' Unit ] *Blank StringEsc = '\' / '|' / '"' / *( HTAB / SP ) LF *( HTAB / SP ) diff --git a/spec/syntax.md b/spec/syntax.md index 91e5495..affa7a1 100644 --- a/spec/syntax.md +++ b/spec/syntax.md @@ -44,40 +44,39 @@ Datum : OneDatum ( [JoinChar] OneDatum )* JoinChar : '.' | ':' -Comment : ';' ( SkipUnit | SkipLine ) +Comment : ';' ( SkipUnit | SkipLine [LF] ) SkipUnit : '~' Unit -SkipLine : ( ~LF )* [LF] +SkipLine : ( ~LF )* OneDatum : BareString | CladDatum -BareString : ( '.' | '+' | '-' | DIGIT ) ( BareChar | '.' )* - | BareChar+ +BareString : BareChar+ -CladDatum : '|' PipeStrElt* '|' - | '"' QuotStrElt* '"' +CladDatum : '|' ( PipeStrChar | '\' StringEsc )* '|' + | '"' ( QuotStrChar | '\' StringEsc )* '"' | '#' HashExpr | '(' List ')' | '[' List ']' | '{' List '}' | "'" Datum | '`' Datum | ',' Datum BareChar : ALPHA | DIGIT - | '!' | '$' | '%' | '&' | '*' | '+' | '-' | '/' + | '!' | '$' | '%' | '*' | '+' | '-' | '.' | '/' | '<' | '=' | '>' | '?' | '@' | '^' | '_' | '~' -PipeStrElt : ~( '|' | '\' ) | '\' StringEsc +PipeStrChar : ~( '|' | '\' ) -QuotStrElt : ~( '"' | '\' ) | '\' StringEsc +QuotStrChar : ~( '"' | '\' ) HashExpr : Rune [ '\' BareString | CladDatum ] | '\' BareString | '%' Label ( '%' | '=' Datum ) | CladDatum -List : Unit* [ '.' Unit ] Blank* +List : Unit* [ '&' Unit ] Blank* StringEsc : '\' | '|' | '"' | ( HTAB | SP )* LF ( HTAB | SP )* diff --git a/spec/syntax.zbnf b/spec/syntax.zbnf index 5656864..d920845 100644 --- a/spec/syntax.zbnf +++ b/spec/syntax.zbnf @@ -8,40 +8,39 @@ Datum : OneDatum ( [JoinChar] OneDatum )* JoinChar : '.' | ':' -Comment : ';' ( SkipUnit | SkipLine ) +Comment : ';' ( SkipUnit | SkipLine [LF] ) SkipUnit : '~' Unit -SkipLine : ( ~LF )* [LF] +SkipLine : ( ~LF )* OneDatum : BareString | CladDatum -BareString : ( '.' | '+' | '-' | DIGIT ) ( BareChar | '.' )* - | BareChar+ +BareString : BareChar+ -CladDatum : '|' PipeStrElt* '|' - | '"' QuotStrElt* '"' +CladDatum : '|' ( PipeStrChar | '\' StringEsc )* '|' + | '"' ( QuotStrChar | '\' StringEsc )* '"' | '#' HashExpr | '(' List ')' | '[' List ']' | '{' List '}' | "'" Datum | '`' Datum | ',' Datum BareChar : ALPHA | DIGIT - | '!' | '$' | '%' | '&' | '*' | '+' | '-' | '/' + | '!' | '$' | '%' | '*' | '+' | '-' | '.' | '/' | '<' | '=' | '>' | '?' | '@' | '^' | '_' | '~' -PipeStrElt : ~( '|' | '\' ) | '\' StringEsc +PipeStrChar : ~( '|' | '\' ) -QuotStrElt : ~( '"' | '\' ) | '\' StringEsc +QuotStrChar : ~( '"' | '\' ) HashExpr : Rune [ '\' BareString | CladDatum ] | '\' BareString | '%' Label ( '%' | '=' Datum ) | CladDatum -List : Unit* [ '.' Unit ] Blank* +List : Unit* [ '&' Unit ] Blank* StringEsc : '\' | '|' | '"' | ( HTAB | SP )* LF ( HTAB | SP )* |
