编译原理
是周周不是粥粥
Don't Judge,不因不如人而生自卑嫉妒之心,不因胜于人而生傲慢自高之意!
展开
-
[educoder] 编译原理 用YACC(BISON)生成语法分析和翻译器
用Bison构建逆波兰计算器 /* 逆波兰符号计算器 */ /* 功能:能够计算出合法的后缀表达式的值,包括加法、减法、乘法、除法、乘方、取反等运算 */ /* 说明:在下面的begin和end之间添加代码,加油吧! */ /* 提示: */%{ #include <ctype.h> #include <stdio.h> #include <math.h> int yylex (void); void yyerror (char const原创 2021-01-12 09:12:15 · 2035 阅读 · 4 评论 -
[educoder] 编译原理 用JAVACC生成并扩充C语言的语法分析器(三)
第3关 用JavaCC为C语言扩充SQL语句 /* 名称: 用JavaCC生成C语言的语法分析器(扩展SQL语言) */ /* 功能: 用JavaCC实现一个C语言的语法分析器 */ /* 说明: 在下面的合适位置中添加代码,需要增加对SQL语言的支持: */ /* */ /* sql{SequenceOfSQLStatements};原创 2021-01-12 09:02:33 · 2521 阅读 · 0 评论 -
[educoder] 编译原理 用JAVACC生成并扩充C语言的语法分析器(二)
第2关 构建C语言的语法分析器/* C grammar definition for use with JavaCC Contributed by Doug South (dsouth@squirrel.com.au) 21/3/97 This parser assumes that the C source file has been preprocessed : all #includes have been included and all macros have been ex原创 2021-01-12 09:00:29 · 1711 阅读 · 0 评论 -
[educoder] 编译原理 用LEX(FLEX)生成PL语言的词法分析器
第1关 什么是lex/flex? /* 简单词法分析器 */ /* 功能:能够识别出以小写字母ab结尾的所有字符串(仅含大小写字母)并给打印'Hit!' */ /* 说明:在下面的begin和end之间添加代码,已经实现了标识符和整常量的识别,你需要完成剩下的部分,加油吧! */ /* 提示:你只需要保证合法的输入(以ab结尾的字符串)有结果,不合法的输入将会包含在.规则中~ */%{#include <stdio.h>%}%% /* begin */[a-zA-Z]*ab原创 2021-01-12 08:52:52 · 3088 阅读 · 1 评论 -
[educoder] 编译原理 用JAVACC生成并扩充C语言的语法分析器(一)
第一关 熟悉JavaCC/* JavaCC 小测试 */ /* 功能:实现一个能够进行加法(+),减法(-),乘方(^)的计算器 */ /* 说明:在下面的begin和end之间添加代码,已经实现了简单的加法(+),你需要完成剩下的部分,加油吧! */ /* 提示: */ options { STATIC = false;}PARSER_BEGIN(Calc)import java.io.*;class Calc { public static void main(Strin原创 2021-01-12 08:56:48 · 2458 阅读 · 0 评论