| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from __future__ import annotations
- from dataclasses import dataclass
- import src.zelkelc.ast.values as values
- import src.zelkelc.ast.scope as scope
- @dataclass
- class ClassDeclaration:
- name: str
- members: list[ValueDeclaration]
- methods: list[FunctionDeclaration]
- @dataclass
- class ValueDeclaration:
- name: str
- mutable: bool
- typ: values.Value
- expr: Expression
-
- @dataclass
- class FunctionDeclaration:
- name: str
- typ: values.Value
- static: bool
- args: dict[str, values.Value]
- body: list[Node]
-
- @dataclass
- class ReturnStatement:
- expr: Expression | None
- Node = ClassDeclaration | ValueDeclaration | FunctionDeclaration
- @dataclass
- class BinaryExpression:
- left: Expression
- right: Expression
- op: str
- @dataclass
- class UnaryExpression:
- expr: Expression
- sign: str
- @dataclass
- class PrimaryExpression:
- value: values.Value
- Expression = BinaryExpression | UnaryExpression | PrimaryExpression
|