aboutsummaryrefslogtreecommitdiff
path: root/compilador/parse/unit.py
diff options
context:
space:
mode:
Diffstat (limited to 'compilador/parse/unit.py')
-rw-r--r--compilador/parse/unit.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/compilador/parse/unit.py b/compilador/parse/unit.py
new file mode 100644
index 0000000..954b8b4
--- /dev/null
+++ b/compilador/parse/unit.py
@@ -0,0 +1,15 @@
+
+from errors import Error
+from astree.unit import Unit
+from parse.base import BaseParser
+from parse.decl import ParseDecl
+
+class ParseUnit:
+ def __init__(self, parser: BaseParser):
+ self.parser: BaseParser = parser
+
+ def unit(self) -> (Unit | Error):
+ decls = ParseDecl(self.parser).decls()
+ if type(decls) is Error:
+ return decls
+ return Unit(decls = decls)