antlr3StringStreamNew字符串输入错误[在偏移0处,<eof>:无法与任何预测输入匹配...] </eof>

时间:2012-03-15 10:11:27

标签: antlr3

我正在使用带有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';' - &gt; ^(FUNC_DECL functionHeader)| functionHeader block - &gt; ^(FUNC_DEF functionHeader block)); ,在偏移0处,at:无法匹配任何预测输入...   解析器返回1个错误,树行走中止。

提供String输入的任何其他方式

此致

1 个答案:

答案 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;这解决了我的问题。