diff --git a/src/headers/parsing/Parser.hpp b/src/headers/parsing/Parser.hpp index ed6a580..7335bab 100644 --- a/src/headers/parsing/Parser.hpp +++ b/src/headers/parsing/Parser.hpp @@ -75,12 +75,14 @@ namespace Parser { parsingError(current, previousDefinition->get().final ? " cannot be redefined as it is final" : " cannot be made final after it has been declared", true); } } + const unsigned increment = 2 + isFinalDefine; + const auto beginning = lexed.begin() + i + increment; parseTree << Define(isFinalDefine, current.toktext, parse( // TODO Find another way of choosing the tokens to parse - lexed.begin() + i + 2 + isFinalDefine, find_if(lexed.begin() + i + 2 + isFinalDefine, lexed.end(), [¤t](const tok& it){ + beginning, find_if(beginning, lexed.end(), [¤t](const tok& it){ return it.line != current.line; }) )); - i += 2 + isFinalDefine; + i += increment; } else if (next.toktype == '(') { parseTree << Call(current.toktext); } else