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
|
|
|
|
2014-11-07 02:00:09 +01:00
|
|
|
#include "List.h"
|
2014-10-09 01:30:22 +02:00
|
|
|
|
2014-10-31 18:36:02 +01:00
|
|
|
namespace hsql {
|
2014-10-27 11:48:55 +01:00
|
|
|
|
2014-11-07 02:00:09 +01:00
|
|
|
|
2014-10-09 01:30:22 +02:00
|
|
|
typedef enum {
|
2014-11-13 01:27:47 +01:00
|
|
|
kStmtError, // Unused
|
2014-10-27 11:23:31 +01:00
|
|
|
kStmtSelect,
|
2014-11-07 01:09:06 +01:00
|
|
|
kStmtImport,
|
2014-11-26 00:26:20 +01:00
|
|
|
kStmtInsert,
|
2014-11-26 12:19:33 +01:00
|
|
|
kStmtUpdate,
|
2014-11-07 01:09:06 +01:00
|
|
|
// Following types are planned but not supported yet
|
2014-10-27 11:23:31 +01:00
|
|
|
kStmtDelete,
|
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
|
|
|
|
|
|
|
|
2014-10-22 17:42:05 +02:00
|
|
|
struct Statement {
|
2014-11-13 01:27:47 +01:00
|
|
|
Statement(StatementType type) :
|
|
|
|
type(type) {};
|
|
|
|
|
2014-11-07 15:21:54 +01:00
|
|
|
virtual ~Statement(); // defined in destructors.cpp
|
2014-11-04 00:02:40 +01:00
|
|
|
|
2014-10-27 11:23:31 +01:00
|
|
|
StatementType type;
|
2014-11-07 02:00:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class StatementList : public List<Statement*> {
|
|
|
|
public:
|
2014-11-13 01:27:47 +01:00
|
|
|
StatementList() :
|
|
|
|
List<Statement*>(),
|
|
|
|
isValid(true),
|
|
|
|
parser_msg(NULL) {};
|
|
|
|
|
|
|
|
StatementList(Statement* stmt) :
|
|
|
|
List<Statement*>(stmt),
|
|
|
|
isValid(true),
|
|
|
|
parser_msg(NULL) {};
|
|
|
|
|
2014-11-07 15:21:54 +01:00
|
|
|
virtual ~StatementList(); // defined in destructors.cpp
|
2014-11-07 02:00:09 +01:00
|
|
|
|
|
|
|
bool isValid;
|
2014-11-04 00:02:40 +01:00
|
|
|
const char* parser_msg;
|
2014-10-09 01:30:22 +02:00
|
|
|
};
|
2014-11-07 02:00:09 +01:00
|
|
|
// typedef List<Statement*> StatementList;
|
|
|
|
|
2014-10-09 01:30:22 +02:00
|
|
|
|
2014-10-31 18:36:02 +01:00
|
|
|
} // namespace hsql
|
2014-10-22 17:42:05 +02:00
|
|
|
|
2014-10-20 22:33:36 +02:00
|
|
|
#endif // __STATEMENT_H__
|