]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/ParsedSource.h
removed stupid file headers that eclipse put in
[l2e.git] / src / loader / ParsedSource.h
index 64baaaa4d3cb99cec172e65acbdcb14f7e69fd72..b0578a78e548d017f7834d7cd810e889f0992089 100644 (file)
@@ -1,10 +1,3 @@
-/*
- * ParsedSource.h
- *
- *  Created on: Aug 26, 2012
- *      Author: holy
- */
-
 #ifndef LOADER_PARSEDSOURCE_H_
 #define LOADER_PARSEDSOURCE_H_
 
 
 namespace loader {
 
+class ScriptToken {
+
+public:
+       enum Type {
+               COMMAND,
+               REGISTER,
+               IDENTIFIER,
+               LITERAL,
+               LABEL,
+       };
+
+       ScriptToken(const std::string &, Type);
+       explicit ScriptToken(Literal *);
+       ~ScriptToken();
+private:
+       ScriptToken(const ScriptToken &);
+       ScriptToken &operator =(const ScriptToken &);
+
+public:
+       Type GetType() const { return type; }
+       const std::string &RegisterName() const;
+       const std::string &CommandName() const;
+       const std::string &Identifier() const;
+       const std::string &Label() const;
+       const Literal *GetLiteral() const;
+
+private:
+       Literal *literal;
+       std::string str;
+       Type type;
+
+};
+
+
 class Literal {
 
 public:
@@ -30,7 +57,8 @@ public:
                PATH,
                STRING,
                VECTOR,
-               OBJECT
+               OBJECT,
+               SCRIPT,
        };
 
 public:
@@ -43,6 +71,7 @@ public:
        Literal(const std::string &);
        Literal(int x, int y);
        Literal(const std::string &typeName, PropertyList *properties);
+       explicit Literal(const std::vector<ScriptToken *> &);
        ~Literal();
 private:
        Literal(const Literal &);
@@ -67,12 +96,14 @@ public:
        int GetY() const;
        const std::string &GetTypeName() const;
        const PropertyList *GetProperties() const;
+       const std::vector<ScriptToken *> &GetScript() const;
 
 private:
        PropertyList *props;
        std::string typeName, str;
        std::vector<Value *> values;
        std::vector<PropertyList *> propertyLists;
+       std::vector<ScriptToken *> script;
        int i1, i2, i3, i4;
        bool b;
        Type type;