summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-01-06 04:36:46 +0100
committerTaylan Kammer <taylan.kammer@gmail.com>2026-01-06 04:36:46 +0100
commitd2f3a2351271e22248d7c2f11c8f69bbe244e56a (patch)
tree004a15be4b96a8a50ef915e66951124ef8037fb0 /spec
parent94521a2cf4dfe82bc67a2998013cf6bed7c86869 (diff)
Update syntax spec.
Diffstat (limited to 'spec')
-rw-r--r--spec/syntax.abnf13
-rw-r--r--spec/syntax.md19
-rw-r--r--spec/syntax.zbnf19
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 )*