全球旧事资料 分类
《编译原理》
课程设计赋值语句的解释程序设计
姓名:汤朋学号:2014112217班级:软件四班时间:2017613学期:20162017第一学期
1
f1设计题目:赋值语句的解释程序设计2设计内容:用算符优先分析方法设计一个分析解释程序,对输入的赋值语句、输出语句、清除语句进行词法分析、语法分析、表达式求值并存储于指定变量中:若存在错误,提示错误相关信息。3设计目的:a了解掌握算符优先分析的基本方法、内容b学会科学思考并解决问题,提高程序设计能力4实现环境电脑:Wi
dows10家庭中文版型号:雷神处理器:I
telRCoreTMi76700HQCPU260GHzRAM:160GB159GB可用系统类型:64位操作系统,基于x64的处理器

实现语言及环境:Java,JDK18IDE:Ecplise
eo
1
5概要设计文法表示:SvEEclear
2
fEETETTTTFTFFFEvc
归约规则:NvNNclearNNNNNNNNNNNNNNvc
种别码设计:单词符号?vc
3
种别码12345678910
fclearN
111213
优先关系表1123456789101112vcclear23456789v10c1112
clear
4
f开始
输入单词符号串
初始化栈stack设指针poi
ter0将串的第一个单词符号二元组压入stack;poi
ter
Stacksize3stackpopgetCode12
N
Poi
terstacksize
Y
N
stackpopgetCode13stackpopgetCode12N
栈顶终结符优先级小于等于poi
ter所指终结符?
Y
将poi
ter所指终结符的单词符号入栈;poi
ter
N
栈顶终结符优先级大于poi
ter所指终结符?
Y
rightPosleftPospoi
ter1leftPos
NStackgetrightPosgetCode13rightPosleftPos
输出表达式错误
输出在i
putcharAtpoi
ter附近语法错误
Y
N
N
StackgetleftPosgetCode13
Y
leftPos
Y
N
清空stack和变量表
StackgetleftPoseuqalsstackgetrightPos
Y
rightPosleftPos
N
leftPos
leftPospoi
ter1结束YStackgetleftPosgetCode11N报错:变量stackgetleftPosgetValue未定义变量stackgetleftPosgetValue存在变量表中?Y修改栈顶元素的种别码为13,设其值为该变量的值StackgetleftPosgetCode9
N
Poi
terleftPos12
Y
输出stackgetleftPosgetValuestackpop
N
清空变量表
Y
Poi
terleftPos13
Y
报错:表达式有错!
结束
N变量StackgetleftPosgetValue是否存在?
N
Y
StackgetleftPosgetCode9
Y
Y
更新变量表中的值
N
N修改栈顶元素r
好听全球资料 返回顶部