aboutsummaryrefslogtreecommitdiff
path: root/src/server/symbol.odin
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2022-10-27 16:21:12 +0200
committerDaniel Gavin <danielgavin5@hotmail.com>2022-10-27 16:21:12 +0200
commit601a1a447aee462575c8de91677991750cb612e5 (patch)
tree03e36f3406331675454b7069a0126c88e193ebba /src/server/symbol.odin
parent42a1ceac0e9a080e11fa94d153c0dc5f3e24738b (diff)
Add support for matrix types
Diffstat (limited to 'src/server/symbol.odin')
-rw-r--r--src/server/symbol.odin11
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: