【发布时间】:2017-09-11 12:05:45
【问题描述】:
我的语法很简单,但我希望它接受一些字符串以便进行连接。这个公式必须是有效的:
CONCATENATE(10;" €" )
问题在于欧元符号。我过去常常把它写进我的语法中,这对学位符号非常有用:
fragment SPECIAL : '\u00B0';
但是欧元符号不像这个度数符号那样工作:
fragment SPECIAL : '\u00B0' | '\u20AC'
我正在使用 ANTLR 3.4 生成一个 PHP 解析器,生成的词法分析器代码如下所示:
$this->getToken('176')== $LA26 || ...
它应该为欧元符号添加这个,如果我在解析器生成后手动添加它(有两个地方可以添加它),它可以工作!
$this->getToken('128')== $LA26 || ...
我的问题是:如何将其添加到语法中以生成此代码?这一系列 unicode 符号是否有问题,以比 u00 开头的东西开头...因为我所有其他特殊字符都以 \u00
开头非常感谢您与我共度时光。 真挚地 尼古拉斯。
【问题讨论】:
-
将所有内容编码为 UTF-8!
-
请停止拖钓,antlr php 不支持 utf8
-
哦!真的?!我的朋友一点也不拖钓!
-
@delboy1978uk 这个问题是关于 ANTLR 4 的——不确定这是否相关。
标签: php antlr antlr3 antlrworks