diff --git a/src/parse.py b/src/parse.py index f7f6202..13df2cc 100644 --- a/src/parse.py +++ b/src/parse.py @@ -45,6 +45,7 @@ PARSE_SUCCESS = enum.auto() # pragma: no mutate PARSE_FAILURE = enum.auto() # pragma: no mutate PARSE_DIRECTIVE = enum.auto() # pragma: no mutate + PARSE_FILE = enum.auto() # pragma: no mutate # Context used for parse error exception @@ -285,6 +286,17 @@ else: return self.parse_statement(stream, context, "Done") + # Parses a file + def parse_file(self, stream, parent_context): + context = ParseContext(ParseTask.PARSE_FILE, stream.peek(), parent_context) + directives = [] + next = stream.peek() + while next is not None: + dir = self.parse_directive(stream, context) # pragma: no mutate + directives.append(dir) + next = stream.peek() + return directives + # Parses tokens def parse(tokens, context):