X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FParser.cpp;h=9641fadfae828db61439dee05683a017e71afba9;hb=535f472174fd386567bec7002f645183b80cb2ef;hp=8ba370408206bc60f0cfa4d98574e56f6222d624;hpb=fa339aa45524243e716fd234a09c929d0eec95f8;p=l2e.git diff --git a/src/loader/Parser.cpp b/src/loader/Parser.cpp index 8ba3704..9641fad 100644 --- a/src/loader/Parser.cpp +++ b/src/loader/Parser.cpp @@ -355,6 +355,7 @@ Literal *Parser::ParseScript() { Token t(GetToken()); AssertTokenType(t.type, Token::SCRIPT_BEGIN, msg); + t = GetToken(); vector script; try { while (t.type != Token::SCRIPT_END) { @@ -365,17 +366,23 @@ Literal *Parser::ParseScript() { switch (t.type) { case Token::COMMAND: { Token t2(GetToken()); - AssertTokenType(t.type, Token::IDENTIFIER, msg); + AssertTokenType(t2.type, Token::IDENTIFIER, msg); script.push_back(new ScriptToken(t2.str, ScriptToken::COMMAND)); break; } case Token::IDENTIFIER: { - script.push_back(new ScriptToken(t.str, ScriptToken::IDENTIFIER)); + Token t2(GetToken()); + if (t2.type == Token::COLON) { + script.push_back(new ScriptToken(t.str, ScriptToken::LABEL)); + } else { + tok.Putback(t2); + script.push_back(new ScriptToken(t.str, ScriptToken::IDENTIFIER)); + } break; } case Token::REGISTER: { Token t2(GetToken()); - AssertTokenType(t.type, Token::IDENTIFIER, msg); + AssertTokenType(t2.type, Token::IDENTIFIER, msg); script.push_back(new ScriptToken(t2.str, ScriptToken::REGISTER)); break; }