• 台湾
  • 千山
  • 多普达
  • 管理
  • 举重
  • 传说
  • 存档
  • 更多
  • 最热搜索
    大冲刺  段百花  功耗  两幅  职业生涯规划的范  人事关系  回民  王晨  天安  中国人口  苏机电  遗产分割  TCL闆嗗洟  将他  凯运  励致  建筑安装工程告知书  大公报  书信写作  克隆  论社会生活的实践本质  汉语言文学专业毕业论文  于高楼清洗设备的调研和改良报告  测试用例  驾驶培训  MRTG  赵九章  樊宏伟  项目开发总结报告  艺术 开题  搴愬北  第三十一章  中国粉体工业通鉴  中学生课外阅读调查报告files  承销  海淀  卫生系统  cjournal  理系统  法草案  三重市  参观实习  工程机械发  论文供应链  中华人民共和国国家标准下载搜索  福尔摩斯  的特性  表单  榛勫畢浜屽皬瀛敓钀吇鍒镐娇鐢鍒掑強鑿滆氨鎼厤涓嬭浇鎼滅储doccom鍏嶈垂鍏潰鐨勬枃妗悳绱笅杞界珯f  技术经济评价  correct  DE姘撹伀鑹  实验室建设 可行性  公元  Deeper  蔡文姬  后车  机械制图国家标准  二维  小学高级教师五年计划  SoftWare  黄朝霞  华强  八十六年  工程竣工报告范本  阅读报告  ElaineChen  年度客户审计  行政领导学  mp甯傚満钀攢绛栧垝涔  袁温州  电力负荷管理系统数据传输规约  房计划  叶绍翁  张华  员工培训管理系ue  第二七八  剑桥小学英语  连锁  漫笔  教育实习调查报告及论文参考题目  爱国主义  中新课程标准与教学大纲比较  国际上医疗改革的动态  供销合同  nicu鏂扮敓鍎胯触琛鐥囬閫夋姉鐢熺礌  传言  过节  吴传香  雕塑家  金铁木  卡车  发掘  建筑经济管理  多采多姿  Hopster  分公司  市政公用企业资质升级和增项申请书范文  惩治  ava閻庡湱鍋為崹宕虹涵鍛村棘鐟欏嫭绋夌闁瑰吋绮庨崒oc  
    bison  程序  结构  

    bison程序的结构

      文件类型:PPT/Microsoft Powerpoint   文件大小:1273字节

    内容摘要:

    bison程序的结构
    bison程序由三部分组成:定义段,规则段,
    用户子例程段
    …定义段…
    %%
    …规则段…
    %%
    …用户子例程段…
    定义段
    定义段包括文字块,逐字拷贝到生成的C
    文件开头部分的C代码.通常包括#define
    和#include行.可能有%union,
    %token等声明.
    规则段
    规则段由语法规则和包括C代码的动作组
    成.动作是bison在与语法规则相符的时候
    执行的C代码.
    用户子例程段
    用户子例程段通常包括从动作中调用的例
    程.
    flex程序的结构
    flex程序也由三部分组成:定义段,规则
    段,用户子例程段
    …定义段…
    %%
    …规则段…
    %%
    …用 户子例程段…
    规则段
    规则段包括模式行和C代码.C代码在与这
    个模式匹配的时候执行.如果C代码包括
    多条语句,则必须用括号加以界定.
    用户子例程段
    与bison一样,用户子例程段的内容被flex
    逐字拷贝到C文件中.这一部分包括从规
    则中调用的例程.如果重新定义了
    yywrap()等例程,新的版本就可以放在这
    里.
    %token NAME NUMBER
    %%
    statement: NAME '=' exp
    | exp { printf("= %d\n", $1); }
    ;
    exp: NUMBER '+' NUMBER { $$ = $1 + $3; }
    | NUMBER '-' NUMBER { $$ = $1 - $3; }
    | NUMBER { $$ = $1; }
    ;
    %%
    main ()
    {
    yyparse ();
    }
    yyerror(s)
    char *s;
    {
    fprintf(stderr, "%s\n", s);
    }
    exam.y
    %{
    #include "exam.tab.h"
    extern int yylval;
    #undef yywrap
    %}
    %%
    [ \t] ;
    [0-9]+ { yylval = atoi(yytext);
    return NUMBER; }
    \n return 0;
    . return yytext[0];
    %%
    int yywrap()
    {
    return 1;
    }
    exam.l
    编译和运行
    % bison –d exam.y
    % flex exam.y
    % cc –o exam exam.tab.c lex.yy.c
    % exam
    3-5
    = -2
    ·上一篇:第一篇生物大分子的结构与功能
    ·下一篇:各种阀门的结构及选用特点