summaryrefslogtreecommitdiff
path: root/reconfigure/parsers/nginx.py
diff options
context:
space:
mode:
Diffstat (limited to 'reconfigure/parsers/nginx.py')
-rw-r--r--reconfigure/parsers/nginx.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/reconfigure/parsers/nginx.py b/reconfigure/parsers/nginx.py
index 421a483..06b18b4 100644
--- a/reconfigure/parsers/nginx.py
+++ b/reconfigure/parsers/nginx.py
@@ -9,8 +9,8 @@ class NginxParser (BaseParser):
"""
tokens = [
- (r"[\w_]+\s*?.*?{", lambda s, t: ('section_start', t)),
- (r"[\w_]+?.+?;", lambda s, t: ('option', t)),
+ (r"[\w_]+\s*?[^\n]*?{", lambda s, t: ('section_start', t)),
+ (r"[\w_]+?(?:[^\"]+?(?:\".*?\")?)+?;", lambda s, t: ('option', t)),
(r"\s", lambda s, t: 'whitespace'),
(r"$^", lambda s, t: 'newline'),
(r"\#.*?\n", lambda s, t: ('comment', t)),
@@ -20,7 +20,7 @@ class NginxParser (BaseParser):
token_section_end = '}'
def parse(self, content):
- scanner = re.Scanner(self.tokens)
+ scanner = re.Scanner(self.tokens, re.DOTALL)
tokens, remainder = scanner.scan(' '.join(filter(None, content.split(' '))))
if remainder:
raise Exception('Invalid tokens: %s. Tokens: %s' % (remainder, tokens))