diff options
Diffstat (limited to 'compilador/astree/type.py')
-rw-r--r-- | compilador/astree/type.py | 29 |
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 |