Fix stuff
This commit is contained in:
@@ -90,7 +90,7 @@ namespace Solstice {
|
||||
return input[current + ahead];
|
||||
}
|
||||
std::optional<char> Lexer::consume() {
|
||||
if (current + 1 >= input.size()) {
|
||||
if (current >= input.size()) {
|
||||
return {};
|
||||
}
|
||||
return input[current++];
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
#include "lexer/lexer.hpp"
|
||||
#include "parser/parser.hpp"
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
|
||||
int main() {
|
||||
try {
|
||||
Solstice::Lexer lexer{"2 + 2"};
|
||||
auto lexed = lexer.lex();
|
||||
|
||||
Solstice::Parser parser{lexed};
|
||||
auto parsed = parser.parse();
|
||||
|
||||
} catch (const std::runtime_error& e) {
|
||||
std::cout << e.what() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ namespace Solstice {
|
||||
if (!left.has_value()) {
|
||||
throw std::runtime_error("Expecting expression on left of '+'");
|
||||
}
|
||||
consume(); // be rid of the +
|
||||
Precedence precedence = getTokenPrecedence(Token(type));
|
||||
auto right = parseOneNode(precedence);
|
||||
if (!right.has_value()) {
|
||||
|
||||
Reference in New Issue
Block a user