diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2026-05-31 21:40:24 +0200 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2026-05-31 21:40:24 +0200 |
| commit | 1f95a65f4a7898abb185216910898234fd9f0ac5 (patch) | |
| tree | e5875edf843507e134c161e383ab23a8283601b2 /docs/c1/grammar/peg.txt | |
| parent | 37ff7af18cd2e896506e6d228058204525b4a6eb (diff) | |
Grammar file cleanup.
Diffstat (limited to 'docs/c1/grammar/peg.txt')
| -rw-r--r-- | docs/c1/grammar/peg.txt | 35 |
1 files changed, 20 insertions, 15 deletions
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] |
