我有一条规则需要用户提供一个字符串。目前,当用户给出我在语法中定义的关键字时,解析器会给出分段错误。
例如:
sampleClause: calc! strName {##->setType(SAMPLE_CLAUSE);};
strName : STRING;
calc: "CALC" | "calc";
如果用户输入 calc/CALC 作为 strName,解析器会抛出 Seg Fault。我不确定如何避免这种情况。
编辑:我也想知道如何避免解析器给出分段错误。这会使我不想要的应用程序崩溃。我想在这些情况下优雅地退出而不是段错误。
PS:我需要 ANTLR 2 中的解决方案,因为存在依赖关系。