From 828cd4c145b1c4ae8c32e4256ceb809b112df851 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Fri, 29 May 2026 14:02:24 +0200 Subject: Strings allow "\x;" i.e. empty hex escape. --- docs/c1/1-parse.md | 2 +- docs/c1/grammar/abnf.txt | 2 +- docs/c1/grammar/peg.txt | 2 +- docs/c1/grammar/zbnf.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/c1/1-parse.md b/docs/c1/1-parse.md index 7df2225..f6d677a 100644 --- a/docs/c1/1-parse.md +++ b/docs/c1/1-parse.md @@ -379,7 +379,7 @@ strings. (Some rows use Regular Expression notation.) +-----------------------------------+------------------------------+ | e | ASCII Escape | +-----------------------------------+------------------------------+ - | RE: /x([0-9a-fA-F]{2})+;/ | Arbitrary bytes in hex | + | RE: /x([0-9a-fA-F]{2})*;/ | Arbitrary bytes in hex | +-----------------------------------+------------------------------+ | RE: /u[0-9a-fA-F]+;/ | Unicode scalar as UTF-8 | +-----------------------------------+------------------------------+ diff --git a/docs/c1/grammar/abnf.txt b/docs/c1/grammar/abnf.txt index 7424f41..77b39f3 100644 --- a/docs/c1/grammar/abnf.txt +++ b/docs/c1/grammar/abnf.txt @@ -86,7 +86,7 @@ QuotStrChar = %x00-21 / %x23-5b / %x5d-ff ; any but DQUOTE or "\" StringEsc = "\" / "|" / DQUOTE / *( HTAB / SP ) LF *( HTAB / SP ) / %s"a" / %s"b" / %s"t" / %s"n" / %s"v" / %s"f" / %s"r" / %s"e" - / %s"x" 1*( 2HEXDIG ) ";" + / %s"x" *( 2HEXDIG ) ";" / %s"u" ["0"] 1*5HEXDIG ";" / %s"u" "1" "0" 4HEXDIG ";" diff --git a/docs/c1/grammar/peg.txt b/docs/c1/grammar/peg.txt index 1e060ec..c391162 100644 --- a/docs/c1/grammar/peg.txt +++ b/docs/c1/grammar/peg.txt @@ -43,7 +43,7 @@ QuotStrChar <- (!["\\] .) StringEsc <- '\' / '|' / '"' / ( HTAB / SP )* LF ( HTAB / SP )* / 'a' / 'b' / 't' / 'n' / 'v' / 'f' / 'r' / 'e' - / 'x' HexByte+ ';' + / 'x' HexByte* ';' / 'u' UnicodeSV ';' HexByte <- HEXDIG HEXDIG diff --git a/docs/c1/grammar/zbnf.txt b/docs/c1/grammar/zbnf.txt index 002e027..83a2394 100644 --- a/docs/c1/grammar/zbnf.txt +++ b/docs/c1/grammar/zbnf.txt @@ -44,7 +44,7 @@ QuotStrChar : ~( '"' | '\' ) StringEsc : '\' | '|' | '"' | ( HTAB | SP )* LF ( HTAB | SP )* | '0' | 'a' | 'b' | 't' | 'n' | 'v' | 'f' | 'r' | 'e' - | 'x' HexByte+ ';' + | 'x' HexByte* ';' | 'u' UnicodeSV ';' HexByte : HEXDIG HEXDIG -- cgit v1.2.3