summaryrefslogtreecommitdiff
path: root/docs/c1/grammar/peg.txt
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-05-31 20:58:42 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-05-31 20:58:42 +0200
commit37ff7af18cd2e896506e6d228058204525b4a6eb (patch)
treeb45e29afac99b8e6eb21f5eaf040f640221220e8 /docs/c1/grammar/peg.txt
parent6794e27eac3e866aa2b24999e2027b301a52ebf2 (diff)
More proper shebang line parsing.
Diffstat (limited to 'docs/c1/grammar/peg.txt')
-rw-r--r--docs/c1/grammar/peg.txt6
1 files changed, 5 insertions, 1 deletions
diff --git a/docs/c1/grammar/peg.txt b/docs/c1/grammar/peg.txt
index 465123f..cee9c84 100644
--- a/docs/c1/grammar/peg.txt
+++ b/docs/c1/grammar/peg.txt
@@ -50,11 +50,12 @@ HexByte <- HEXDIG HEXDIG
UnicodeSV <- HEXDIG+
RuneExpr <- Rune ( '\' BareString / CladDatum )?
-HashBang <- '!' [\t ]* BareString
+HashBang <- '!' [\t ]* HBLine '\n'?
LabelExpr <- '%' Label ( '%' / '=' Datum )
HashDatum <- '\' BareString / CladDatum
Rune <- ALPHA ( ALPHA / DIGIT )*
+HBLine <- HBChars+ [\t ]* ( HBChars+ )?
Label <- HEXDIG+
ParenList <- '(' ListBody ')'
@@ -63,6 +64,9 @@ BraceList <- '{' ListBody '}'
ListBody <- Unit* ( Blank* '&' Unit )? Blank*
+HBChars : ~( SP | HTAB | LF )
+
+
DIGIT <- [0-9]
ALPHA <- [a-zA-Z]
HEXDIG <- [0-9a-fA-F]