diff --git a/compiler.py b/compiler.py index fbbb6cf..35939cf 100644 --- a/compiler.py +++ b/compiler.py @@ -524,27 +524,6 @@ class LiteralExpression(Expression): return s -class EnclosedExpression(Expression): - - _file_info: FileInfo - _expression: Expression - - def __init__( - self, - file_info: FileInfo, - expression: Expression, - ): - self._file_info = file_info - self._expression = expression - - def has_pi(self) -> bool: return self._expression.has_pi() - - def tree_str(self, pre: str = "", pre_cont: str = "") -> str: - s: str = f"{pre} Enclosed Expression\n" - s += self._expression.tree_str(f"{pre_cont}└─", f"{pre_cont} ") - return s - - class UnaryOperator(Enum): Negate = "-" Factorial = "!" @@ -1603,8 +1582,7 @@ def _expression_sa(tokens: list[Token]) -> Expression: "Expected expression between '(' and ')'.", fi) token = tokens.pop(0) last_token = tokens.pop(-1) - fi = token.file_info + last_token.file_info - try: return EnclosedExpression(fi,_expression_sa(tokens)) + try: return _expression_sa(tokens) except ExpressionError as err: raise ExpectedExpression(str(err),last_token) diff --git a/syntax.txt b/syntax.txt index bdfc832..5e321f0 100644 --- a/syntax.txt +++ b/syntax.txt @@ -34,44 +34,38 @@ File ├─ X │ └─ Binary Expression (BinaryOperator.Addition) │ ├─ Binary Expression (BinaryOperator.Multiplication) - │ │ ├─ Enclosed Expression - │ │ │ └─ Binary Expression (BinaryOperator.Subtraction) - │ │ │ ├─ Literal Expression (R) - │ │ │ └─ Literal Expression (r) + │ │ ├─ Binary Expression (BinaryOperator.Subtraction) + │ │ │ ├─ Literal Expression (R) + │ │ │ └─ Literal Expression (r) │ │ └─ Function Call (cos) │ │ └─ Literal Expression (t) │ └─ Binary Expression (BinaryOperator.Multiplication) │ ├─ Literal Expression (d) │ └─ Function Call (cos) │ └─ Binary Expression (BinaryOperator.Multiplication) - │ ├─ Enclosed Expression - │ │ └─ Binary Expression (BinaryOperator.Division) - │ │ ├─ Enclosed Expression - │ │ │ └─ Binary Expression (BinaryOperator.Subtraction) - │ │ │ ├─ Literal Expression (R) - │ │ │ └─ Literal Expression (r) - │ │ └─ Literal Expression (r) + │ ├─ Binary Expression (BinaryOperator.Division) + │ │ ├─ Binary Expression (BinaryOperator.Subtraction) + │ │ │ ├─ Literal Expression (R) + │ │ │ └─ Literal Expression (r) + │ │ └─ Literal Expression (r) │ └─ Literal Expression (t) ├─ Y │ └─ Binary Expression (BinaryOperator.Subtraction) │ ├─ Binary Expression (BinaryOperator.Multiplication) - │ │ ├─ Enclosed Expression - │ │ │ └─ Binary Expression (BinaryOperator.Subtraction) - │ │ │ ├─ Literal Expression (R) - │ │ │ └─ Literal Expression (r) + │ │ ├─ Binary Expression (BinaryOperator.Subtraction) + │ │ │ ├─ Literal Expression (R) + │ │ │ └─ Literal Expression (r) │ │ └─ Function Call (sin) │ │ └─ Literal Expression (t) │ └─ Binary Expression (BinaryOperator.Multiplication) │ ├─ Literal Expression (d) │ └─ Function Call (sin) │ └─ Binary Expression (BinaryOperator.Multiplication) - │ ├─ Enclosed Expression - │ │ └─ Binary Expression (BinaryOperator.Division) - │ │ ├─ Enclosed Expression - │ │ │ └─ Binary Expression (BinaryOperator.Subtraction) - │ │ │ ├─ Literal Expression (R) - │ │ │ └─ Literal Expression (r) - │ │ └─ Literal Expression (r) + │ ├─ Binary Expression (BinaryOperator.Division) + │ │ ├─ Binary Expression (BinaryOperator.Subtraction) + │ │ │ ├─ Literal Expression (R) + │ │ │ └─ Literal Expression (r) + │ │ └─ Literal Expression (r) │ └─ Literal Expression (t) ├─ T │ └─ Inline Animation @@ -89,13 +83,10 @@ File │ │ └─ Literal Expression (32) │ └─ Direction: AnimationDirection.Increase └─ C_w - └─ Enclosed Expression - └─ Binary Expression (BinaryOperator.Division) - ├─ Enclosed Expression - │ └─ Binary Expression (BinaryOperator.Subtraction) - │ ├─ Literal Expression (t) - │ └─ Literal Expression (s) - └─ Enclosed Expression - └─ Binary Expression (BinaryOperator.Subtraction) - ├─ Literal Expression (e) - └─ Literal Expression (s) + └─ Binary Expression (BinaryOperator.Division) + ├─ Binary Expression (BinaryOperator.Subtraction) + │ ├─ Literal Expression (t) + │ └─ Literal Expression (s) + └─ Binary Expression (BinaryOperator.Subtraction) + ├─ Literal Expression (e) + └─ Literal Expression (s)