Source

hello / sql / sql_parser.mly

Diff from to

sql/sql_parser.mly

 %{
 
   open Printf
-  let _ = Parsing.set_trace false;;
+  let _ = Parsing.set_trace true;;
   let debugprint = ref true;;
   
   let print str = if !debugprint then print_endline str;;
 %token COMMA
 %token ASTERISK
 %token GT LT EQ NEQ NOT
-%token EOF
+%token EQUAL
 
 %token <int> INT
 
 %token <string> LITERAL
+%token <string> QUOTE
 
 %start input
 %type <Sql.query> input
 input: | exp { $1 };
 
 exp:
-  | SELECT ASTERISK FROM LITERAL { Sql.Select(Sql.All_col, $4) };
-  | SELECT columns  FROM LITERAL { Sql.Select(Sql.Columns($2), $4) };
+  | SELECT ASTERISK FROM LITERAL { Sql.Select(Sql.All_col, $4, []) }
+  | SELECT columns  FROM LITERAL { Sql.Select(Sql.Columns($2), $4, []) }
+  | SELECT ASTERISK FROM LITERAL where_clause { Sql.Select(Sql.All_col, $4, $5) }
+  | SELECT columns  FROM LITERAL where_clause { Sql.Select(Sql.Columns($2), $4, $5) }
 
 columns:
   | LITERAL  { [$1] }
   | LITERAL COMMA columns { $1::$3 }
-;
+
+where_clause:
+  | WHERE LITERAL EQUAL QUOTE { [ Sql.Equal_s($2, $4)] }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.