语法分析-1
来源:互联网 发布:纹身图案软件 编辑:程序博客网 时间:2024/06/05 07:04
网易云课堂编译原理作业
作业题目的链接地址
#include <ctype.h>#include <stdio.h>#include <stdlib.h>void parse_F();void parse_T();void parse_E();void error (char *want, char got);int i;char *str = 0;void error (char *want, char got){ fprintf (stderr, "Compling this expression:\n%s\n", str); int j = i; while (j--) fprintf (stderr, " "); fprintf (stderr, "^\n"); fprintf (stderr, "Syntax error at position: %d\n" "\texpecting: %s\n" "\tbut got : %c\n", i, want, got); exit (0); return;}void parse_F(){ char c = str[i]; if (isdigit(c)){ i++; return; } if (c=='('){ i++; parse_E(); c = str[i]; if (c==')'){ i++; return; } error ("\')\'", c); return; } error ("\'0-9\' or \'(\'", c); return;}void parse_T(){ parse_F(); char c = str[i]; while (c=='*' || c == '/'){ i++; parse_F(); c = str[i]; } return;}void parse_E(){ parse_T(); char c = str[i]; while (c=='+' || c == '-'){ i++; parse_T(); c = str[i]; } return;}void parse (char *e){ str = e; i = 0; parse_E(); if (str[i]=='\0') return; error ("\'+\' or '\\0\'", str[i]); return;}///////////////////////////////////////////////// Your job:// Add some code into the function parse_E() and// parse_T to parse "-" and "/" correctly.// When you finish your task, NO error message// should be generated.// Enjoy! :-Pint main (char argc, char **argv){ // There are the following rules on an expression: // 1. Every expression is represented as a string; // 2. integers are non-negative; // 3. integers are between 0-9. char *e; e = "(2)"; parse(e); e = "(3+4*5)"; parse(e); e = "(8-2)*3"; parse(e); e = "(8-2)/3"; parse(e); return 0;}
阅读全文
0 0
- 语法分析1
- 语法分析-1
- LL(1)语法分析
- LL(1)语法分析
- LL(1)语法分析
- LL(1)语法分析程序
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- 语法分析
- onResume
- for_each使用方法详解[转]
- 从pcap的DNS流量中分离出隐藏信息
- 问题(已解决):push pop for循环中push变量,变量随之改变的问题
- 分布式锁的几种实现方式~
- 语法分析-1
- mysql grant 用户权限总结
- XML总结(二)
- Android常用控件-02
- OSX shell 添加sublime text 启动命令
- Elasticsearch 的 Shard 和 Segment
- 四、1、函数参数是按值传递还是按引用传递
- Android开发之让你的文本颜色来回闪动
- 破除成功学的迷信01