diff options
Diffstat (limited to 'grammer.cpp')
-rw-r--r-- | grammer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/grammer.cpp b/grammer.cpp index 55e31c8..22b874e 100644 --- a/grammer.cpp +++ b/grammer.cpp @@ -426,6 +426,9 @@ bool Compiler::FillTree() index_t to_fill{}; while (!subTreeIsComplete(root_node_id, to_fill)) { + if (tokens_used >= tokens.size()) + return false; // Unexpected end of program? + auto& node {nodes[to_fill]}; std::string next_child {bnf[node.type][node.variant][node.child_ids.size()]}; if (next_child == tokens[tokens_used].type) { // add token directly |