From: drh Date: Tue, 22 Sep 2009 20:08:34 +0000 (+0000) Subject: Factor the UMINUS and UPLUS tokens out of the parser so that the parser X-Git-Tag: fts3-refactor~169 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ba5bc5bf20bbcd3720230106955800da59418b7;p=thirdparty%2Fsqlite.git Factor the UMINUS and UPLUS tokens out of the parser so that the parser tables can go back to using 8-bit values instead of 16-bit values. FossilOrigin-Name: 3fc938c961fd7810594224b91a2d6e1ac9e48084 --- diff --git a/addopcodes.awk b/addopcodes.awk index 9c21417190..66d6e19baa 100644 --- a/addopcodes.awk +++ b/addopcodes.awk @@ -28,4 +28,6 @@ END { printf "#define TK_%-29s %4d\n", "AGG_FUNCTION", ++max printf "#define TK_%-29s %4d\n", "AGG_COLUMN", ++max printf "#define TK_%-29s %4d\n", "CONST_FUNC", ++max + printf "#define TK_%-29s %4d\n", "UMINUS", ++max + printf "#define TK_%-29s %4d\n", "UPLUS", ++max } diff --git a/manifest b/manifest index 43120ac915..e7db2c5897 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C The\sNO\sACTION\saction\sreally\sshould\sbe\sno-action\sand\snot\sRESTRICT. -D 2009-09-22T19:53:41 +C Factor\sthe\sUMINUS\sand\sUPLUS\stokens\sout\sof\sthe\sparser\sso\sthat\sthe\sparser\ntables\scan\sgo\sback\sto\susing\s8-bit\svalues\sinstead\sof\s16-bit\svalues. +D 2009-09-22T20:08:35 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 4ca3f1dd6efa2075bcb27f4dc43eef749877740d F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -10,7 +10,7 @@ F Makefile.vxworks 10010ddbf52e2503c7c49c7c0b7c7a096f8638a6 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 F VERSION 7260e7baf934051dee42458206e915b75570f41d F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 -F addopcodes.awk 215333be9d99c260e076c3080a81dba3ae928c45 +F addopcodes.awk 08eb3bdfef10a131530e3ad7fa1a6902a52dad15 F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248 F art/SQLite.eps 9b43cc99cfd2be687d386faea6862ea68d6a72b2 F art/SQLite.gif 1bbb94484963f1382e27e1c5e86dd0c1061eba2b @@ -153,7 +153,7 @@ F src/os_unix.c 5369272992c14dd198c02ddfc2fd7a1516906c40 F src/os_win.c 49a360be4f42d5a63d00be9aa44449ed4d6717e0 F src/pager.c ebd0a8f2421e8f0ad5b78201440004bf3e1c96d8 F src/pager.h 11852d044c86cf5a9d6e34171fb0c4fcf1f6265f -F src/parse.y e2a89b59361dc8d67628a2f4a7325f3085a0bd0f +F src/parse.y 749f39fa218418a19c46970336c2343214e2fe05 F src/pcache.c c92ffd4f3e1279b3766854c6d18b5bf4aac0d1fa F src/pcache.h 435ef324197f79391f9c92b71d7f92b548ad7a36 F src/pcache1.c 211295a9ff6a5b30f1ca50516731a5cf3e9bf82c @@ -756,14 +756,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P e2bc51bc61d54d103ccffd12106c27a574e4e997 -R d17b5b16742509067b4e4d0466de4ca3 +P 55b263fa2b2fed8c721154e3c48f4226be95065c +R eef40f23e9c60a6f8dbfd20ac239494a U drh -Z 7fa412630def87c8c760586082e5742d +Z a26ff37b38b185f4ba103e5a00635dcb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFKuStIoxKgR168RlERAtgiAJ42i+YBSmXedbj83Npi2WGtORYGJACdF3Qs -gW3hqQbVtK4/JWi52ExtfYs= -=EU8f +iD8DBQFKuS7GoxKgR168RlERArmIAJ9Zh9EPcETkJ903DGxflMeqs+sSrQCfRsQh +N09u5KCVOpvUNYJvUIHJJug= +=Nr38 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 48853fc281..d94e23f4ce 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -55b263fa2b2fed8c721154e3c48f4226be95065c \ No newline at end of file +3fc938c961fd7810594224b91a2d6e1ac9e48084 \ No newline at end of file diff --git a/src/parse.y b/src/parse.y index f3ea25e087..f668228596 100644 --- a/src/parse.y +++ b/src/parse.y @@ -230,7 +230,7 @@ id(A) ::= INDEXED(X). {A = X;} %left STAR SLASH REM. %left CONCAT. %left COLLATE. -%right UMINUS UPLUS BITNOT. +%right BITNOT. // And "ids" is an identifer-or-string. // @@ -909,9 +909,9 @@ expr(A) ::= expr(X) IS NOT NULL(E). expr(A) ::= NOT(B) expr(X). {spanUnaryPrefix(&A,pParse,@B,&X,&B);} expr(A) ::= BITNOT(B) expr(X). {spanUnaryPrefix(&A,pParse,@B,&X,&B);} -expr(A) ::= MINUS(B) expr(X). [UMINUS] +expr(A) ::= MINUS(B) expr(X). [BITNOT] {spanUnaryPrefix(&A,pParse,TK_UMINUS,&X,&B);} -expr(A) ::= PLUS(B) expr(X). [UPLUS] +expr(A) ::= PLUS(B) expr(X). [BITNOT] {spanUnaryPrefix(&A,pParse,TK_UPLUS,&X,&B);} %type between_op {int}