语法分析器的构造

语法分析器的构造

ID:6141257

大小:162.50 KB

页数:28页

时间:2017-11-16

语法分析器的构造_第1页
语法分析器的构造_第2页
语法分析器的构造_第3页
语法分析器的构造_第4页
语法分析器的构造_第5页
资源描述:

《语法分析器的构造》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.2语法分析器的构造主要工作:1.设计函数绘图语言的文法,使适合递归下降分析;2.设计语法树的节点,用于存放表达式的语法树;3.设计递归下降子程序,分析句子并构造表达式的语法树;4.设计测试程序和测试用例,检验分析器是否正确。语法分析器的任务:分析语言的结构,构造语法树14.2.1函数绘图语言的文法Program→ε

2、ProgramStatementSEMICOStatement→OriginStatment

3、ScaleStatment

4、RotStatment

5、ForStatmentOriginStatment→ORIGINISL_BRACKETExpressionCOMMA

6、ExpressionR_BRACKETScaleStatment→SCALEISL_BRACKETExpressionCOMMAExpressionR_BRACKETRotStatment→ROTISExpressionForStatment→FORTFROMExpressionTOExpressionSTEPExpressionDRAWL_BRACKETExpressionCOMMAExpressionR_BRACKET2Expression→ExpressionPLUSExpression

7、ExpressionMINUSExpression

8、ExpressionMULExp

9、ression

10、ExpressionDIVExpression

11、PLUSExpression

12、MINUSExpression

13、ExpressionPOWERExpression

14、CONST_ID

15、T

16、FUNCL_BRACKETExpressionR_BRACKET

17、L_BRACKETExpressionR_BRACKET3<2>改写文法为无二义文法表达式中的运算结合性非终结符-----------------------------------------------PLUS、MINUS(二元)左结合ExpressionMUL、DIV左结合TermPLUS、MINUS(一元)右

18、结合FactorPOWER右结合Component(原子表达式)无Atom4Expression的改写Expression对应最低优先级的运算,PLUS和MINUS:Expression→ExpressionPLUSExpression

19、ExpressionMINUSExpression引入Term提高算符的优先级,保留左递归使得算符左结合:Expression→ExpressionPLUSTerm

20、ExpressionMINUSTerm

21、TermTerm对应运算MUL和DIV,于是有:Term→TermMULTerm

22、TermDIVTerm反复改写,最终得到:5无二义的表达式

23、文法Expression→ExpressionPLUSTerm

24、ExpressionMINUSTerm

25、TermTerm→TermMULFactor

26、TermDIVFactor

27、FactorFactor→PLUSFactor

28、MINUSFactor

29、ComponentComponent→AtomPOWERComponent

30、AtomAtom→CONST_ID

31、T

32、FUNCL_BRACKETExpressionR_BRACKET

33、L_BRACKETExpressionR_BRACKETPLUS、MINUSExpressionMUL、DIVTermPLUS、MINUSFactorP

34、OWERComponent(原子表达式)Atom6<3>消除无左递归和提取左因子(消除Program、Expression和Term的左递归)Program→StatementSEMICOProgram

35、ε改写Expression→TermExpression'Expression'→PLUSTermExpression'

36、MIMUSTermExpression'

37、εTerm→FactorTerm'Term'→MULFactorTerm'

38、DIVFactorTerm'

39、ε(Factor和Componet对应的运算是右结合,故无左递归)7<4>改写左结合的产生式为EBNF形式(避

40、免子程序调用)Program→StatementSEMICOProgram

41、ε的子程序:voidProgram(){if(token==NONTOKEN)return;Statement();MathchToken(SEMICO);Program();}Program→{StatementSEMICO}的子程序:voidProgram(){while(token!=NONTOKEN){Statement();MathchToken(SEMICO);}}文法的改写:8改写Expression产

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

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

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