From: Oleg Broytman Date: Tue, 20 May 2014 02:59:30 +0000 (+0400) Subject: Parse the query and report lexer errors X-Git-Tag: v0.1~21 X-Git-Url: https://git.phdru.name/?p=phdru.name%2Fcgi-bin%2Fblog-ru%2Fsearch-tags.git;a=commitdiff_plain;h=805b4f5ed00d30d3e39a19fc2d6d0afa65e86e92 Parse the query and report lexer errors --- diff --git a/search-tags.py b/search-tags.py index cbac10c..9bdfc8b 100755 --- a/search-tags.py +++ b/search-tags.py @@ -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)