我正在尝试使用以下内容构建语法:

NUMERIC:INTEGER | FLOAT | 无限| PI ... INFINITY:'∞'PI:'π'

但是Antlr拒绝加载语法。

===============>>#1 票数:3 已采纳

使用表示Unicode字符的Java表达式:

  • 'π'='\\ u03C0'
  • '∞'='\\ u221E'

这将达到'\\ uFFFF'; Java不支持五位Unicode。

  ask by James A. Rosen translate from so

未解决问题?本站智能推荐:

1回复

用unicode编写语法规则名称[ANTLR 4]

我仍然是ANTLR 4的初学者,我想知道是否可以用unicode编写语法规则名称。 例如,以下规则很好: atomExp returns [double value] : n=Number {$value = Double.parseDouble($n.text);} | '(' exp=
2回复

如何匹配antlr中的unicode字符

我试图在文本中挑选所有标记,并且需要匹配所有Ascii和Unicode字符,所以这就是我如何将它们排除在外。 现在,如果我将令牌规则写为: 我得到“决定可以匹配输入,例如”'A'..'Z'“使用多种选择:1,3结果,替代(s)3被禁用该输入”“决定可以匹配输入,如”' 0'..'
1回复

antlr3 Unicode字符导致错误

我正在尝试为具有unicode支持的小型DSL(需要德国变音符äöüÄÖÜß)编写antlr3语法,但是我似乎无法使其正常工作。 我编写了一个最小的测试语法,该语法应该可以与任何Unicode字符序列匹配,例如“ xay”(可以正常工作)或“xäy”(不能正常工作)。 这是语法:
1回复

Antlr生成的词法分析器挂在“辅助平面”的Unicode字符上(antlr 3.4)

我正在使用antlr语法和antlr Ruby Target解析PHP代码。 我必须解析的源文件之一实际上包含翻译,其中一些文件大量使用了Unicode字符。 语法似乎挂在“补充平面”的一个字符上,即U + 10430 。 过去,我有一个类似的问题,这是因为Ruby antlr目标很旧
1回复

ANTLR Lua长字符串语法规则

我正在尝试为Lua创建ANTLR解析器。 因此,我学习了Nicolai Mainero制作的语法(可从ANTLR的站点Lua 5.1语法获得)并开始工作。 语法很好。 一件事不起作用:长字符串。 Lua规范规则:文字 字符串也可以使用长括号括起来的长格式定义。 我们将
1回复

Antlr4语法围绕字符串可选括号

我正在尝试编写一个语法来评估一个方程式,该方程式可能会或可能不会被括号括起来。 前 - (不是str1匹配'你好') NOT(str1匹配'hello') (NOT(str1匹配'hello')) NOT str1匹配'hello' 在我的规则中,我
3回复

如何使ANTLR4语法支持转义字符?

我具有以下ANTLR4语法来解释正则表达式。 但是,当我尝试在Java中解析字符串文字'\\\\('时,我得到了 第1:0行在输入'\\(' 我想将任何带有'\\\\'前缀的字符视为终端。 例如,将'\\\\(','\\\\)','\\\\\\\\','\\\\ X'
1回复

如何在ANTLR中处理左联想语法

我正在使用antlr生成生成抽象语法树的解析器。 我对左联想运算符有一些疑问。 我的语法如下: AddNode和MultiplyNode的构造函数如下: 问题是,对于输入abc,它被解析为类似a-(bc)的东西,而不是(ab)-c。 Antlr不接受左递归语法。 如何修改
2回复

如何在这个ANTLR语法中删除Left递归?

我正在尝试解析CSP(Communicating Sequential Processes) CSP参考手册 。 我已经定义了以下语法规则。 现在ANTLR报道了这一点 是递归的。 有没有办法删除这个或我应该更好地使用Bison Flex这种类型的语法。 (有很多这样的规则
4回复

Scala的ANTLR语法?

我正在尝试为演示项目构建静态分析工具。 我们可以自由选择要分析的语言。 我从使用ANTLR编写Java代码分析器开始。 我现在想对Scala代码做同样的事情。 但是,我找不到Scala的ANTLR语法。 它存在吗? Scala语法还有其他机器可读的形式吗?