#pragma once #include "DataType.h" #include #include "SimanticsDataParser.h" #include "SimanticsDataLexer.h" namespace Databoard { class Range; namespace Type { struct DATABOARD_API strTypeDefinition { std::string name; DataType* dataBoard; std::string writeOut(); }; //DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); //bool addToChildren(DataType* parent, char* name, DataType* children); //Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); //void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); class DATABOARD_API DataBoardRepository { public: DataBoardRepository(); virtual ~DataBoardRepository(); int count(); strTypeDefinition getDataBoard(int i); DataType* getDataBoard(std::string name); bool open(std::string fileName); const strTypeDefinition* get(std::string name); void addDataBoard(char* name, DataType* dataBoard); protected: std::vector dataBoards; private: //DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); //bool addToChildren(DataType* parent, char* name, DataType* children); //Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); //void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); void print(pANTLR3_BASE_TREE tree, int indent = 0); }; class DATABOARD_API temporaryname { public: temporaryname(DataBoardRepository* dataBoardRepository); virtual ~temporaryname(); DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); private: Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); bool addToChildren(DataType* parent, char* name, DataType* children); void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); DataBoardRepository* dataBoardRepository; }; } }