31 lines
680 B
C++
31 lines
680 B
C++
|
|
#include "sqlparser.h"
|
|||
|
|
|
|||
|
|
/** Responsible for splitting the query into logical elements.
|
|||
|
|
*
|
|||
|
|
* It first uses common seperators to split the input, then it tries
|
|||
|
|
* to determine if the fields it gets have a special meaning.
|
|||
|
|
*
|
|||
|
|
* However because SQL is very forgiving about the use of keywords
|
|||
|
|
* as names.
|
|||
|
|
*
|
|||
|
|
* The lexical analyzer does however distinguish between
|
|||
|
|
* - symbols/keywords (symbols might be schema, table, columns, functions etc)
|
|||
|
|
* - numbers
|
|||
|
|
* - strings
|
|||
|
|
* - quoted symbol (a symbol between "" must be the name of something)
|
|||
|
|
*
|
|||
|
|
* seperators
|
|||
|
|
* whitespace
|
|||
|
|
* special chars ;,.
|
|||
|
|
* operators
|
|||
|
|
*/
|
|||
|
|
class LexicalAnalyser {
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
SqlParser::SqlParser()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|