I\'m trying to implement a rudimentary lexer. I\'m stuck on the file parsing at the moment.
public ArrayList ParseFile () {
int lineIndex =
You've misunderstood the API for Scanner
. From the docs for the Scanner(String) constructor:
Constructs a new Scanner that produces values scanned from the specified string.
Parameters:
source - A string to scan
It's not a filename - it's just a string.
You should use the Scanner(File)
constructor instead - or better yet, the Scanner(File, String)
constructor to specify the encoding as well. For example:
try (Scanner scanner = new Scanner(new File(this.fileName), "UTF_8")) {
...
}
(Note the use of a try-with-resources statement so the scanner gets closed automatically.)