From 93fe1fd63cb5b85fb75bff13e25f29f4f4f10037 Mon Sep 17 00:00:00 2001 From: andrewlord607 Date: Sun, 27 May 2018 02:11:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=20syntax=5Ftree=5Fvisitor=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=81=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2=D0=BE=20CurrentScope,=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B0=D1=8E=D1=89=D0=B5=D0=B5=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D1=83=D1=89=D1=83=D1=8E=20=D0=BE=D0=B1=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=8C=20=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B5=D1=81=D1=82=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TreeConverter/SymbolTable/DSST/SymbolTable.cs | 4 ++-- TreeConverter/TreeConversion/syntax_tree_visitor.cs | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) 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;