Spe*_*edy 4 javascript unicode quotes grammar pegjs
如何允许单引号和双引号,以及PEG.js语法定义中的unicode字符?更具体地说,我希望能够捕获可以包含单引号和双引号的字符串(很可能必须被\ _转义)和所有unicode字符.
目前我有以下内容:
_ name:$(PROP_ASCII+) CHAR_SQ val:$(PROP_ASCII_INNER*) CHAR_SQ
这将捕获类似的东西
key'value'
PROP_ASCII*定义为
PROP_ASCII
= [!-&(-<>-~]
PROP_ASCII_INNER
= [ -&(-~]
因此,如果值包含标准ASCII字符并且不包含单引号,则此工作正常且花花公子......但我想支持上面所述的内容,因此这样的事情将成为可能:
key'somé\'value\'?'
思考?
dan*_*dan 10
这个例子应该让你去.它支持单引号和双引号,也可以在字符串中进行转义.
在在线编辑器中尝试一下.
Value
= '"' chars:DoubleStringCharacter* '"' { return chars.join(''); }
/ "'" chars:SingleStringCharacter* "'" { return chars.join(''); }
DoubleStringCharacter
= !('"' / "\\") char:. { return char; }
/ "\\" sequence:EscapeSequence { return sequence; }
SingleStringCharacter
= !("'" / "\\") char:. { return char; }
/ "\\" sequence:EscapeSequence { return sequence; }
EscapeSequence
= "'"
/ '"'
/ "\\"
/ "b" { return "\b"; }
/ "f" { return "\f"; }
/ "n" { return "\n"; }
/ "r" { return "\r"; }
/ "t" { return "\t"; }
/ "v" { return "\x0B"; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1712 次 |
最近记录: |