From 1f95a65f4a7898abb185216910898234fd9f0ac5 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Sun, 31 May 2026 21:40:24 +0200 Subject: Grammar file cleanup. --- docs/c1/grammar/peg.txt | 35 ++++++++++++++++++++--------------- docs/c1/grammar/zbnf.txt | 35 ++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 30 deletions(-) (limited to 'docs/c1/grammar') diff --git a/docs/c1/grammar/peg.txt b/docs/c1/grammar/peg.txt index cee9c84..7b28a99 100644 --- a/docs/c1/grammar/peg.txt +++ b/docs/c1/grammar/peg.txt @@ -2,11 +2,12 @@ Stream <- Unit ( Blank Unit )* !. -Unit <- Blank* Datum +Unit <- Blank* Datum Blank <- [\t-\r ] / Comment + Datum <- OneDatum ( JoinChar? OneDatum )* JoinChar <- '.' / ':' @@ -21,22 +22,25 @@ SkipLine <- (!'\n' .)* '\n'? OneDatum <- BareString / CladDatum + BareString <- SpecBareChar ( BareChar / JoinChar )* / BareChar+ +SpecBareChar <- '+' / '-' / JoinChar / DIGIT + +BareChar <- ALPHA / DIGIT + / '!' / '$' / '%' / '*' / '+' / '-' / '/' + / '<' / '=' / '>' / '?' / '^' / '_' / '~' + + CladDatum <- PipeStr / QuoteStr / HashExpr / QuoteExpr / List PipeStr <- '|' ( PipeStrChar / '\' StringEsc )* '|' QuoteStr <- '"' ( QuotStrChar / '\' StringEsc )* '"' -HashExpr <- '#' ( RuneExpr / HashBang / LabelExpr / HashDatum ) +HashExpr <- '#' HashExprs QuoteExpr <- "'" Datum / '`' Datum / ',' Datum List <- ParenList / SquareList / BraceList -SpecBareChar <- '+' / '-' / JoinChar / DIGIT - -BareChar <- ALPHA / DIGIT - / '!' / '$' / '%' / '*' / '+' / '-' / '/' - / '<' / '=' / '>' / '?' / '^' / '_' / '~' PipeStrChar <- (![|\\] .) QuotStrChar <- (!["\\] .) @@ -49,14 +53,17 @@ StringEsc <- '\' / '|' / '"' / ( HTAB / SP )* LF ( HTAB / SP )* HexByte <- HEXDIG HEXDIG UnicodeSV <- HEXDIG+ -RuneExpr <- Rune ( '\' BareString / CladDatum )? -HashBang <- '!' [\t ]* HBLine '\n'? -LabelExpr <- '%' Label ( '%' / '=' Datum ) -HashDatum <- '\' BareString / CladDatum -Rune <- ALPHA ( ALPHA / DIGIT )* -HBLine <- HBChars+ [\t ]* ( HBChars+ )? +HashExprs <- '!' [\t ]* HBangLine '\n'? + / '%' Label ( '%' / '=' Datum ) + / '\' BareString / CladDatum + / Rune ( '\' BareString / CladDatum )? + +HBangLine <- HBChars+ [\t ]* ( HBChars+ )? +HBChars <- (![\t\n ] .) Label <- HEXDIG+ +Rune <- ALPHA ( ALPHA / DIGIT )* + ParenList <- '(' ListBody ')' SquareList <- '[' ListBody ']' @@ -64,8 +71,6 @@ BraceList <- '{' ListBody '}' ListBody <- Unit* ( Blank* '&' Unit )? Blank* -HBChars : ~( SP | HTAB | LF ) - DIGIT <- [0-9] ALPHA <- [a-zA-Z] diff --git a/docs/c1/grammar/zbnf.txt b/docs/c1/grammar/zbnf.txt index 704db22..923ac83 100644 --- a/docs/c1/grammar/zbnf.txt +++ b/docs/c1/grammar/zbnf.txt @@ -2,11 +2,12 @@ Stream : Unit ( Blank Unit )* -Unit : Blank* [Datum] +Unit : Blank* [Datum] Blank : '\t'...'\r' | SP | Comment + Datum : OneDatum ( [JoinChar] OneDatum )* JoinChar : '.' | ':' @@ -21,22 +22,25 @@ SkipLine : ( ~LF )* [LF] OneDatum : BareString | CladDatum + BareString : SpecBareChar ( BareChar | JoinChar )* | BareChar+ +SpecBareChar : '+' | '-' | JoinChar | DIGIT + +BareChar : ALPHA | DIGIT + | '!' | '$' | '%' | '*' | '+' | '-' | '/' + | '<' | '=' | '>' | '?' | '^' | '_' | '~' + + CladDatum : PipeStr | QuoteStr | HashExpr | QuoteExpr | List PipeStr : '|' ( PipeStrChar | '\' StringEsc )* '|' QuoteStr : '"' ( QuotStrChar | '\' StringEsc )* '"' -HashExpr : '#' ( RuneExpr | HashBang | LabelExpr | HashDatum ) +HashExpr : '#' HashExprs QuoteExpr : "'" Datum | '`' Datum | ',' Datum List : ParenList | SquareList | BraceList -SpecBareChar : '+' | '-' | JoinChar | DIGIT - -BareChar : ALPHA | DIGIT - | '!' | '$' | '%' | '*' | '+' | '-' | '/' - | '<' | '=' | '>' | '?' | '^' | '_' | '~' PipeStrChar : ~( '|' | '\' ) QuotStrChar : ~( '"' | '\' ) @@ -49,14 +53,17 @@ StringEsc : '\' | '|' | '"' | ( HTAB | SP )* LF ( HTAB | SP )* HexByte : HEXDIG HEXDIG UnicodeSV : HEXDIG+ -RuneExpr : Rune [ '\' BareString | CladDatum ] -HashBang : '!' ( SP | HTAB )* HBLine [ LF ] -LabelExpr : '%' Label ( '%' | '=' Datum ) -HashDatum : '\' BareString | CladDatum -Rune : ALPHA ( ALPHA | DIGIT )* -HBLine : HBChars+ ( SP | HTAB )* [ HBChars+ ] +HashExprs : '!' ( SP | HTAB )* HBangLine [ LF ] + | '%' Label ( '%' | '=' Datum ) + | '\' BareString | CladDatum + | Rune [ '\' BareString | CladDatum ] + +HBangLine : HBChars+ ( SP | HTAB )* [ HBChars+ ] +HBChars : ~( SP | HTAB | LF ) Label : HEXDIG+ +Rune : ALPHA ( ALPHA | DIGIT )* + ParenList : '(' ListBody ')' SquareList : '[' ListBody ']' @@ -64,8 +71,6 @@ BraceList : '{' ListBody '}' ListBody : Unit* [ Blank* '&' Unit ] Blank* -HBChars : ~( SP | HTAB | LF ) - ;; Local Variables: ;; eval: (flyspell-mode -1) -- cgit v1.2.3