Во-первых, моя программа не компилируется, и я не знаю почему. Он работает в среде IDE, но не работает в командной строке.
Я использовал следующую команду для компиляции программы: javac имя_программы. java
Это выдает следующую ошибку:
Driver.java:66: error: cannot find symbol
little lexer = new little(input);
^
symbol: class little
location: class Driver
Driver.java:66: error: cannot find symbol
little lexer = new little(input);
^
symbol: class little
location: class Driver
Note: Driver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors
Это код, который я написал для программы:
public class Driver {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ANTLRInputStream input = new ANTLRFileStream("sqrt.micro");
little lexer = new little(input);
//CommonTokenStream tokens = new CommonTokenStream(lexer);
while(true){
String token_type = "";
Token token = lexer.nextToken();
if (token.getType() == lexer.EOF) {
break;
}
token_type += ( "Token Type: " + indexToToken(token.getType()) + "\n" );
token_type += ( "Value: " + token.getText());
System.out.println(token_type);
}
}
private static String filetoString(String filepath) {
// TODO Auto-generated method stub
String file = "";
try {
file = new String(Files.readAllBytes(Paths.get(filepath)));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private static String indexToToken(int type) {
switch(type) {
case 1: return "KEYWORD";
case 2: return "IDENTIFIER";
case 3: return "OPERATOR";
case 4: return "STRINGLITERAL";
case 5: return "INTEGER";
default: return "no match";
}
}
}
Наряду с этим я хотел бы заменить .micro-файл для входного текстового файла, прочитанного из командной строки.