⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 destoasm.java

📁 java写的c 语言子集编辑器
💻 JAVA
字号:
package CWord;import java.util.*;import java.io.*;/** *   * @author jjl Date 2009.1.4 10:30~`~2009 1.4 21:49 */public class DesToASM {    Vector vNum=new Vector();    int pNumId=0;    Vector vUsr=new Vector();    int pUsrId=0;    StringBuffer strDes=new StringBuffer();    StringBuffer strInt=new StringBuffer();    StringBuffer strCode=new StringBuffer();    static int preId=0;    listen l=new listen();    static int Row=0;    public DesToASM(){        l.clearMessage();    }    public void inputDesWord(StringBuffer strDes,Vector vNum,Vector vUsr){        this.vNum=vNum;        this.vUsr=vUsr;        this.strDes=strDes;        if(!invalidDesWord()){            l.addMessage("The Input Have errors ,please input again!");            return;        }    }    protected Boolean invalidDesWord(){//test the content of C word Deal         l.addMessage("Now Strat invalid the user word!");        if(strDes.length()<1||vNum.size()<1||vUsr.size()<1){            return false;        }        l.addMessage("the input C deal Word is true!");        return true;    }        char main0='0',int0='1',while0='2', if0='3',for0='4',do0='5',else0='6';    char nequ='n',equ='e',beq='b',gqu='g',dad='d',dam='a';    char usr='u',num='m';    char Sym;        Hashtable vUsrTable=new Hashtable();//the user definition table    Vector vUsrElet=new Vector();//the element of the user definition table     //{name ,type,value}    public void dealCGrm(){        l.addMessage("Start Check The Grammer");        if(!invalidDesWord()){            l.addMessage("input the cword desstr error! please try again!");            return ;        }        Sym=strDes.charAt(0);        start();        l.addMessage("testSuccessfully!");    }    protected void getTheCons(char Sym){        switch(Sym){                case '0':                  //  l.addMessage("Get The main " );                    return ;                case '1':                 //   l.addMessage("Get The int ");                    return ;                case '2':                  //  l.addMessage("Get The while ");                    return ;                case '3':                 //   l.addMessage("Get The if");                    return ;                case '4':                  //  l.addMessage("Get The for ");                    return ;                case '5':                 //   l.addMessage("Get The do ");                    return ;                case '6':                ////    l.addMessage("Get The else");                    return;                default:                   // l.addMessage("Get the split"+Sym);                    return ;            }    }    protected char getNextWord(){        preId=preId+1;        if(preId>=strDes.length()){            StringBuffer s1=new StringBuffer();            s1.append("Data Segment\n");            this.otFile(s1);            this.otFile(strInt);            StringBuffer s2=new StringBuffer();            s2.append("Data Ends\n");            s2.append("code segment\n"+ "assume cs:code,ds:Data\n"+"start:\n");            this.otFile(s2);            this.otFile(strCode);            StringBuffer s3=new StringBuffer();            s3.append("Code Ends\n"+"end start\n");            this.otFile(s3);            l.addMessage("deal Grammer successfully!");            dealerror();        }        if(strDes.charAt(preId)=='#'){            Row++;//row count            return getNextWord();        }        if(strDes.charAt(preId)=='-'){            preId++;            if(strDes.charAt(preId)=='-'){                preId--;             //   l.addMessage("get a minus!");                return '-';            }            switch(strDes.charAt(preId)){                case '1':             //       l.addMessage("Get The Usr Word");                    return usr;                case '2':              //      l.addMessage("Get The number ");                    return num;                case '3':           //         l.addMessage("Get The not equ ");                    return nequ;                case '4':           //         l.addMessage("Get The equ ");                    return equ;                case '5':          //          l.addMessage("Get The below equal ");                    return beq;                case '6':          //          l.addMessage("Get The greater equal ");                    return gqu;                case '7':return dad;                case '8':return dam;                default: return '?';            }        }        else{            getTheCons(Sym);            return strDes.charAt(preId);        }    }    protected char getCurWord(){        if(strDes.charAt(preId)=='-'){            preId++;            switch(strDes.charAt(preId)){                case '1':return usr;                case '2':return num;                case '3':return nequ;                case '4':return equ;                case '5':return beq;                case '6':return gqu;                case '7':return dad;                case '8':return dam;                default: return '?';            }        }        else{            return strDes.charAt(preId);        }    }           protected void start(){        if(Sym==main0){            Sym=getNextWord();            if(Sym=='('){                Sym=getNextWord();                if(Sym==')'){                    Sym=getNextWord();                    if(Sym=='{'){                       Sym=getNextWord();                        dealIntroduction();                        if(Sym==';'){                            Sym=getNextWord();                            dealFlowStam();                            if(Sym=='}'){                                Sym=getNextWord();                               return;                          }                          else{                                l.addMessage("less a } error at row"+Row);                               dealerror();                           }                        }                      else{                                                        l.addMessage("less ; error at row"+Row);                            dealerror();                        }                    }                    else{                        l.addMessage("less a { error at row"+Row);                        dealerror();                    }                }                else{                    l.addMessage("less a ) error at row"+Row);                    dealerror();                }            }            else{                l.addMessage("less a ( error ar row"+Row);                dealerror();            }        }else{            l.addMessage("not main start error at row "+Row);            dealerror();        }    }        protected Boolean dealBlock(){             //  l.addMessage("Start To Anaysics<> !");        if(!dealIfStam()){          //  l.addMessage("not a start to deal!");         if(!dealCal()){          //   l.addMessage("not a <鐠у

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -