连接 YACC token

标签 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。这可能吗?

最佳答案

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

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

PARAMS : STRING
       | PARAMS ';' STRING
       ;

关于连接 YACC token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655492/

相关文章:

c - localtime() 在 RTL8710 上偏移了大约 460,000 年

C while循环不停止

javascript - 编写野牛语法以识别javascript函数并忽略其他所有内容

yacc - Bison/Yacc,让文字标记返回它自己的值?

java - 返回java正则表达式(单词、空格、特殊字符、双引号)

C - 随机数生成器的问题

python - 更改检测 block 层 yacc 末端的方法

ANTLR4 ATN 代表什么?

java - 无法运行 JFlex 生成的词法分析器 Java 文件

c - 将值初始化为结构