连接YACC令牌

时间:2015-06-04 22:46:02

标签: c yacc lexer

我试图复制一个C语法,我可以将可变数量的字符串连接成一个像printf支持的字符串。这是一个例子:

log("here is line 1, "
    "and here is line 2");

我目前有以下支持单独的参数:

| LOG LPAREN STRING COMMA STRING RPAREN {
  func($$, LOG, STR_ST, STR_ST, $3, $5); }

我希望能够将多个STRING标记连接成一个字符串,然后可以传递给func。这可能吗?

1 个答案:

答案 0 :(得分:2)

是的,您只需要为参数使用通常的分隔列表生成。

LOG '(' PARAMS ')' {...} ;

PARAMS : STRING
       | PARAMS ';' STRING
       ;