mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-07 13:24:39 +08:00
Simplify error recovery for suites
This commit is contained in:
@@ -26,13 +26,36 @@ def test_one_line_function(each_version):
|
||||
assert func.children[-1] == ':'
|
||||
|
||||
|
||||
def test_if_else():
|
||||
module = parse('if x:\n f.\nelse:\n g(')
|
||||
if_stmt = module.children[0]
|
||||
if_, test, colon, suite1, else_, colon, suite2 = if_stmt.children
|
||||
f = suite1.children[1]
|
||||
assert f.type == 'error_node'
|
||||
assert f.children[0].value == 'f'
|
||||
assert f.children[1].value == '.'
|
||||
g = suite2.children[1]
|
||||
assert g.children[0].value == 'g'
|
||||
assert g.children[1].value == '('
|
||||
|
||||
|
||||
def test_if_stmt():
|
||||
module = parse('if x: f.')# \nelse: g(
|
||||
module = parse('if x: f.\nelse: g(')
|
||||
if_stmt = module.children[0]
|
||||
assert if_stmt.type == 'if_stmt'
|
||||
if_, test, colon, f = if_stmt.children
|
||||
assert f.type == 'error_node'
|
||||
assert f.children[0].value == 'f'
|
||||
assert f.children[1].value == '.'
|
||||
#assert g.children[0].value == 'g'
|
||||
#assert g.children[1].value == '('
|
||||
|
||||
assert module.children[1].type == 'newline'
|
||||
assert module.children[1].value == '\n'
|
||||
assert module.children[2].type == 'error_leaf'
|
||||
assert module.children[2].value == 'else'
|
||||
assert module.children[3].type == 'error_leaf'
|
||||
assert module.children[3].value == ':'
|
||||
|
||||
in_else_stmt = module.children[4]
|
||||
assert in_else_stmt.type == 'error_node'
|
||||
assert in_else_stmt.children[0].value == 'g'
|
||||
assert in_else_stmt.children[1].value == '('
|
||||
|
||||
Reference in New Issue
Block a user