diff --git a/TreeConverter/SymbolTable/DSST/SymbolTable.cs b/TreeConverter/SymbolTable/DSST/SymbolTable.cs index fac39dec7..faf4e7544 100644 --- a/TreeConverter/SymbolTable/DSST/SymbolTable.cs +++ b/TreeConverter/SymbolTable/DSST/SymbolTable.cs @@ -558,9 +558,9 @@ namespace SymbolTable real_scope = sc; if(real_scope is BlockScope) { - int deep = -1; + int deep = 0; Scope Top = real_scope.TopScope; - while(Top != null && !(Top is BlockScope)) + while(Top != null && (Top is BlockScope)) { deep++; Top = Top.TopScope; diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 3b06c893b..7a679a51b 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -52,6 +52,16 @@ namespace PascalABCCompiler.TreeConverter } } + public SymbolTable.PrimaryScope CurrentScope + { + get + { + if(context.CurrentScope != null) + return new SymbolTable.PrimaryScope(context.CurrentScope); + return null; + } + } + public convertion_data_and_alghoritms convertion_data_and_alghoritms; internal returner ret;