From ee5cff3900f95d1ddaa0adf9eb236448b5f20799 Mon Sep 17 00:00:00 2001 From: arookas Date: Wed, 23 Dec 2015 20:30:07 -0500 Subject: [PATCH] Add script-scope variables to the symbol table. --- ssc/context.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ssc/context.cs b/ssc/context.cs index 6101e96..239f322 100644 --- a/ssc/context.cs +++ b/ssc/context.cs @@ -10,7 +10,6 @@ namespace arookas { aBinaryWriter writer; uint textOffset, dataOffset, symbolOffset; - int varCount; public sunWriter Text { get; private set; } public sunDataTable DataTable { get; private set; } @@ -95,7 +94,6 @@ namespace arookas ImportResolver.EnterFile(file); var parser = new sunParser(); var tree = parser.Parse(file); - varCount += tree.MaxLocalCount; tree.Compile(this); ImportResolver.ExitFile(file); } @@ -169,6 +167,11 @@ namespace arookas throw new sunRedeclaredVariableException(node); } var variableInfo = Scopes.DeclareVariable(node.Value); + if (Scopes.Top.Type == sunScopeType.Script) + { + // script variables are added to the symbol table + SymbolTable.Add(variableInfo); + } return variableInfo; } public sunVariableSymbol ResolveVariable(sunIdentifier node) @@ -240,7 +243,7 @@ namespace arookas writer.WriteS32(DataTable.Count); writer.Write32(symbolOffset); writer.WriteS32(SymbolTable.Count); - writer.WriteS32(varCount); + writer.WriteS32(SymbolTable.VariableCount); } } }