diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2022-10-27 16:21:12 +0200 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2022-10-27 16:21:12 +0200 |
| commit | 601a1a447aee462575c8de91677991750cb612e5 (patch) | |
| tree | 03e36f3406331675454b7069a0126c88e193ebba /src/server/symbol.odin | |
| parent | 42a1ceac0e9a080e11fa94d153c0dc5f3e24738b (diff) | |
Add support for matrix types
Diffstat (limited to 'src/server/symbol.odin')
| -rw-r--r-- | src/server/symbol.odin | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/symbol.odin b/src/server/symbol.odin index 0c6a4dc..215e01c 100644 --- a/src/server/symbol.odin +++ b/src/server/symbol.odin @@ -89,6 +89,12 @@ SymbolMapValue :: struct { value: ^ast.Expr, } +SymbolMatrixValue :: struct { + x: ^ast.Expr, + y: ^ast.Expr, + expr: ^ast.Expr, +} + /* Generic symbol that is used by the indexer for any variable type(constants, defined global variables, etc), */ @@ -113,6 +119,7 @@ SymbolValue :: union { SymbolSliceValue, SymbolBasicValue, SymbolUntypedValue, + SymbolMatrixValue, } SymbolFlag :: enum { @@ -178,6 +185,10 @@ free_symbol :: proc(symbol: Symbol, allocator: mem.Allocator) { } switch v in symbol.value { + case SymbolMatrixValue: + common.free_ast(v.expr, allocator) + common.free_ast(v.x, allocator) + common.free_ast(v.y, allocator) case SymbolMultiPointer: common.free_ast(v.expr, allocator) case SymbolProcedureValue: |