match = re.match(child_line_pattern, line)
if match is None:
- raise MalformedCNF("Syntax error in child line \"\"\"%s\"\"\"" % line)
+ raise MalformedCNF("Syntax error in child line \"\"\"%s\"\"\""
+ % from_latin1 (line))
number, parent, varname, instance, data, comment = match.groups()
return {
"number" : marshal_in_number (number),
return (state, lines, None)
if new_parent > parent:
# parent is further down in hierarchy -> new level
- (state, children, new_parent) = parse_cnf_children(
- state, new_parent)
+ (state, children, new_parent) = \
+ parse_cnf_children (state, new_parent)
cnf_line["children"] = children
current = get(state)
+ new_parent = get_parent(current)
+ if new_parent is None:
+ # drop stack
+ return (state, lines, None)
if new_parent < parent:
# parent is further up in hierarchy -> pop level
return (state, lines, new_parent)