#ifndef LOADER_PARSEDSOURCE_H_
#define LOADER_PARSEDSOURCE_H_
+#include "fwd.h"
+
#include <iosfwd>
#include <map>
#include <set>
namespace loader {
-class PropertyList;
-class Value;
-
class Literal {
public:
public:
explicit Literal(const std::vector<Value *> &);
- explicit Literal(const std::vector<PropertyList *> &);
+ Literal(const std::string &, const std::vector<PropertyList *> &);
explicit Literal(bool);
Literal(int r, int g, int b, int a = 255);
explicit Literal(int number);
public:
Type GetType() const { return type; }
+ bool IsArray() const { return GetType() == ARRAY_VALUES || GetType() == ARRAY_PROPS; }
+ bool IsObject() const { return GetType() == OBJECT; }
+ int ArraySize() const { return GetType() == ARRAY_VALUES ? GetValues().size() : GetPropertyLists().size(); }
const std::vector<Value *> &GetValues() const;
const std::vector<PropertyList *> &GetPropertyLists() const;
private:
PropertyList *props;
- std::string str;
+ std::string typeName, str;
std::vector<Value *> values;
std::vector<PropertyList *> propertyLists;
int i1, i2, i3, i4;