fix tscript comment issues

This commit is contained in:
dfsek 2020-12-30 18:05:32 -07:00
parent 2be4b36d1a
commit 99acadaf59
2 changed files with 7 additions and 12 deletions

View File

@ -87,7 +87,11 @@ public class Parser {
TokenHolder tokens = new TokenHolder();
try {
while(tokenizer.hasNext()) tokens.add(tokenizer.fetch());
Token t = tokenizer.fetch();
while(t != null) {
tokens.add(t);
t = tokenizer.fetch();
}
} catch(TokenizerException e) {
throw new ParseException("Failed to tokenize input", new Position(0, 0), e);
}

View File

@ -18,23 +18,14 @@ public class Tokenizer {
reader = new Lookahead(new StringReader(data + '\0'));
}
public boolean hasNext() {
int whiteEnd = 0;
while(!reader.next(whiteEnd).isEOF() && reader.next(whiteEnd).isWhitespace()) whiteEnd++; // Consume whitespace.
return !reader.next(whiteEnd).isEOF();
}
public Token fetch() throws TokenizerException {
while(!reader.current().isEOF() && reader.current().isWhitespace()) reader.consume();
if(reader.current().isEOF()) return null; // EOF
if(reader.matches("//", true)) skipLine(); // Skip line if comment
while(reader.matches("//", true)) skipLine(); // Skip line if comment
if(reader.matches("/*", true)) skipTo("*/"); // Skip multi line comment
if(reader.current().isEOF()) return null; // EOF
if(reader.matches("==", true))
return new Token("==", Token.Type.EQUALS_OPERATOR, new Position(reader.getLine(), reader.getIndex()));