@@ -840,56 +840,66 @@ rule("nonEmptyArgumentList").branch().split(
840840
841841rule ( "SQLMode" ) . split (
842842 char ( { value : "/" , class : "special" } ) . call ( "CWTSpecial" ) . exit ( ) ,
843- id ( { CI , value : "delete" , class : "keyword" } ) . whitespace ( )
844- . call ( "SQLFrom" ) . whitespace ( )
845- . id ( { CI , value : "where" , class : "keyword" } ) . whitespace ( ) . call ( "SQLExpression" )
846- . whitespace ( ) ,
847- id ( { CI , value : "update" , class : "keyword" } ) . whitespace ( )
848- . call ( "SQLClassName" ) . whitespace ( )
849- . id ( { CI , value : "set" , class : "keyword" } ) . whitespace ( ) . branch ( )
850- . id ( { type : "sqlFieldName" , class : "variable" } ) . optWhitespace ( ) . char ( "=" ) . optWhitespace ( )
851- . call ( "SQLExpression" ) . optWhitespace ( ) . split (
852- char ( "," ) . optWhitespace ( ) . merge ( ) ,
853- any ( )
854- )
855- . id ( { CI , value : "where" , class : "keyword" } ) . whitespace ( ) . call ( "SQLExpression" )
856- . whitespace ( ) ,
857- id ( { CI , value : "select" , class : "keyword" } ) . whitespace ( ) . split (
858- id ( { CI , value : "top" , class : "keyword" } ) . whitespace ( ) . constant ( ) . whitespace ( ) ,
843+ id ( { CI , value : "delete" , class : "keyword" } ) . whitespace ( ) . call ( "SQLDelete" ) ,
844+ id ( { CI , value : "update" , class : "keyword" } ) . whitespace ( ) . call ( "SQLUpdate" ) ,
845+ id ( { CI , value : "select" , class : "keyword" } ) . whitespace ( ) . call ( "SQLSelect" )
846+ ) . exit ( ) . end ( ) ;
847+
848+ rule ( "SQLVar" ) . branch ( )
849+ . id ( { class : "variable" , type : "sqlFieldName" } ) . split (
850+ char ( "." ) . id ( { class : "variable" , type : "sqlFieldName" } ) ,
851+ any ( )
852+ ) . optWhitespace ( ) . branch ( ) . split (
853+ char ( "-" ) . char ( ">" ) . optWhitespace ( )
854+ . id ( { class : "variable" , type : "sqlFieldName" } ) . optWhitespace ( ) . merge ( ) ,
855+ any ( )
856+ ) . exit ( ) . end ( ) ;
857+
858+ rule ( "SQLSelect" ) . split (
859+ id ( { CI , value : "top" , class : "keyword" } ) . whitespace ( ) . constant ( ) . whitespace ( ) ,
860+ any ( )
861+ ) . branch ( ) . split (
862+ char ( { value : "*" , class : "special" } ) ,
863+ call ( "SQLVar" ) . split (
864+ id ( { CI , value : "as" , class : "keyword" } ) . whitespace ( ) . id ( { class : "variable" } )
865+ . optWhitespace ( ) ,
859866 any ( )
860867 ) . split (
861- char ( { value : "*" , class : "special" } ) ,
862- branch ( ) . id ( { class : "variable" , type : "sqlFieldName" } ) . optWhitespace ( ) . branch ( ) . split (
863- char ( "-" ) . char ( ">" ) . optWhitespace ( )
864- . id ( { class : "variable" , type : "sqlFieldName" } ) . optWhitespace ( ) . merge ( ) ,
865- any ( )
866- ) . split (
867- id ( { CI , value : "as" , class : "keyword" } ) . whitespace ( ) . id ( { class : "variable" } )
868- . optWhitespace ( ) ,
869- any ( )
870- ) . split (
871- char ( "," ) . optWhitespace ( ) . merge ( ) ,
872- any ( )
873- )
874- ) . whitespace ( ) . call ( "SQLFrom" ) . whitespace ( ) . split (
875- id ( { CI , value : "where" , class : "keyword" } ) . whitespace ( ) . call ( "SQLExpression" )
876- . whitespace ( ) ,
868+ char ( "," ) . optWhitespace ( ) . merge ( ) ,
869+ any ( )
870+ )
871+ ) . whitespace ( ) . call ( "SQLFrom" ) . optWhitespace ( ) . split (
872+ id ( { CI , value : "where" , class : "keyword" } ) . whitespace ( ) . call ( "SQLExpression" ) ,
873+ any ( )
874+ ) . optWhitespace ( ) . split (
875+ id ( { CI , value : "order" , class : "keyword" } ) . whitespace ( )
876+ . id ( { CI , value : "by" , class : "keyword" } ) . whitespace ( )
877+ . branch ( ) . id ( { class : "variable" , type : "sqlFieldName" } ) . optWhitespace ( ) . split (
878+ id ( { CI , value : "desc" , class : "keyword" } ) . optWhitespace ( ) ,
879+ id ( { CI , value : "asc" , class : "keyword" } ) . optWhitespace ( ) ,
877880 any ( )
878881 ) . split (
879- id ( { CI , value : "order" , class : "keyword" } ) . whitespace ( )
880- . id ( { CI , value : "by" , class : "keyword" } ) . whitespace ( )
881- . branch ( ) . id ( { class : "variable" , type : "sqlFieldName" } ) . optWhitespace ( ) . split (
882- id ( { CI , value : "desc" , class : "keyword" } ) . optWhitespace ( ) ,
883- id ( { CI , value : "asc" , class : "keyword" } ) . optWhitespace ( ) ,
884- any ( )
885- ) . split (
886- char ( "," ) . optWhitespace ( ) . merge ( ) ,
887- any ( )
888- ) ,
882+ char ( "," ) . optWhitespace ( ) . merge ( ) ,
889883 any ( )
890- )
884+ ) ,
885+ any ( )
891886) . exit ( ) . end ( ) ;
892887
888+ rule ( "SQLUpdate" ) . call ( "SQLClassName" ) . whitespace ( )
889+ . id ( { CI , value : "set" , class : "keyword" } ) . whitespace ( )
890+ . branch ( )
891+ . id ( { type : "sqlFieldName" , class : "variable" } ) . optWhitespace ( ) . char ( "=" ) . optWhitespace ( )
892+ . call ( "SQLExpression" ) . optWhitespace ( ) . split (
893+ char ( "," ) . optWhitespace ( ) . merge ( ) ,
894+ any ( )
895+ )
896+ . id ( { CI , value : "where" , class : "keyword" } )
897+ . whitespace ( )
898+ . call ( "SQLExpression" ) . exit ( ) . end ( ) ;
899+
900+ rule ( "SQLDelete" ) . call ( "SQLFrom" ) . whitespace ( )
901+ . id ( { CI , value : "where" , class : "keyword" } ) . whitespace ( ) . call ( "SQLExpression" ) . exit ( ) . end ( ) ;
902+
893903rule ( "SQLFrom" ) . id ( { CI , value : "from" , class : "keyword" } ) . whitespace ( ) . call ( "SQLClassName" )
894904 . exit ( ) . end ( ) ;
895905
@@ -906,9 +916,18 @@ rule("SQLClassName").split(
906916) ) . exit ( ) . end ( ) ;
907917
908918rule ( "SQLExpression" ) . split (
919+
909920 constant ( ) ,
910- char ( "(" ) . optWhitespace ( ) . call ( "SQLExpression" ) . optWhitespace ( ) . char ( ")" ) ,
921+
922+ char ( "(" ) . optWhitespace ( ) . split (
923+ id ( { CI , value : "delete" , class : "keyword" } ) . whitespace ( ) . call ( "SQLDelete" ) . optWhitespace ( ) ,
924+ id ( { CI , value : "update" , class : "keyword" } ) . whitespace ( ) . call ( "SQLUpdate" ) . optWhitespace ( ) ,
925+ id ( { CI , value : "select" , class : "keyword" } ) . whitespace ( ) . call ( "SQLSelect" ) . optWhitespace ( ) ,
926+ call ( "SQLExpression" ) . optWhitespace ( )
927+ ) . char ( ")" ) ,
928+
911929 id ( { CI , value : "not" , class : "keyword" } ) . optWhitespace ( ) . call ( "SQLExpression" ) ,
930+
912931 char ( { value : "'" , class : "string" } ) . branch ( ) . split (
913932 char ( { value : "'" , class : "string" } ) ,
914933 split (
@@ -919,11 +938,13 @@ rule("SQLExpression").split(
919938 whitespace ( )
920939 ) . merge ( )
921940 ) ,
941+
922942 id ( { class : "variable" , type : "sqlFieldName" } ) . split (
923943 char ( { value : "_" , class : "variable" , type : "sqlFieldName" } )
924944 . id ( { class : "variable" , type : "sqlFieldName" } ) ,
925945 any ( )
926946 )
947+
927948) . optWhitespace ( ) . split (
928949 split (
929950 char ( "+" ) ,
0 commit comments