简单的编译器(程序程序中的指令分离)

时间:2019-11-29 18:55:40

标签: java compilation

我正在编写一个使用正则表达式模拟简单编译器的程序。当我找到一个“;”我分离了指令...然后在每行内部使用另一个正则表达式进行分离以获取令牌,然后将其放入Arraylist中,例如:

  • int x = 5;
  • int y = 6;

它将是[ [int, x, =, 5], [int, x, =, 6] ] 但是我没有得到理想的结果,我会对任何有用的建议感到满意。

这是我得到的结果:

Here's the result that I got

 public void Readfile(String fileName) throws IncorrectComment,Exception,IOException,DoubleDeclaration,ExpectedIdentifierException,UnknowSymbolException,IncompatibleTypesException,ArrayDimentionException{

    LinkedHashMap<String,ArrayList>MapTable=new LinkedHashMap<String,ArrayList>();
    ArrayList<ArrayList<String>> ListofLine=new ArrayList<ArrayList<String>>();

    try{

      String data = readFileAsString(fileName); 

      Pattern p = Pattern.compile(";");
      String[] items = p.split(data);
      for(String i:items){
          System.out.println(i);
          Pattern p1 = Pattern.compile("\\s+|,\\s*|\\#\\s*");
          String[] items1 = p1.split(i);
          ArrayList a=new ArrayList();
          for(String j:items1){
              a.add(j);
          }
          ListofLine.add(a);
      }

0 个答案:

没有答案