语法分析
更新时间:2023-09-16 03:52:01 阅读量: 高中教育 文档下载
用具递归功能的的高级语言来编制递归下降法的语法分析程序,并用其对Pascal语法算术表达式的一个简化子集进行语法分析,分析过程不嵌入任何语义动作。 1.文法规则是:
算术表达式 = 项 | 算术表达式+项 | 算术表达式-项 项 = 因式 | 项 * 因式 | 项/因式
因式= 变量 | (算术表达式) 变量=字母
字母=A| B| C| D| E| F| G| H| I| J| K| L| M| N| O| P| Q| R| S| T| U| V| W| X| Y| Z| a| b| c| d| e| f| g| h| I| j| k| l| m| n| o| p| q| r| s| t | u| v| w| x| y| z
2.构造如下的文法:
S代表算术表达式 E代表项 T代表因式 F代表变量 N代表字母
那么够则的文法为G[S]: S->E | S+E|S-E E->T | E* E | E/T T->F | (S) F ->N
N-> A| B| C| D| E| F| G| H| I| J| K| L| M| N| O| P| Q| R| S| T|
U| V| W| X| Y| Z| a| b| c| d| e| f| g| h| I| j| k| l| m| n| o| p| q| r| s| t | u| v| w| x| y| z
3.消除左递归,得如下的一个新文法:
S->ES1
S1->+ES1 | - ES1 | ∑ E ->TE1
E1-> *TE1 | / TE1 | ∑ T-> F | (S) F-> N
N-> A| B| C| D| E| F| G| H| I| J| K| L| M| N| O| P| Q| R| S| T| U|
V| W| X| Y| Z| a| b| c| d| e| f| g| h| I| j| k| l| m| n| o| p| q| r| s| t | u| v| w| x| y| z
4.编写如下源代码: /*
* @(#)Wenfajiance.java 1.0 06/05/25 *
* You can modify the template of this file in the
* directory ..\\JCreator\\Templates\\Template_1\\Project_Name.java *
* You can also create your own project template by making a new * folder in the directory ..\\JCreator\\Template\\. Use the other * templates as examples. *作者:沈云军
*联系地址:湖南省衡阳市南华大学计算机学院 */
package myprojects.wenfajiance;
import java.awt.*; import java.awt.event.*;
class Wenfajiance extends Frame implements ActionListener{ Button btn1;
TextField txf1; char sym; String str; static int i;
public Wenfajiance() { Panel pan1=new Panel(); Panel pan2=new Panel();
Label lb1=new Label(\请输入你要语法检查的单词序列以$结尾:\ pan1.setLayout(new FlowLayout(FlowLayout.LEFT)); pan2.setLayout(new FlowLayout(FlowLayout.LEFT)); btn1=new Button(\检查\ txf1=new TextField(30); pan1.add(lb1); pan2.add(txf1); pan2.add(btn1);
this.setLayout(new BorderLayout()); this.add(pan1,BorderLayout.NORTH); this.add(pan2,BorderLayout.CENTER); btn1.addActionListener(this);
addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); }
public void actionPerformed(ActionEvent e)
{ i=0;
str=txf1.getText(); scaner(); S();
if(sym=='$')
txf1.setText(\正确\ else
txf1.setText(\不正确\ }
public static void main(String args[]) { //System.out.println(\ Wenfajiance mainFrame = new Wenfajiance(); mainFrame.setSize(255, 160); mainFrame.setLocation(400,150); mainFrame.setTitle(\ mainFrame.setVisible(true); }
public void scaner()//read the next sym; {
if(i sym=str.charAt(i); i++; } }//end of scaner public void S() { E(); S1(); }//end of S public void S1() { if(sym=='+') { scaner(); E(); S1(); } else if(sym=='-') { scaner(); E(); S1(); } else if((sym !=')') && (sym !='$')) error(); }//end of S1 public void E() { T(); E1(); }//end of E public void E1() { if(sym=='*') { scaner(); T(); E1(); } else if(sym=='/') { scaner(); T(); E1(); } else if((sym !='+') && (sym !='-') && (sym !=')') && (sym !='$')) error(); }//end of E1 public void T() { if(sym=='(') { scaner(); S(); if(sym==')') scaner(); } else F(); }//end of T public void F() { N(); }//end of F public void N() { if(((sym>='a') && (sym<='z')) ||((sym>='A') && (sym<='Z'))) scaner(); }//end of N public void error() { txf1.setText(\不正确\ } }//end of class
正在阅读:
语法分析09-16
全新版大学英语听说教程3听力原文05-23
美的空调市场营销方案11-07
《生存还是毁灭》赏析03-27
施工组织方案(断桥铝)10-16
如何管理90后员工05-06
汽车发动机试题库(按章节分)201010-29
美容院拓客创新方案二十六式详解01-23
- 上海大众、一汽大众、东风日产车型与VIN代号对照表
- 第2章服装原型及原型制作
- 江苏省工商行政管理系统经济户口管理办法及四项制度
- 纪检监察业务知识试题2
- 传感器综合题答案
- 北京第二外国语学院翻硕招生人数及学费
- 初三新编英语教材下册
- 公司庆中秋、迎国庆联欢会客串词
- 向区委常委会汇报安全生产工作材料
- 2006年GCT英语模拟试题(三)及答案解析
- 经济法概念的早期使用
- 我爱做家务课堂教学设计
- 学校安全工作月报表、消防安全排查表、消防隐患排查台账
- 成本会计毕业论文
- 班级文化建设论文
- 2018年天津市高考文科试题与答案汇总(Word版) - 图文
- 铁路论文
- 2017年嵌入式系统设计师考试时间及地点
- 1.111--灾害与突发公共卫生事件应急预案
- 起爆点主图 注意买入 拉升 逃顶源码指标通达信指标公式源码
- 语法
- 分析
- (最新版)国际金融危机对俄罗斯进出口贸易的影响毕业设计
- Cultural Awareness文化意识双语翻译外研社教材
- 高中数学《不等关系与不等式》同步练习3 新人教A版必修5
- 巨灾风险证券化
- 电子商务系统规划与设计实验指导书2
- 人机交互技术Web界面设计 - 图文
- 六级考试作文布局常用8种句型-比较
- 8086汇编语言程序设计 微机实验报告
- 高中音乐鉴赏全套教案14单元以后 - 图文
- 免疫组化方法中关键环节及其原理解述
- 应用文写作练习题
- 竺工
- damage
- 新人教版六年级英语上册教案(全册) - 图文
- 农村税费改革及后税费时代相关问题分析
- 听写大会词汇列表
- 2019年整理--中学生自我评价范文
- 高校廉政文化在文化传承中的地位和作用
- 新概念英语31-40练习
- 华中科技大学材料研究研究方向