编译原理—括号的对数
来源:互联网 发布:编程入门先学什么书 编辑:程序博客网 时间:2024/06/16 18:37
题目:
.输入一符号串,若合法,则输出括号( )的对数
S' : S print (S. num)
S : ( L ) S. num := L.num + 1
S : a S. num := 0
L : L1 , S L. num := L1. num + S. num
L : S L. num := S.num
.lex文件
%{ /* * 输入一符号串,若合法,则输出括号的对数 */ #include <stdlib.h> void yyerror(char*);%}%%[()\n] { return *yytext; }. {return a;}%%int yywrap(void){ return 1;}
.y文件
%token a%{ #include <stdio.h> #define YYSTYPE St void yyerror(char*); int yylex(void); typedef struct { int num; }St;%}%%program: program statement '\n' | ;statement: head {printf("\n");} ;head : s {printf("%d\n"),$1.num;} ;s : '(' l ')' {$$.num=$2.num+1;} | a {$$.num=0;} ;l : l ',' s {$$.num=$1.num+$3.num;} | s {$$.num=$1.num;} ;%%void yyerror(char* s){ fprintf(stderr, "%s\n", s);}#include "lex.yy.c"int main(void){ printf("panduankuohaoduishu.\n"); yyparse(); return 0;}
运行结果:
0 0
- 编译原理—括号的对数
- 括号匹配 加 括号的对数
- 括号,加减,乘除的编译原理
- 栈的链表实现,以及编译原理中的括号匹配
- 灰度图像的对数变换原理及OpenCV代码实现!
- C++ while()括号里的原理
- 傻×的编译原理
- C的编译原理
- 内核的编译原理
- 编译的原理
- 编译原理的重要性
- 类的编译原理
- 神奇的编译原理
- 对数学的思考
- 对数导数的推导
- 展开对数的方法
- 对数的有趣性质
- 复数的对数
- SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
- 着手实现一个图片选择器-PhotoPicker
- Cheap Paxos
- ODL学习笔记(一)安装OpenDayLight的环境搭建
- 优秀程序员具备的潜质
- 编译原理—括号的对数
- Android支持Emoji表情 MySQL PHP
- 3.Java之运算符
- 安装Android Studio时出现‘tools.jar’ seems to be not in Android Studio classpath.
- Android UI---自定义形状shape
- 如何删除流氓 ?搜狗网址导航
- 杭电1556 Color the ball
- svn 创建用户账号
- 中文乱码解决