HyriseSQLParser/src/lib/Statement.h

49 lines
813 B
C
Raw Normal View History

2014-10-09 01:30:22 +02:00
/*
* Statement.h
* Definition of the structure used to build the syntax tree.
*/
#ifndef __STATEMENT_H__
#define __STATEMENT_H__
2014-10-20 22:33:36 +02:00
#include "List.h"
2014-10-09 01:30:22 +02:00
namespace hsql {
2014-10-09 01:30:22 +02:00
typedef enum {
2014-11-04 00:02:40 +01:00
kStmtError,
2014-10-27 11:23:31 +01:00
kStmtSelect,
2014-11-07 01:09:06 +01:00
kStmtImport,
// Following types are planned but not supported yet
2014-10-27 11:23:31 +01:00
kStmtDelete,
kStmtInsert,
2014-11-07 01:09:06 +01:00
kStmtCreate,
kStmtDrop,
kStmtExport,
kStmtRename,
kStmtAlter
2014-10-27 11:23:31 +01:00
} StatementType;
2014-10-09 01:30:22 +02:00
struct Statement {
2014-10-27 11:23:31 +01:00
Statement(StatementType type) : type(type) {};
2014-11-04 00:02:40 +01:00
2014-10-27 11:23:31 +01:00
StatementType type;
};
class StatementList : public List<Statement*> {
public:
StatementList() : List<Statement*>(), isValid(true) {};
StatementList(Statement* stmt) : List<Statement*>(stmt), isValid(true) {};
bool isValid;
2014-11-04 00:02:40 +01:00
const char* parser_msg;
2014-10-09 01:30:22 +02:00
};
// typedef List<Statement*> StatementList;
2014-10-09 01:30:22 +02:00
} // namespace hsql
2014-10-20 22:33:36 +02:00
#endif // __STATEMENT_H__