]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/commitdiff
Parse the query and report lexer errors
authorOleg Broytman <phd@phdru.name>
Tue, 20 May 2014 02:59:30 +0000 (06:59 +0400)
committerOleg Broytman <phd@phdru.name>
Tue, 20 May 2014 04:31:56 +0000 (08:31 +0400)
search-tags.py

index cbac10c6bbdac3eee8d9b171667938976afdfeeb..9bdfc8bb5bc1e4cd6711e6f7f4caad5fe5bc464c 100755 (executable)
@@ -6,8 +6,10 @@ __copyright__ = "Copyright (C) 2014 PhiloSoft Design"
 __license__ = "GNU GPL"
 
 import cgi
-from parse_query import parser
+from ply.lex import LexError
+
 from html.response import response
+from parser.parser import parser
 
 form = cgi.FieldStorage()
 if not form.has_key('q'):
@@ -15,4 +17,15 @@ if not form.has_key('q'):
     title = "Error!"
     body = "Required parameter is missing!"
 
+else:
+    q = form['q'].value
+    try:
+        tree = parser.parse(q)
+    except LexError:
+        tree = None
+    if tree is None:
+        status = "400 Bad request"
+        title = "Error!"
+        body = "Bad query syntax!"
+
 response(title, body, status)