【问题标题】:Concatenate YACC tokens连接 YACC 令牌
【发布时间】:2015-06-04 22:46:01
【问题描述】:

我正在尝试复制 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。这可能吗?

【问题讨论】:

    标签: c yacc lexer


    【解决方案1】:

    是的,您只需对参数使用通常的分隔列表产生式。

    LOG '(' PARAMS ')' {...} ;
    
    PARAMS : STRING
           | PARAMS ';' STRING
           ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-27
      • 2023-03-22
      • 1970-01-01
      • 2018-10-26
      • 2017-11-19
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多