Bison是否允许多个输入文件?
创始人
2024-12-19 07:31:24
0

Bison 默认只能处理一个输入文件,但是可以通过在命令行中指定多个文件名来处理多个文件,例如:

bison file1.y file2.y -o output.c

这将会把 file1.y 和 file2.y 合并处理并生成 output.c 文件。如果多个输入文件存在同名标识符的冲突,可以使用 %option prefix="prefix" 来给生成的符号加上前缀,避免冲突。

示例:

File1.y:

%{
    #include 
%}

%token NUMBER
%token ADD SUB

%%
expr: NUMBER
    | expr ADD NUMBER
    | expr SUB NUMBER
    ;

%%
int main(int argc, char** argv) {
    ++argv, --argc;
    yyin = fopen(*argv, "r");
    yyparse();
    fclose(yyin);
    return 0;
}

File2.y:

%{
    #include 
%}

%token MUL DIV

%%
factor: NUMBER
      | factor MUL NUMBER
      | factor DIV NUMBER
      ;

term: factor
    | term MUL factor
    | term DIV factor
    ;

expr: term
    | expr ADD term
    | expr SUB term
    ;

%%
int main(int argc, char** argv) {
    ++argv, --argc;
    yyin = fopen(*argv, "r");
    yyparse();
    fclose(yyin);
    return 0;
}

运行命令:

bison File1.y File2.y -o calculator.c

会生成一个名为 calculator.c 的文件,包含两个文件中所有的规则和符号。

相关内容

热门资讯

教程辅助!闲娱江西棋牌打盾系统... 教程辅助!闲娱江西棋牌打盾系统发好牌(透视辅助)果然有挂(2020已更新)(哔哩哔哩);1、进入游戏...
二分钟了解!六瓣数字消辅助,南... 二分钟了解!六瓣数字消辅助,南通长牌吗,解密教程(有挂黑科技)1、进入到六瓣数字消辅助黑科技之后,能...
我来教大家!微乐卡五星有没有挂... 我来教大家!微乐卡五星有没有挂(透视辅助)果然真的有挂(2023已更新)(哔哩哔哩)1、起透看视 微...
8分钟了解!哈局十三张,雀友会... 8分钟了解!哈局十三张,雀友会辅助器苹果版,德州教程(有挂攻略);1、上手简单,内置详细流程视频教学...
传递经验!八闽掌上麻将有挂(辅... 传递经验!八闽掌上麻将有挂(辅助挂)原来有挂(2020已更新)(哔哩哔哩);1、构建自己的八闽掌上麻...
8分钟了解!中至云山510k怎... 8分钟了解!中至云山510k怎么一直输,牵手跑得快辅助器软件,总结教程(有挂规律)中至云山510k怎...
重磅来袭!财神十三张有辅助工具... 重磅来袭!财神十三张有辅助工具吗(辅助挂)原来有挂(2020已更新)(哔哩哔哩)1、财神十三张有辅助...
5分钟了解!同城游扎股子外 挂... 5分钟了解!同城游扎股子外 挂,牵手跑胡子外挂怎么用,细节揭秘(有挂脚本)1、许多玩家不知道牵手跑胡...
六分钟了解!白金岛字牌有外 挂... 您好,白金岛字牌有外 挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩...
两分钟了解!边锋老友棋牌有规律... 两分钟了解!边锋老友棋牌有规律么,牵手跑得快小程序脚本,教你攻略(有挂详情);一、牵手跑得快小程序脚...