aboutsummaryrefslogtreecommitdiff
path: root/compilador/astree/type.py
diff options
context:
space:
mode:
Diffstat (limited to 'compilador/astree/type.py')
-rw-r--r--compilador/astree/type.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/compilador/astree/type.py b/compilador/astree/type.py
new file mode 100644
index 0000000..5389702
--- /dev/null
+++ b/compilador/astree/type.py
@@ -0,0 +1,29 @@
+from dataclasses import dataclass
+from typing import List
+from enum import Enum
+
+from tabla import Token
+
+Type = None
+
+# A built-in primitive type (int, bool, str, etc).
+class BuiltinType(Enum):
+ BOOLEAN = Token.BOOLEAN
+ STRING = Token.STRING
+ CHAR = Token.CHAR
+ INT = Token.INT
+ VOID = Token.VOID
+
+# A parameter to a function type.
+@dataclass
+class FuncParam:
+ name: str
+ _type: Type
+
+# funcion vacio ... (a: int, b: int ...)
+@dataclass
+class FuncType:
+ result: Type
+ params: List[FuncParam]
+
+Type = BuiltinType