我正在使用带有simplecTreeParser示例的ANTLR 3.4,并希望从main.c提供字符串输入
我在main中修改了输入,如下所述
pANTLR3_UINT8 input_string = (pANTLR3_UINT8)"int a;";
input = antlr3StringStreamNew(input_string, ANTLR3_ENC_8BIT, sizeof(input_string),(pANTLR3_UINT8)"ABCD");
显然会出现以下错误
- 输入结束 - (1):错误3:23:1:声明:(变量| functionHeader';' - > ^(FUNC_DECL functionHeader)| functionHeader block - > ^(FUNC_DEF functionHeader block)); ,在偏移0处,at:无法匹配任何预测输入... 解析器返回1个错误,树行走中止。
提供String输入的任何其他方式
此致
答案 0 :(得分:1)
pANTLR3_UINT8 input_string = (pANTLR3_UINT8)"int a;";
input = antlr3StringStreamNew(input_string, ANTLR3_ENC_8BIT, strlen(input_string),(pANTLR3_UINT8)"ABCD");
使用strlen
代替sizeof
;这解决了我的问题。