diff --git a/src/parse.py b/src/parse.py index 13df2cc..ef5fab7 100644 --- a/src/parse.py +++ b/src/parse.py @@ -302,4 +302,6 @@ def parse(tokens, context): stream = TokenStream(tokens) cleared = NoteSkipper().clear_notes(stream, context) - return cleared + stream2 = TokenStream(cleared) + parsed = Parser().parse_file(stream2, context) + return parsed diff --git a/tests/parse/test_parse.py b/tests/parse/test_parse.py index 66cb222..2ffa53d 100644 --- a/tests/parse/test_parse.py +++ b/tests/parse/test_parse.py @@ -15,6 +15,7 @@ ParseErrorException, ParseTask, ParseContext, + Parser, parse, ) from src.token import TokenStream @@ -87,17 +88,20 @@ # Tests the parser wrapper works correctly # We expect the following behaviour: # - Notes to be removed from the tokens +# - The remaining tokens to be parsed as a file @given(lists(draw_token_random()), draw_parse_context()) def test_parse_fuzz(tokens, context): result = None parsed = None try: stream = TokenStream(tokens.copy()) - result = NoteSkipper().clear_notes(stream, context) + cleared = NoteSkipper().clear_notes(stream, context) + stream2 = TokenStream(cleared) + result = Parser().parse_file(stream2, context) except ParseErrorException as e: result = e try: - parsed = parse(tokens, context) + parsed = parse(tokens.copy(), context) except ParseErrorException as e: parsed = e assert parsed == result