【发布时间】:2023-04-11 07:30:02
【问题描述】:
我对 Flex/Bison 还很陌生,我正在尝试解析格式为的字符串:
COMMAND ARG1, ARG2, ARGn (, ARGn+1, ARGn+2 ...);
这样 args 1、2 和 n 是必需的,但 n+1、n+2、... 是可选的,没有限制。
我将如何在 Flex/Bison 中执行此操作?
当我将我的语法定义为:
args:
ARG
|
ARG COMMA args
;
var_command:
COMMAND ARG COMMA ARG COMMA args SEMICOLON
{
printf("arg1: %s, arg2: %s\n", $2, $4);
}
我只能(如上)引用前 2 个参数,如何引用 args: 定义中匹配的内容?
我已经测试了语法,我可以向它抛出任意数量的参数,它匹配正确,它只是处理那些让我无法理解的数据。
【问题讨论】:
标签: bison flex-lexer