aboutsummaryrefslogtreecommitdiff
path: root/compilador/ast/expr.py
diff options
context:
space:
mode:
Diffstat (limited to 'compilador/ast/expr.py')
-rw-r--r--compilador/ast/expr.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/compilador/ast/expr.py b/compilador/ast/expr.py
deleted file mode 100644
index 646733f..0000000
--- a/compilador/ast/expr.py
+++ /dev/null
@@ -1,108 +0,0 @@
-from dataclasses import dataclass
-from enum import Enum, auto
-from typing import List, Optional
-
-from type import Type
-
-# An assignment expression
-#
-# a = 10
-@dataclass
-class AssignExpr:
- _object: Expr
- value: Expr
-
-# A binary arithmetic operator
-class BinarithmOp(Enum):
- BAND = '&'
- BOR = '|'
- DIV = '/'
- GT = '>'
- GTEQ = '>='
- LAND = '&&'
- LEQUAL = '=='
- LESS = '<'
- LESSEQ = '<='
- LOR = '||'
- MINUS = '-'
- NEQUAL = '!='
- PLUS = '+'
- TIMES = '*'
-
-# A binary arithmetic expression.
-#
-# a * b
-@dataclass
-class BinarithmExpr:
- op: BinarithmOp
- lvalue: Expr
- rvalue: Expr
-
-# A function call expression.
-#
-# foo(bar)
-@dataclass
-class CallExpr:
- lvalue: Expr,
- args: List[Expr]
-
-# A compound expression.
-#
-# {
-# foo;
-# bar;
-# // ...
-# }
-@dataclass
-class CompoundExpr:
- exprs: List[Expr]
-
-# A scalar value.
-Value = bool | str | int | type(None)
-
-# An integer constant.
-@dataclass
-class NumberConstant:
- value: int
-
-# A constant expression.
-ConstantExpr = Value | NumberConstant
-
-# A for loop.
-#
-# porcada (entero a = 0; a < b; a++) {}
-@dataclass
-class ForExpr:
- bindings: Optional[Expr]
- cond: Expr,
- afterthought: Optional[Expr]
- body: Expr
-
-# An if or if..else expression.
-#
-# si (a) { } sino { }
-@dataclass
-class IfExpr:
- cond: Expr,
- tbranch: Expr,
- fbranch: Optional[Expr]
-
-# A print statement.
-#
-# imprimir a
-PrintExpr = Expr
-
-# A read statement.
-#
-# leer a
-ReadExpr = Expr
-
-# A return statement.
-#
-# return a
-ReturnExpr = Optional[Expr]
-
-# A Javañol expression
-Expr = (AssignExpr | BinarithmExpr | CallExpr | ConstantExpr |
- ForExpr | IfExpr | CompoundExpr | PrintExpr |
- ReadExpr | ReturnExpr)