]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/Parser.cpp
removed stupid file headers that eclipse put in
[l2e.git] / src / loader / Parser.cpp
index 8ba370408206bc60f0cfa4d98574e56f6222d624..cba4f316f8d5251d1f878d7b2d612ce0f903655e 100644 (file)
@@ -1,10 +1,3 @@
-/*
- * Parser.cpp
- *
- *  Created on: Aug 26, 2012
- *      Author: holy
- */
-
 #include "Parser.h"
 
 #include "utility.h"
@@ -355,6 +348,7 @@ Literal *Parser::ParseScript() {
        Token t(GetToken());
        AssertTokenType(t.type, Token::SCRIPT_BEGIN, msg);
 
+       t = GetToken();
        vector<ScriptToken *> script;
        try {
                while (t.type != Token::SCRIPT_END) {
@@ -365,17 +359,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;
                                        }