ANTLR3 - 如何获取重复令牌的文本

时间:2014-08-29 16:15:54

标签: antlr antlr3

我使用的是ANTLR3 C版本,语法片段是这样的:

a_cmd : sub_cmd+  'abc'  (sub_cmd)?
       ;

现在我需要获取所有第一个sub_cmd的全文,重复一个。我试过这样做:

a_cmd : (sc1=(sub_cmd+))  'abc'  (sub_cmd)? 
        {add_text($sc1.$text)}
       ;

但是我从gcc中得到了编译错误:

request for member 'ctx' in 'sc1', which is of non-class type 'ANTLR3_COMMON_TOKEN_struct*'

那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

表示sc1适用于ANTLR3_COMMON_TOKEN_struct *

类型

你可以使用 {add_text($ sc1-> toString())}

详情请参阅http://www.antlr3.org/api/C/struct_a_n_t_l_r3___c_o_m_m_o_n___t_o_k_e_n__struct.html