收藏 分享(赏)

编译原理语法分析 算术表达式.doc

上传人:jinchen 文档编号:7636272 上传时间:2019-05-22 格式:DOC 页数:5 大小:51.50KB
下载 相关 举报
编译原理语法分析 算术表达式.doc_第1页
第1页 / 共5页
编译原理语法分析 算术表达式.doc_第2页
第2页 / 共5页
编译原理语法分析 算术表达式.doc_第3页
第3页 / 共5页
编译原理语法分析 算术表达式.doc_第4页
第4页 / 共5页
编译原理语法分析 算术表达式.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、package 语法分析;public class displymain public static void main(String args)new frame();package 语法分析;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class frame implements ActionListenerJFrame frame1;JLabel L1,L2;JButton bt,b

2、t2;JTextField input,result;top_down_grammar a =new top_down_grammar();public frame()frame1=new JFrame(“);input=new JTextField(20);result=new JTextField(20);L1=new JLabel(“请输入表达式以#结束“);L2=new JLabel(“结果是:“);bt=new JButton(“语法分析“);bt2=new JButton(“关闭“);frame1.setTitle(“递归下降子程序分析语法“);frame1.setLayout(n

3、ew GridLayout(3,1);frame1.add(L1);frame1.add(input);frame1.add(L2);frame1.add(result);frame1.add(bt);frame1.add(bt2);bt.addActionListener(this);bt2.addActionListener(this);frame1.setSize(500, 500);frame1.setVisible(true);public void actionPerformed(ActionEvent e)a.i=0;a.x.str=input.getText();if(e.ge

4、tActionCommand()=“语法分析“) if(a.E_Production() result.setText(“符合语法要求“);else result.setText(“不符合语法要求“);if(e.getActionCommand()=“关闭“) frame1.dispose();package 语法分析;public class LexString str=“;int i;/int j=0;public char lex(int j) i=j;if(is_identifiers_key()return 2;if(is_digital()return 1;if(is_oper()

5、return str.charAt(i);return 0;public boolean is_identifiers_key()boolean f=false;/c2=str.charAt(i);while(i=65f=true;/c=(str.charAt(i);if(f)i-;return f;return false;public boolean is_oper() / c2=str.charAt(i);if(istr.length()if(str.charAt(i)=(|str.charAt(i)=)|str.charAt(i)=+|str.charAt(i)=-|str.charA

6、t(i)=*|str.charAt(i)=/|str.charAt(i)=#)return true;return false;package 语法分析;public class top_down_grammar char ch;int i=0;Lex x=new Lex();public boolean E_Production()ch=x.lex(i); if(ch=+ |ch=-) i=x.i;i+;ch=x.lex(i); if(!T_Production() return false;if(!G_Production() return false;return true; publi

7、c boolean T_Production()if( !F_Production() return false;if(!S_Production() return false;return true;public boolean F_Production()if(ch=() i=x.i;i+;ch=x.lex(i); if(E_Production()return false;if(ch=)i=x.i;i+;ch=x.lex(i); return true;else return false;if(ch=1|ch=2) i=x.i;i+;ch=x.lex(i); return true;el

8、se return false;public boolean G_Production()if(ch=+)i=x.i;i+;ch=x.lex(i); if(!T_Production() return false;if(!G_Production() return false;return true;else if(ch=-)i=x.i;i+;ch=x.lex(i); if(!T_Production() return false;if(G_Production() return false;return true;else if(ch=)|ch=#)return true;return fa

9、lse;public boolean S_Production()if(ch=*)i=x.i;i+;ch=x.lex(i); if(!F_Production() return false;if(!S_Production() return false;return true;else if(ch=/)i=x.i;i+;ch=x.lex(i); if(!F_Production() return false;if(!S_Production() return false;return true;else if(ch=+|ch=-|ch=#|ch=) if(ix.str.length()else return false;return true;return false;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报