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); } } }