• 大小: 4KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-07-04
  • 语言: Java
  • 标签: 编译原理  

资源简介

大作业时做的一个java版编译原理课程设计,需要的朋友可以参考,包括词法分析,语法分析,四元式以及汇编代码的生成

资源截图

代码片段和文件信息

import java.util.*;
import java.util.Vector;
import java.io.*;
class SYS
{
String fuhao;                                    
String op1;
String op2;
Node p1;
}
class Node
{
String result;                                      
int  Address_Num;
}
class a
{
Vector  shuruliu=new Vector();
Vector  beifen=new Vector();
Vector fenxizhan=new Vector();
Vector 保留字=new Vector();
Vector jiefu=new Vector();
Vector yusuanfu=new Vector();
Vector result=new Vector();
int while_endsign=0;
static int count=0;
static int count_sign=0;
int if_oversign=0;       
int else_beginsign=0;
int while_beginsign=10; 
int huibianjump[]=new int[50];   
int sign=0;
static SYS siyuanshi[]=new SYS[40];
public static void main(String []args) throws Exception
{
a b=new a();
for(int k=0;k<40;k++)
{
b.siyuanshi[k]=new SYS();
siyuanshi[k].p1=new Node();
}
String l=““;
String d=““;
String yuan=““;
b.yusuanfu.add(“+“);b.yusuanfu.add(“-“);b.yusuanfu.add(“*“);b.yusuanfu.add(“/“);b.yusuanfu.add(“>“);
b.yusuanfu.add(“<“);b.yusuanfu.add(“=“);b.yusuanfu.add(“%“);
b.jiefu.add(“(“);b.jiefu.add(“)“);b.jiefu.add(“{“);b.jiefu.add(“}“);b.jiefu.add(“;“);
b.保留字.add(“else“);b.保留字.add(“int“);b.保留字.add(“if“);b.保留字.add(“while“);b.保留字.add(“char“);b.保留字.add(“float“);b.保留字.add(“double“);b.保留字.add(“main“);
BufferedReader br=new BufferedReader(
         new InputStreamReader(System.in));
         System.out.println(“源代码文件内容是:“);
         System.out.println(“**************************************************************“);
 System.out.println(“**************************************************************“);
         while(true)
         {         
          String s=br.readLine();
          boolean sign=false;
          String ls=““;
          if(s.equals(“$“))
break;
else
{
System.out.println(s);
}
int i=0;
for(i=0;i {
ls=s.substring(ii+1);
l=l+ls;
while((ls.compareToIgnoreCase(“a“)>=0)&&(ls.compareToIgnoreCase(“z“)<=0))
{
sign=true;
i++;
if(i {ls=s.substring(ii+1);}
if(i==s.length()||ls.equals(“}“)||ls.equals(“<“)||ls.equals(“{“)||ls.equals(“>“)||ls.equals(““)||ls.equals(“;“)||ls.equals(“=“)||ls.equals(“(“)||ls.equals(“)“)||ls.equals(“ “)||ls.equals(“*“)||ls.equals(“/“)||ls.equals(“+“)||ls.equals(“-“))
{
break;
}
else
{
l=l+ls;//System.out.print(l);
}
}
if((ls.compareTo(“0“)>=0)&&(ls.compareTo(“9“)<=0))
{
sign=true;
i++;
ls=s.substring(ii+1);
while(true)
{
l=l+ls;
i++;
ls=s.substring(ii+1);
if(ls.equals(“}“)||ls.equals(““)||ls.equals(“;“)||ls.equals(“=“)||ls.equals(“(“)||ls.equals(“)“)||ls.equals(“ “)||ls.equals(“*“)||ls.equals(“/“))
{
break;
}
}
}
if(b.保留字.contains(l))
{
b.shuruliu.add(l);
b.beifen.add(l);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        152  2008-12-16 20:56  编译原理课程设计\a.txt

     文件      28971  2008-12-16 20:57  编译原理课程设计\a.java

     目录          0  2009-01-20 16:20  编译原理课程设计

----------- ---------  ---------- -----  ----

                29123                    3


评论

共有 条评论