Skip to content

Commit 85b9ed2

Browse files
committed
added doxygen documentation
1 parent 2150330 commit 85b9ed2

20 files changed

+184
-156
lines changed

Makefile

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
3+
test:
4+
@echo "Compiling..."
5+
@make clean -C src/ >/dev/null || exit 1
6+
@make tests -C src/ >/dev/null || exit 1
7+
@make grammar_test -C src/ >/dev/null || exit 1
8+
@echo "Running tests:"
9+
@./bin/grammar_test -f "test/valid_queries.sql"
10+
@./bin/tests
11+
12+
13+
docs: FORCE
14+
doxygen docs/doxy.conf
15+
16+
17+
FORCE:

docs/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
__doxygen__/

docs/documentation.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Developer Documentation
2+
3+
This page contains information about how to extend this parser with new functionalities.
4+
5+
6+
7+
## Extending the Grammar
8+
9+
TODO
10+
11+
12+
## Implementing Statement Class
13+
14+
TODO
15+
16+
17+
## Implementing Tests
18+
19+
TODO
20+
21+

docs/doxy.conf

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
@PROJECT_NAME = "SQL Parser for Hyrise (C++)"
2+
3+
@OUTPUT_DIRECTORY = docs/__doxygen__/
4+
@GENERATE_LATEX = NO
5+
@GENERATE_HTML = YES
6+
7+
@INPUT = README.md \
8+
docs/ \
9+
src/parser/SQLParser.h \
10+
src/parser/SQLParser.cpp \
11+
src/lib/ \
12+
13+
14+
@RECURSIVE = YES

run_tests.sh

-9
This file was deleted.

src/lib/Expr.h

+4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ typedef enum {
2424

2525
typedef struct Expr Expr;
2626

27+
/**
28+
* @class Expr
29+
* @brief Represents SQL expressions (i.e. literals, operators, column_refs)
30+
*/
2731
struct Expr {
2832
/**
2933
* Operator types. These are important for expressions of type kExprOperator

src/lib/List.h

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ namespace hsql {
88

99
// TODO: try to replace the List wrapper by directly using std::vector
1010

11+
/**
12+
* @class List
13+
* @brief Classed interface to std::vector (may be replaced with std::vector)
14+
*/
1115
template <typename _T>
1216
class List {
1317
public:

src/lib/Table.h

+23-9
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ struct SelectStatement;
99
struct JoinDefinition;
1010
struct TableRef;
1111

12+
1213
/**
13-
* TableRef
14-
* Holds reference to tables. Can be either table names or a select statement.
14+
* @enum TableRefType
15+
* Types table references
1516
*/
1617
typedef enum {
1718
kTableName,
@@ -21,8 +22,10 @@ typedef enum {
2122
} TableRefType;
2223

2324

24-
25-
25+
/**
26+
* @struct TableRef
27+
* @brief Holds reference to tables. Can be either table names or a select statement.
28+
*/
2629
struct TableRef {
2730
TableRef(TableRefType type) :
2831
type(type),
@@ -33,7 +36,12 @@ struct TableRef {
3336
list(NULL),
3437
join(NULL) {}
3538

36-
virtual ~TableRef(); // defined in destructors.cpp
39+
virtual ~TableRef() {
40+
delete name;
41+
delete alias;
42+
delete select;
43+
delete list;
44+
}
3745

3846
TableRefType type;
3947

@@ -59,18 +67,20 @@ struct TableRef {
5967

6068

6169
/**
62-
* Following are definitions needed to specify join tables
70+
* @enum JoinType
71+
* Types of joins
6372
*/
64-
6573
typedef enum {
6674
kJoinInner,
6775
kJoinOuter,
6876
kJoinLeft,
6977
kJoinRight,
7078
} JoinType;
7179

80+
7281
/**
73-
* Definition of a join table
82+
* @struct JoinDefinition
83+
* @brief Definition of a join table
7484
*/
7585
struct JoinDefinition {
7686
JoinDefinition() :
@@ -79,7 +89,11 @@ struct JoinDefinition {
7989
condition(NULL),
8090
type(kJoinInner) {}
8191

82-
virtual ~JoinDefinition(); // defined in destructors.cpp
92+
virtual ~JoinDefinition() {
93+
delete left;
94+
delete right;
95+
delete condition;
96+
}
8397

8498
TableRef* left;
8599
TableRef* right;

src/lib/destructors.cpp

-106
This file was deleted.

src/lib/statements/CreateStatement.h

+11-5
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
namespace hsql {
77

8-
98
/**
109
* @struct ColumnDefinition
10+
* @brief Represents definition of a table column
1111
*/
1212
struct ColumnDefinition {
1313
enum DataType {
@@ -20,16 +20,18 @@ struct ColumnDefinition {
2020
name(name),
2121
type(type) {}
2222

23-
virtual ~ColumnDefinition(); // defined in destructors.cpp
23+
virtual ~ColumnDefinition() {
24+
delete name;
25+
}
2426

2527
char* name;
2628
DataType type;
2729
};
2830

31+
2932
/**
3033
* @struct CreateStatement
31-
* CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)
32-
* CREATE TABLE students FROM TBL FILE 'test/students.tbl'
34+
* @brief Represents "CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)"
3335
*/
3436
struct CreateStatement : SQLStatement {
3537
enum CreateType {
@@ -45,7 +47,11 @@ struct CreateStatement : SQLStatement {
4547
file_path(NULL),
4648
table_name(NULL) {};
4749

48-
virtual ~CreateStatement(); // defined in destructors.cpp
50+
virtual ~CreateStatement() {
51+
delete columns;
52+
delete file_path;
53+
delete table_name;
54+
}
4955

5056
CreateType type;
5157
bool if_not_exists;

src/lib/statements/DeleteStatement.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ namespace hsql {
88

99
/**
1010
* @struct DeleteStatement
11-
* DELETE FROM students WHERE grade > 3.0
12-
* DELETE FROM students <=> TRUNCATE students
11+
* @brief Represents "DELETE FROM students WHERE grade > 3.0"
1312
*
1413
* If expr == NULL => delete all rows (truncate)
1514
*/
@@ -19,7 +18,11 @@ struct DeleteStatement : SQLStatement {
1918
table_name(NULL),
2019
expr(NULL) {};
2120

22-
virtual ~DeleteStatement(); // defined in destructors.cpp
21+
virtual ~DeleteStatement() {
22+
delete table_name;
23+
delete expr;
24+
}
25+
2326

2427
char* table_name;
2528
Expr* expr;

src/lib/statements/DropStatement.h

+9-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55

66
namespace hsql {
77

8+
9+
/**
10+
* @struct DropStatement
11+
* @brief Represents "DROP TABLE"
12+
*/
813
struct DropStatement : SQLStatement {
914
enum EntityType {
1015
kTable,
@@ -19,14 +24,13 @@ struct DropStatement : SQLStatement {
1924
type(type),
2025
name(NULL) {}
2126

22-
23-
EntityType type;
24-
const char* name;
25-
26-
2727
virtual ~DropStatement() {
2828
delete name;
2929
}
30+
31+
32+
EntityType type;
33+
const char* name;
3034
};
3135

3236

src/lib/statements/ExecuteStatement.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@ namespace hsql {
88

99
/**
1010
* @struct ExecuteStatement
11-
*
11+
* @brief Represents "EXECUTE ins_prep(100, "test", 2.3);"
1212
*/
1313
struct ExecuteStatement : SQLStatement {
1414
ExecuteStatement() :
1515
SQLStatement(kStmtExecute),
1616
name(NULL),
1717
parameters(NULL) {}
1818

19-
virtual ~ExecuteStatement(); // defined in destructors.cpp
19+
virtual ~ExecuteStatement() {
20+
delete name;
21+
delete parameters;
22+
}
2023

2124
const char* name;
2225
List<Expr*>* parameters;

0 commit comments

Comments
 (0)