New line shouldn't be the first token

This commit is contained in:
Rafał Grodziński
2025-07-01 17:06:52 +09:00
parent 729ffd0ea2
commit e4a2b84154
3 changed files with 9 additions and 4 deletions

View File

@@ -22,7 +22,11 @@ vector<shared_ptr<Token>> Lexer::getTokens() {
if (!token->isValid()) {
cerr << "Unexpected character '" << token->getLexme() << "' at " << token->getLine() << ":" << token->getColumn() << endl;
exit(1);
}
}
// Don't add new line as the first token
if (tokens.empty() && token->isOfKind({TokenKind::NEW_LINE}))
continue;
// Insert an additional new line just before end
if (token->getKind() == TokenKind::END && tokens.back()->getKind() != TokenKind::NEW_LINE)

View File

@@ -74,14 +74,14 @@ int main(int argc, char **argv) {
cout << endl << endl;
}
/*ModuleBuilder moduleBuilder(moduleName, inputFilePath, statements);
ModuleBuilder moduleBuilder(moduleName, inputFilePath, statements);
shared_ptr<llvm::Module> module = moduleBuilder.getModule();
if (isVerbose) {
module->print(llvm::outs(), nullptr);
}
CodeGenerator codeGenerator(module);
codeGenerator.generateObjectFile(outputKind);*/
codeGenerator.generateObjectFile(outputKind);
return 0;
}

View File

@@ -1,6 +1,7 @@
dummy sint32 <- 55
//dummy sint32 <- 55
stuff fun: num1 sint32, num2 sint32 -> sint32
rep:
i <- i + 1
;
ret 42
;