编译原理-可编程计算器.doc

编译原理-可编程计算器.doc

ID:50277100

大小:275.80 KB

页数:9页

时间:2020-03-07

编译原理-可编程计算器.doc_第1页
编译原理-可编程计算器.doc_第2页
编译原理-可编程计算器.doc_第3页
编译原理-可编程计算器.doc_第4页
编译原理-可编程计算器.doc_第5页
资源描述:

《编译原理-可编程计算器.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、郑州大学软件学院可编程计算器(项目报告)专业:计算机辅助设计专业院(系):软件学院学生姓名:古双军学号:20097720219学生姓名:孔德汉学号:20097720225学生姓名:孟晓帆学号:20097720240学生姓名:周干学号:20097720267完成时间:2012年6月18日年月日1、编译器的功能支持数值运算、逻辑运算和字符串运算,不区分大小写。其中优先级定义+-*/%mod>>=<<====<>!=&&&

2、

3、

4、andornotxor^sincosminmaxleftrightabsifroundpi可实现

5、自顶向下的词法运算。1)词法分析TokenKeywordFactory:用于处理关键字TokenSymbolFactory:用于处理运算符TokenStringFactory:用于处理字符串TokenNumberFactory:用于处理数字这里的处理过程是1.取字符“1”,转到TokenNumberFactory,把分析取到的字符串“123.3”转换为TokenNumber并存到TokenList中2.取字符“*”,转到TokenSymbolFactory,把“*”转换成TokenMultiply并存到TokenLi

6、st中3.取字符“2”,转到TokenNumberFactory,把分析取到的字符串“2”转换为TokenNumber并存到TokenList中4.取字符“-”,转到TokenSymbolFactory,把“-”转换成TokenMinus并存到TokenList中5.取字符“(”,转到TokenSymbolFactory,把“(”转换成TokenLeftBracket并存到TokenList中6.取字符“2”,转到TokenNumberFactory,把分析取到的字符串“24”转换为TokenNumber并存到Tok

7、enList中7.取字符“+”,转到TokenSymbolFactory,把“+”转换成TokenPlus并存到TokenList中8.取字符“3”,转到TokenNumberFactory,把分析取到的字符串“34”转换为TokenNumber并存到TokenList中9.取字符“)”,转到TokenSymbolFactory,把“)”转换成TokenRightBracket并存到TokenList中2)语法分析1.列表分析状态:TokenValue(3)TokenMultiplayTokenValue(7)…..

8、.TokenValue(3)栈底堆栈分析:当前堆栈为空,将当前分析的TokenRecord压栈。对应列表2.列表分析状态:TokenValue(3)TokenMultiplyTokenValue(7)…...TokenMultiply栈底堆栈分析:栈顶为TokenValue,当前TokenRecord为TokenMultiply,TokenValue优先级最高。遵循高出低入原则,将TokenValue弹栈并添加到TokenMultiply的ChildList中,然后将TokenMultiplay压栈。3.列表分析状态

9、...TokenMultiplyTokenValue(7)TokenPlus…...堆栈分析:栈顶为TokenMultiplay,当前TokenRecord为TokenValue,TokenMultiply优先级高于TokenValue,则将TokenValue加入TokenMultiplay的ChildList中。4.列表分析状态……TokenValue(7)TokenPlusTokenValue(56)…...TokenPlus栈底堆栈对应视图1.列表分析状态…TokenPlusTokenValue(56)Tok

10、enDivide…...TokenValue(56)TokenPlus栈底堆栈分析:栈顶为TokenPlus,当前TokenRecord为TokenValue,TokenPlus优先级低于TokenValue。遵循高出低入原则,不需要弹栈,直接将TokenValue压栈。堆栈对应视图2.列表分析状态……TokenValue(56)TokenDivideTokenValue(8)…...TokenDivideTokenPlus栈底堆栈分析:栈顶为TokenValue,当前TokenRecord为TokenDivide,

11、TokenValue优先级高于TokenDivide。遵循高出低入原则,将TokenValue弹栈并加入TokenDivide的ChildList中。此时栈顶为TokenPlus,TokenDivide优先级高于TokenPlus,遵循高出低入原则,将TokenDivide压栈。堆栈对应视图3.列表分析状态……TokenDivideTokenV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。