我需要解析以下内容
model {
// any content, including brackets {}
var x= {} ;
// any content, including brackets {}
}
如果我这样做:
model : MODEL OBR modelBody CBR;
modelBody: modelBodyLine;
modelBodyLine: TEXT* (OBR TEXT* CBR)* TEXT*;
TEXT : ('a'..'z'|'A'..'Z'| '_' | '-')+ ;
OBR: '{';
CBR: '}';
我收到此错误
警告(200):/ SWL Parser / src / ro / sft / swl / language / parser / SWL.g:46:16: 决策可以使用多个替代方法匹配输入,例如“TEXT”: 1,2结果,对于该输入禁用了替代方案2 | ---> modelBodyLine:TEXT *(OBR TEXT * CBR)* TEXT *;
那么解析它的最佳方法是什么?
答案 0 :(得分:1)
我对这些情况使用以下genericBlock
规则。此规则依赖于您的词法分析器至少为最终CBR
正确返回}
令牌,并为每个嵌套{{1}正确匹配CBR
令牌它创建的令牌。
OBR