Removed redundant expression type
This commit is contained in:
parent
dbd1e646e6
commit
3d07510cf7
24
compiler.py
24
compiler.py
|
@ -524,27 +524,6 @@ class LiteralExpression(Expression):
|
||||||
return s
|
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):
|
class UnaryOperator(Enum):
|
||||||
Negate = "-"
|
Negate = "-"
|
||||||
Factorial = "!"
|
Factorial = "!"
|
||||||
|
@ -1603,8 +1582,7 @@ def _expression_sa(tokens: list[Token]) -> Expression:
|
||||||
"Expected expression between '(' and ')'.", fi)
|
"Expected expression between '(' and ')'.", fi)
|
||||||
token = tokens.pop(0)
|
token = tokens.pop(0)
|
||||||
last_token = tokens.pop(-1)
|
last_token = tokens.pop(-1)
|
||||||
fi = token.file_info + last_token.file_info
|
try: return _expression_sa(tokens)
|
||||||
try: return EnclosedExpression(fi,_expression_sa(tokens))
|
|
||||||
except ExpressionError as err:
|
except ExpressionError as err:
|
||||||
raise ExpectedExpression(str(err),last_token)
|
raise ExpectedExpression(str(err),last_token)
|
||||||
|
|
||||||
|
|
55
syntax.txt
55
syntax.txt
|
@ -34,44 +34,38 @@ File
|
||||||
├─ X
|
├─ X
|
||||||
│ └─ Binary Expression (BinaryOperator.Addition)
|
│ └─ Binary Expression (BinaryOperator.Addition)
|
||||||
│ ├─ Binary Expression (BinaryOperator.Multiplication)
|
│ ├─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ │ ├─ Enclosed Expression
|
│ │ ├─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ │ │ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ │ │ ├─ Literal Expression (R)
|
||||||
│ │ │ ├─ Literal Expression (R)
|
│ │ │ └─ Literal Expression (r)
|
||||||
│ │ │ └─ Literal Expression (r)
|
|
||||||
│ │ └─ Function Call (cos)
|
│ │ └─ Function Call (cos)
|
||||||
│ │ └─ Literal Expression (t)
|
│ │ └─ Literal Expression (t)
|
||||||
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ ├─ Literal Expression (d)
|
│ ├─ Literal Expression (d)
|
||||||
│ └─ Function Call (cos)
|
│ └─ Function Call (cos)
|
||||||
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ ├─ Enclosed Expression
|
│ ├─ Binary Expression (BinaryOperator.Division)
|
||||||
│ │ └─ Binary Expression (BinaryOperator.Division)
|
│ │ ├─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ │ ├─ Enclosed Expression
|
│ │ │ ├─ Literal Expression (R)
|
||||||
│ │ │ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ │ │ └─ Literal Expression (r)
|
||||||
│ │ │ ├─ Literal Expression (R)
|
│ │ └─ Literal Expression (r)
|
||||||
│ │ │ └─ Literal Expression (r)
|
|
||||||
│ │ └─ Literal Expression (r)
|
|
||||||
│ └─ Literal Expression (t)
|
│ └─ Literal Expression (t)
|
||||||
├─ Y
|
├─ Y
|
||||||
│ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ └─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ ├─ Binary Expression (BinaryOperator.Multiplication)
|
│ ├─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ │ ├─ Enclosed Expression
|
│ │ ├─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ │ │ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ │ │ ├─ Literal Expression (R)
|
||||||
│ │ │ ├─ Literal Expression (R)
|
│ │ │ └─ Literal Expression (r)
|
||||||
│ │ │ └─ Literal Expression (r)
|
|
||||||
│ │ └─ Function Call (sin)
|
│ │ └─ Function Call (sin)
|
||||||
│ │ └─ Literal Expression (t)
|
│ │ └─ Literal Expression (t)
|
||||||
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ ├─ Literal Expression (d)
|
│ ├─ Literal Expression (d)
|
||||||
│ └─ Function Call (sin)
|
│ └─ Function Call (sin)
|
||||||
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
│ └─ Binary Expression (BinaryOperator.Multiplication)
|
||||||
│ ├─ Enclosed Expression
|
│ ├─ Binary Expression (BinaryOperator.Division)
|
||||||
│ │ └─ Binary Expression (BinaryOperator.Division)
|
│ │ ├─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ │ ├─ Enclosed Expression
|
│ │ │ ├─ Literal Expression (R)
|
||||||
│ │ │ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ │ │ └─ Literal Expression (r)
|
||||||
│ │ │ ├─ Literal Expression (R)
|
│ │ └─ Literal Expression (r)
|
||||||
│ │ │ └─ Literal Expression (r)
|
|
||||||
│ │ └─ Literal Expression (r)
|
|
||||||
│ └─ Literal Expression (t)
|
│ └─ Literal Expression (t)
|
||||||
├─ T
|
├─ T
|
||||||
│ └─ Inline Animation
|
│ └─ Inline Animation
|
||||||
|
@ -89,13 +83,10 @@ File
|
||||||
│ │ └─ Literal Expression (32)
|
│ │ └─ Literal Expression (32)
|
||||||
│ └─ Direction: AnimationDirection.Increase
|
│ └─ Direction: AnimationDirection.Increase
|
||||||
└─ C_w
|
└─ C_w
|
||||||
└─ Enclosed Expression
|
└─ Binary Expression (BinaryOperator.Division)
|
||||||
└─ Binary Expression (BinaryOperator.Division)
|
├─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
├─ Enclosed Expression
|
│ ├─ Literal Expression (t)
|
||||||
│ └─ Binary Expression (BinaryOperator.Subtraction)
|
│ └─ Literal Expression (s)
|
||||||
│ ├─ Literal Expression (t)
|
└─ Binary Expression (BinaryOperator.Subtraction)
|
||||||
│ └─ Literal Expression (s)
|
├─ Literal Expression (e)
|
||||||
└─ Enclosed Expression
|
└─ Literal Expression (s)
|
||||||
└─ Binary Expression (BinaryOperator.Subtraction)
|
|
||||||
├─ Literal Expression (e)
|
|
||||||
└─ Literal Expression (s)
|
|
||||||
|
|
Loading…
Reference in New Issue