| Index: third_party/sqlite/sqlite-src-3100200/ext/fts5/fts5parse.y
|
| diff --git a/third_party/sqlite/sqlite-src-3100200/ext/fts5/fts5parse.y b/third_party/sqlite/sqlite-src-3100200/ext/fts5/fts5parse.y
|
| deleted file mode 100644
|
| index 0e81771b4f1bf2184e459c6e7b9503107eee5fee..0000000000000000000000000000000000000000
|
| --- a/third_party/sqlite/sqlite-src-3100200/ext/fts5/fts5parse.y
|
| +++ /dev/null
|
| @@ -1,182 +0,0 @@
|
| -/*
|
| -** 2014 May 31
|
| -**
|
| -** The author disclaims copyright to this source code. In place of
|
| -** a legal notice, here is a blessing:
|
| -**
|
| -** May you do good and not evil.
|
| -** May you find forgiveness for yourself and forgive others.
|
| -** May you share freely, never taking more than you give.
|
| -**
|
| -******************************************************************************
|
| -**
|
| -*/
|
| -
|
| -
|
| -// All token codes are small integers with #defines that begin with "TK_"
|
| -%token_prefix FTS5_
|
| -
|
| -// The type of the data attached to each token is Token. This is also the
|
| -// default type for non-terminals.
|
| -//
|
| -%token_type {Fts5Token}
|
| -%default_type {Fts5Token}
|
| -
|
| -// The generated parser function takes a 4th argument as follows:
|
| -%extra_argument {Fts5Parse *pParse}
|
| -
|
| -// This code runs whenever there is a syntax error
|
| -//
|
| -%syntax_error {
|
| - sqlite3Fts5ParseError(
|
| - pParse, "fts5: syntax error near \"%.*s\"",TOKEN.n,TOKEN.p
|
| - );
|
| -}
|
| -%stack_overflow {
|
| - assert( 0 );
|
| -}
|
| -
|
| -// The name of the generated procedure that implements the parser
|
| -// is as follows:
|
| -%name sqlite3Fts5Parser
|
| -
|
| -// The following text is included near the beginning of the C source
|
| -// code file that implements the parser.
|
| -//
|
| -%include {
|
| -#include "fts5Int.h"
|
| -#include "fts5parse.h"
|
| -
|
| -/*
|
| -** Disable all error recovery processing in the parser push-down
|
| -** automaton.
|
| -*/
|
| -#define YYNOERRORRECOVERY 1
|
| -
|
| -/*
|
| -** Make yytestcase() the same as testcase()
|
| -*/
|
| -#define yytestcase(X) testcase(X)
|
| -
|
| -/*
|
| -** Indicate that sqlite3ParserFree() will never be called with a null
|
| -** pointer.
|
| -*/
|
| -#define YYPARSEFREENOTNULL 1
|
| -
|
| -/*
|
| -** Alternative datatype for the argument to the malloc() routine passed
|
| -** into sqlite3ParserAlloc(). The default is size_t.
|
| -*/
|
| -#define YYMALLOCARGTYPE u64
|
| -
|
| -} // end %include
|
| -
|
| -%left OR.
|
| -%left AND.
|
| -%left NOT.
|
| -%left TERM.
|
| -%left COLON.
|
| -
|
| -input ::= expr(X). { sqlite3Fts5ParseFinished(pParse, X); }
|
| -%destructor input { (void)pParse; }
|
| -
|
| -%type cnearset {Fts5ExprNode*}
|
| -%type expr {Fts5ExprNode*}
|
| -%type exprlist {Fts5ExprNode*}
|
| -%destructor cnearset { sqlite3Fts5ParseNodeFree($$); }
|
| -%destructor expr { sqlite3Fts5ParseNodeFree($$); }
|
| -%destructor exprlist { sqlite3Fts5ParseNodeFree($$); }
|
| -
|
| -expr(A) ::= expr(X) AND expr(Y). {
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_AND, X, Y, 0);
|
| -}
|
| -expr(A) ::= expr(X) OR expr(Y). {
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_OR, X, Y, 0);
|
| -}
|
| -expr(A) ::= expr(X) NOT expr(Y). {
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_NOT, X, Y, 0);
|
| -}
|
| -
|
| -expr(A) ::= LP expr(X) RP. {A = X;}
|
| -expr(A) ::= exprlist(X). {A = X;}
|
| -
|
| -exprlist(A) ::= cnearset(X). {A = X;}
|
| -exprlist(A) ::= exprlist(X) cnearset(Y). {
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_AND, X, Y, 0);
|
| -}
|
| -
|
| -cnearset(A) ::= nearset(X). {
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, X);
|
| -}
|
| -cnearset(A) ::= colset(X) COLON nearset(Y). {
|
| - sqlite3Fts5ParseSetColset(pParse, Y, X);
|
| - A = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, Y);
|
| -}
|
| -
|
| -%type colset {Fts5Colset*}
|
| -%destructor colset { sqlite3_free($$); }
|
| -%type colsetlist {Fts5Colset*}
|
| -%destructor colsetlist { sqlite3_free($$); }
|
| -
|
| -colset(A) ::= LCP colsetlist(X) RCP. { A = X; }
|
| -colset(A) ::= STRING(X). {
|
| - A = sqlite3Fts5ParseColset(pParse, 0, &X);
|
| -}
|
| -
|
| -colsetlist(A) ::= colsetlist(Y) STRING(X). {
|
| - A = sqlite3Fts5ParseColset(pParse, Y, &X); }
|
| -colsetlist(A) ::= STRING(X). {
|
| - A = sqlite3Fts5ParseColset(pParse, 0, &X);
|
| -}
|
| -
|
| -
|
| -%type nearset {Fts5ExprNearset*}
|
| -%type nearphrases {Fts5ExprNearset*}
|
| -%destructor nearset { sqlite3Fts5ParseNearsetFree($$); }
|
| -%destructor nearphrases { sqlite3Fts5ParseNearsetFree($$); }
|
| -
|
| -nearset(A) ::= phrase(X). { A = sqlite3Fts5ParseNearset(pParse, 0, X); }
|
| -nearset(A) ::= STRING(X) LP nearphrases(Y) neardist_opt(Z) RP. {
|
| - sqlite3Fts5ParseNear(pParse, &X);
|
| - sqlite3Fts5ParseSetDistance(pParse, Y, &Z);
|
| - A = Y;
|
| -}
|
| -
|
| -nearphrases(A) ::= phrase(X). {
|
| - A = sqlite3Fts5ParseNearset(pParse, 0, X);
|
| -}
|
| -nearphrases(A) ::= nearphrases(X) phrase(Y). {
|
| - A = sqlite3Fts5ParseNearset(pParse, X, Y);
|
| -}
|
| -
|
| -/*
|
| -** The optional ", <integer>" at the end of the NEAR() arguments.
|
| -*/
|
| -neardist_opt(A) ::= . { A.p = 0; A.n = 0; }
|
| -neardist_opt(A) ::= COMMA STRING(X). { A = X; }
|
| -
|
| -/*
|
| -** A phrase. A set of primitives connected by "+" operators. Examples:
|
| -**
|
| -** "the" + "quick brown" + fo *
|
| -** "the quick brown fo" *
|
| -** the+quick+brown+fo*
|
| -*/
|
| -%type phrase {Fts5ExprPhrase*}
|
| -%destructor phrase { sqlite3Fts5ParsePhraseFree($$); }
|
| -
|
| -phrase(A) ::= phrase(X) PLUS STRING(Y) star_opt(Z). {
|
| - A = sqlite3Fts5ParseTerm(pParse, X, &Y, Z);
|
| -}
|
| -phrase(A) ::= STRING(Y) star_opt(Z). {
|
| - A = sqlite3Fts5ParseTerm(pParse, 0, &Y, Z);
|
| -}
|
| -
|
| -/*
|
| -** Optional "*" character.
|
| -*/
|
| -%type star_opt {int}
|
| -
|
| -star_opt(A) ::= STAR. { A = 1; }
|
| -star_opt(A) ::= . { A = 0; }
|
|
|