我试图解析整数并在antlr 3.2中访问它们的值。
我已经在Java中找到了如何做到这一点:
//token definition
INT : '0'..'9'+;
//rule to access token value:
start : val=INT {Integer x = Integer.valueOf( $val.text ).intValue(); }
;
...但我无法在C / C ++中找到解决方案。有人知道怎么做吗?
答案 0 :(得分:0)
根据http://www.antlr.org/download/examples-v3.tar.gz的例子-v3 / C / C.g $ INT.text->字符应该适用于C但我没有测试它。
如果您在C程序中从解析器外部遍历AST,并且您有一个名为“node”的节点,类型为ANTLR3_BASE_TREE,您可以使用node-> getText(节点) - > chars访问它(从那以后进行测试)自己用这个。)
请记住,C和C ++目标是两个完全不同的东西。我只使用C目标,所以我不能说很多关于C ++的目标。
然而,这些例子是了解这些细节的一个很好的资源,遗憾的是,这些细节没有得到很好的记录。