X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FParsedSource.h;fp=src%2Floader%2FParsedSource.h;h=9ba52972a4b5bcf797fc32fc62d80db9f183553e;hb=3a30342daecdb9ee050ab20fcb50819a599d6343;hp=64baaaa4d3cb99cec172e65acbdcb14f7e69fd72;hpb=963ed8ddb873e0638b55b38c5590db75db8254c8;p=l2e.git diff --git a/src/loader/ParsedSource.h b/src/loader/ParsedSource.h index 64baaaa..9ba5297 100644 --- a/src/loader/ParsedSource.h +++ b/src/loader/ParsedSource.h @@ -18,6 +18,38 @@ namespace loader { +class ScriptToken { + +public: + enum Type { + COMMAND, + REGISTER, + IDENTIFIER, + LITERAL, + }; + + 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 &GetIdentifier() const; + const Literal *GetLiteral() const; + +private: + Literal *literal; + std::string str; + Type type; + +}; + + class Literal { public: @@ -30,7 +62,8 @@ public: PATH, STRING, VECTOR, - OBJECT + OBJECT, + SCRIPT, }; public: @@ -43,6 +76,7 @@ public: Literal(const std::string &); Literal(int x, int y); Literal(const std::string &typeName, PropertyList *properties); + explicit Literal(const std::vector &); ~Literal(); private: Literal(const Literal &); @@ -67,12 +101,14 @@ public: int GetY() const; const std::string &GetTypeName() const; const PropertyList *GetProperties() const; + const std::vector &GetScript() const; private: PropertyList *props; std::string typeName, str; std::vector values; std::vector propertyLists; + std::vector script; int i1, i2, i3, i4; bool b; Type type;