Предполагается, что это часть простого интерпретатора с несколькими ключевыми словами, которые я сделал в разных классах.Предполагается, что программа перебирает ArrayList, маркирует строки и разбирает их в инструкции KEYWORD +.Я использую hashmap, чтобы отобразить все эти ключевые слова в интерфейс, в котором есть классы, где происходит остальная обработка.В настоящее время тестируется один из этих классов ключевых слов, но когда я пытаюсь скомпилировать, компилятор выдает сообщения «ожидаемый идентификатор» и «недопустимое начало типа».Строка, в которой отображаются все сообщения об ошибках, - это строка 18. Куда идет код?Я не могу сказать, так как я никогда не использовал HashTable прежде.Спасибо за помощь!
import java.util.*;
public class StringSplit
{
interface Directive //Map keywords to an interface
{
public void execute (String line);
}
abstract class endStatement implements Directive
{
public void execute(String line, HashMap DirectiveHash)
{
System.out.print("TPL finished OK [" + " x lines processed]");
System.exit(0);
}
}
private Map<String, Directive> DirectiveHash= new HashMap<String, Directive>();
DirectiveHash.put("END", new endStatement());
public static void main (String[]args)
{
List <String> myString= new ArrayList<String>();
myString.add(new String("# A TPL HELLO WORLD PROGRAM"));
myString.add(new String("STRING myString"));
myString.add(new String("INTEGER myInt"));
myString.add(new String("LET myString= \"HELLO WORLD\""));
myString.add(new String("PRINTLN myString"));
myString.add(new String("PRINTLN HELLO WORLD"));
myString.add(new String("END"));
for (String listString: myString)//iterate across arraylist
{
String[] line = listString.split("[\\s+]",2);
for(int i=0; i<line.length; i++)
{
System.out.println(line[i]);
Directive DirectiveHash=DirectiveHash.get(listString[0]);
DirectiveHash.execute(listString);
}
}
}
}