Skip to content
Snippets Groups Projects
Commit 47a2e5f5 authored by Taddeüs Kroes's avatar Taddeüs Kroes
Browse files

Parser now recognizes properties at the end of a block without semicolon

parent efb00ab5
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,16 @@ def parse_groups(css): ...@@ -21,6 +21,16 @@ def parse_groups(css):
selectors = None selectors = None
comment = False comment = False
def parse_property():
assert selectors is not None
if stack.strip():
parts = stack.split(':', 1)
assert len(parts) == 2
name, value = map(str.strip, parts)
assert '\n' not in name
properties.append((name, value))
try: try:
for c in css: for c in css:
char = c char = c
...@@ -41,6 +51,9 @@ def parse_groups(css): ...@@ -41,6 +51,9 @@ def parse_groups(css):
stack = '' stack = ''
assert len(selectors) assert len(selectors)
elif c == '}': elif c == '}':
# Last property may not have been closed with a semicolon
parse_property()
if selectors is None: if selectors is None:
# Closing group # Closing group
current_group = root_group current_group = root_group
...@@ -51,15 +64,8 @@ def parse_groups(css): ...@@ -51,15 +64,8 @@ def parse_groups(css):
properties = [] properties = []
elif c == ';': elif c == ';':
# Property definition # Property definition
assert selectors is not None parse_property()
stack = ''
if stack.strip():
parts = stack.split(':', 1)
assert len(parts) == 2
name, value = map(str.strip, parts)
assert '\n' not in name
properties.append((name, value))
stack = ''
elif c == '*' and prev_char == '/': elif c == '*' and prev_char == '/':
# Comment start # Comment start
comment = True comment = True
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment