从AntlR4Java切换到ParseKit-Objective-C:ParseKit中的通道?

从AntlR4Java切换到ParseKit-Objective-C:ParseKit中的通道?,java,objective-c,grammar,antlr4,parsekit,Java,Objective C,Grammar,Antlr4,Parsekit,问题: 不知道如何翻译Antlr4“.g4”语法文件的内容以匹配的语法 具体地说: 如何翻译->频道(隐藏)从Antlr4语法到ParseKit语法 上下文: 我正在用Objective-C/Xcode为iOS创建一个.Framework。我需要生成一个解析器,模仿Java中Antlr4生成的解析器的基本功能。设计解析器功能的方法不是问题;我有兴趣更多地了解这个世界 语法代码: : 空白:[\t\r\n]+{$channel=HIDDEN;} : 空白:[\t\r\n]+->通道(隐藏) : w

问题:
不知道如何翻译Antlr4“.g4”语法文件的内容以匹配的语法


具体地说:
如何翻译
->频道(隐藏)从Antlr4语法到ParseKit语法


上下文:
我正在用Objective-C/Xcode为iOS创建一个.Framework。我需要生成一个解析器,模仿Java中Antlr4生成的解析器的基本功能。设计解析器功能的方法不是问题;我有兴趣更多地了解这个世界


语法代码:


空白:[\t\r\n]+{$channel=HIDDEN;}


空白:[\t\r\n]+->通道(隐藏)


whitespace=/[\s\t\r\n]+/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu如何忽略


问题:
-是否支持频道?
-发送到隐藏频道的语法是什么?
-或者,在ParseKit中是否有与频道性质类似的功能?

此处的创建者。ParseKit没有
通道
功能,也没有ANTLR那样的
->
树重写功能。(一般来说,ParseKit的功能不如ANTLR充分)

但是,您可能可以使用ParseKit的放弃功能实现所需的效果

在设计ParseKit语法时,您的语言中通常有纯语法的标记。这些标记对于计算结果或构建抽象语法树(用于进一步处理)都不重要。您通常希望使用ParseKit
自动丢弃这些令牌指令

例如,假设您在ParseKit语法中有一个名为
primaryExpr
的规则,如:

primaryExpr = atom
            | '(' expr ')'!
            ;
注意
在右括号后
)'
。这是discard指令,它指示ParseKit令牌生成器从报告给ParseKit汇编程序(委托)回调的令牌流中丢弃
令牌

因此,在
-parser:didMatchPrimaryExpr:
回调中,
程序集
参数的堆栈将不包含
标记。
令牌将已被丢弃。在这种情况下,丢弃是可取的,因为
是纯语法,对于处理相关的括号表达式并不重要


因此,要放弃语法中不重要的标记,请放置
指令紧跟其后。

Todd;谢谢你的书面回复!放置在ParseKit的ParseGenApp中的以下代码是否会告诉生成的解析器放弃显示的字符集?:
whitespace=/[\t\r\n]+/语法规则“空白”不用于定义任何其他规则,仅此一项。请向上投票和/或接受此答案,并将新问题作为新的单独问题提问。