Я пытаюсь создать препроцессор в Java, где он будет читать в исходном коде. Я пытался прочитать код всего в одну строку.
Вопрос: Как добавить строки в середине <<< >>> в свой собственный список массивов?
public class processLines {
public void pLine (String FileName)throws IOException{
Scanner scanner = null;
try{
scanner = new Scanner(new BufferedReader(new FileReader(FileName)));
while (scanner.hasNext()) {
String Line = "";
String LineB = "";
String LineC = "";
ArrayList<String> inside = new ArrayList<String>();
Line = Line + scanner.next()+ " ";
System.out.println("outside token: "+ Line);
StringTokenizer token = new StringTokenizer(Line);
while(token.hasMoreTokens()&& token.nextToken() != null){
LineB = Line;
if(LineB.contains("<<<")){
if(!LineB.contains(">>>") ){
LineC = LineC + scanner.next()+ " ";
inside.add(LineC);
System.out.println("LineC: " + LineC);
System.out.print(inside);
}
if(scanner.next(">>>") != null){
Line = scanner.next();
System.out.println("Line INside:" + Line);
}
}
}
}
}
finally {
if (scanner != null) {
scanner.close();
}
}
}
}
Текстовый файл sourceCode содержит «Mo <<< Mo Larry Curly >>> Larry», все в одной строке. этот код работает, если в середине <<< >>> есть только одно имя, но когда я добавил еще, я получаю ошибку.
Сообщение об ошибке: маркер извне: Mo
Внешний токен: