我正在编写一个使用正则表达式模拟简单编译器的程序。当我找到一个“;”我分离了指令...然后在每行内部使用另一个正则表达式进行分离以获取令牌,然后将其放入Arraylist中,例如:
它将是[ [int, x, =, 5], [int, x, =, 6] ]
但是我没有得到理想的结果,我会对任何有用的建议感到满意。
这是我得到的结果:
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);
}