2023-09-03 23:15:21 -07:00
|
|
|
root: Node
|
|
|
|
types:
|
|
|
|
Expression:
|
|
|
|
parent: Node
|
|
|
|
Symbol:
|
|
|
|
parent: Node
|
2023-09-04 18:38:09 -07:00
|
|
|
values:
|
|
|
|
- name: id
|
|
|
|
type: String
|
2023-09-03 23:15:21 -07:00
|
|
|
Declaration:
|
|
|
|
parent: Node
|
|
|
|
Definition:
|
|
|
|
parent: Node
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
2023-09-04 18:38:09 -07:00
|
|
|
required: true
|
2023-09-03 23:15:21 -07:00
|
|
|
- name: modifiers
|
|
|
|
type: DefinitionModifiers
|
2023-09-04 18:38:09 -07:00
|
|
|
required: true
|
2023-09-03 23:15:21 -07:00
|
|
|
DefinitionModifiers:
|
|
|
|
values:
|
|
|
|
- name: export
|
|
|
|
type: Boolean
|
|
|
|
Block:
|
|
|
|
parent: Node
|
|
|
|
values:
|
|
|
|
- name: expressions
|
|
|
|
type: List<Expression>
|
|
|
|
CompilationUnit:
|
|
|
|
parent: Node
|
|
|
|
values:
|
|
|
|
- name: declarations
|
|
|
|
type: List<Declaration>
|
|
|
|
- name: definitions
|
2023-09-04 21:50:27 -07:00
|
|
|
type: List<Definition>
|
2023-09-04 18:38:09 -07:00
|
|
|
LetAssignment:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
|
|
|
- name: value
|
|
|
|
type: Expression
|
2023-09-10 04:34:50 -04:00
|
|
|
VarAssignment:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
|
|
|
- name: value
|
|
|
|
type: Expression
|
|
|
|
SetAssignment:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
|
|
|
- name: value
|
|
|
|
type: Expression
|
2023-09-04 18:38:09 -07:00
|
|
|
InfixOperator:
|
|
|
|
values:
|
|
|
|
- name: token
|
|
|
|
type: String
|
|
|
|
enums:
|
|
|
|
- name: Plus
|
|
|
|
values:
|
|
|
|
token: "+"
|
|
|
|
- name: Minus
|
|
|
|
values:
|
|
|
|
token: "-"
|
|
|
|
- name: Multiply
|
|
|
|
values:
|
|
|
|
token: "*"
|
|
|
|
- name: Divide
|
|
|
|
values:
|
|
|
|
token: "/"
|
|
|
|
- name: Equals
|
|
|
|
values:
|
|
|
|
token: "=="
|
|
|
|
- name: NotEquals
|
|
|
|
values:
|
|
|
|
token: "!="
|
2023-09-10 12:41:20 +10:00
|
|
|
- name: EuclideanModulo
|
|
|
|
values:
|
|
|
|
token: "mod"
|
|
|
|
- name: Remainder
|
|
|
|
values:
|
|
|
|
token: "rem"
|
2023-09-10 04:34:50 -04:00
|
|
|
- name: Lesser
|
|
|
|
values:
|
|
|
|
token: "<"
|
|
|
|
- name: Greater
|
|
|
|
values:
|
|
|
|
token: ">"
|
|
|
|
- name: GreaterEqual
|
|
|
|
values:
|
|
|
|
token: ">="
|
|
|
|
- name: LesserEqual
|
|
|
|
values:
|
|
|
|
token: "<="
|
2023-09-04 18:38:09 -07:00
|
|
|
InfixOperation:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: left
|
|
|
|
type: Expression
|
|
|
|
- name: op
|
|
|
|
type: InfixOperator
|
|
|
|
- name: right
|
|
|
|
type: Expression
|
|
|
|
BooleanLiteral:
|
2023-09-03 23:15:21 -07:00
|
|
|
parent: Expression
|
|
|
|
values:
|
2023-09-04 18:38:09 -07:00
|
|
|
- name: value
|
|
|
|
type: Boolean
|
|
|
|
FunctionCall:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
|
|
|
- name: arguments
|
|
|
|
type: List<Expression>
|
|
|
|
FunctionDefinition:
|
|
|
|
parent: Definition
|
|
|
|
values:
|
|
|
|
- name: modifiers
|
|
|
|
type: DefinitionModifiers
|
2023-09-03 23:15:21 -07:00
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
2023-09-04 18:38:09 -07:00
|
|
|
- name: arguments
|
|
|
|
type: List<Symbol>
|
|
|
|
- name: block
|
2023-09-06 19:07:28 -07:00
|
|
|
type: Block?
|
|
|
|
- name: native
|
|
|
|
type: Native?
|
2023-09-04 18:38:09 -07:00
|
|
|
If:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: condition
|
|
|
|
type: Expression
|
2023-09-06 19:07:28 -07:00
|
|
|
- name: thenBlock
|
|
|
|
type: Block
|
|
|
|
- name: elseBlock
|
|
|
|
type: Block?
|
2023-09-04 18:38:09 -07:00
|
|
|
ImportDeclaration:
|
|
|
|
parent: Declaration
|
|
|
|
values:
|
2023-09-06 21:39:57 -07:00
|
|
|
- name: form
|
2023-09-06 22:43:03 -07:00
|
|
|
type: Symbol
|
|
|
|
- name: components
|
|
|
|
type: List<Symbol>
|
2023-09-09 00:08:30 -04:00
|
|
|
IntegerLiteral:
|
2023-09-04 18:38:09 -07:00
|
|
|
parent: Expression
|
|
|
|
values:
|
2023-09-03 23:15:21 -07:00
|
|
|
- name: value
|
2023-09-04 18:38:09 -07:00
|
|
|
type: Int
|
2023-09-09 00:08:30 -04:00
|
|
|
DoubleLiteral:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: value
|
|
|
|
type: Double
|
2023-09-04 18:38:09 -07:00
|
|
|
ListLiteral:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: items
|
|
|
|
type: List<Expression>
|
|
|
|
Parentheses:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: expression
|
|
|
|
type: Expression
|
|
|
|
PrefixOperator:
|
|
|
|
values:
|
|
|
|
- name: token
|
|
|
|
type: String
|
|
|
|
enums:
|
|
|
|
- name: Negate
|
|
|
|
values:
|
|
|
|
token: "!"
|
|
|
|
PrefixOperation:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: op
|
|
|
|
type: PrefixOperator
|
|
|
|
- name: expression
|
2023-09-03 23:15:21 -07:00
|
|
|
type: Expression
|
2023-09-04 18:38:09 -07:00
|
|
|
StringLiteral:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: text
|
|
|
|
type: String
|
|
|
|
SymbolReference:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: symbol
|
|
|
|
type: Symbol
|
2023-09-06 19:07:28 -07:00
|
|
|
While:
|
|
|
|
parent: Expression
|
|
|
|
values:
|
|
|
|
- name: condition
|
|
|
|
type: Expression
|
|
|
|
- name: block
|
|
|
|
type: Block
|
|
|
|
Break:
|
|
|
|
parent: Expression
|
|
|
|
values: []
|
|
|
|
Continue:
|
|
|
|
parent: Expression
|
|
|
|
values: []
|
|
|
|
Native:
|
|
|
|
parent: Node
|
|
|
|
values:
|
|
|
|
- name: form
|
|
|
|
type: Symbol
|
|
|
|
- name: definition
|
|
|
|
type: StringLiteral
|