From 8b3e964efc6d89caf246e0eb825520a02c146a09 Mon Sep 17 00:00:00 2001 From: miks1965 Date: Sun, 27 Dec 2015 21:41:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B8=D1=80=D1=83=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D0=B5=20yacc=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PascalABCParserNewSaushkin/ABCPascal.cs | 2 +- .../ABCPascalYacc.cs | 1758 +---------------- 2 files changed, 10 insertions(+), 1750 deletions(-) diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index 0b6a85140..e4975a3e6 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs @@ -2,7 +2,7 @@ // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 // Machine: SSM -// DateTime: 27.12.2015 1:06:45 +// DateTime: 27.12.2015 21:40:34 // UserName: ????????? // GPLEX input file // GPLEX frame file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index dd8750512..c0452e791 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -1,14 +1,12 @@ -// This code was generated by the Gardens Point Parser Generator -// Copyright (c) Wayne Kelly, QUT 2005-2010 // (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 // Machine: SSM -// DateTime: 27.12.2015 1:06:46 +// DateTime: 27.12.2015 21:40:34 // UserName: ????????? -// Input file +// Input file -// options: lines gplex +// options: no-lines gplex using System; using System.Collections.Generic; @@ -58,30 +56,19 @@ public abstract class ScanBase : AbstractScanner { - // Verbatim content from D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y -#line 2 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -// Ýòè îáúÿâëåíèÿ äîáàâëÿþòñÿ â êëàññ GPPGParser, ïðåäñòàâëÿþùèé ñîáîé ïàðñåð, ãåíåðèðóåìûé ñèñòåìîé gppg -#line 3 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" - public syntax_tree_node root; // Êîðíåâîé óçåë ñèíòàêñè÷åñêîãî äåðåâà -#line 4 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" + // Verbatim content from ABCPascal.y +// ��� ���������� ����������� � ����� GPPGParser, �������������� ����� ������, ������������ �������� gppg + public syntax_tree_node root; // �������� ���� ��������������� ������ -#line 5 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public List errors; -#line 6 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public string current_file_name; -#line 7 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public int max_errors = 10; -#line 8 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public PT parsertools; -#line 9 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public List CompilerDirectives; -#line 10 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public ParserLambdaHelper lambdaHelper = new ParserLambdaHelper(); -#line 11 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 12 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" public GPPGParser(AbstractScanner scanner) : base(scanner) { } - // End verbatim content from D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y + // End verbatim content from ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; @@ -2197,5074 +2184,3347 @@ public partial class GPPGParser: ShiftReduceParser program_file -#line 176 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { root = ValueStack[ValueStack.Depth-1].stn; } break; case 3: // parse_goal -> unit_file -#line 178 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { root = ValueStack[ValueStack.Depth-1].stn; } break; case 4: // parse_goal -> parts -#line 180 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { root = ValueStack[ValueStack.Depth-1].stn; } break; case 5: // parts -> tkParseModeExpression, expr -#line 185 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 6: // parts -> tkParseModeType, variable_as_type -#line 187 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 7: // parts -> tkParseModeStatement, stmt_or_expression -#line 189 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 8: // stmt_or_expression -> expr -#line 195 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);} break; case 9: // stmt_or_expression -> assignment -#line 197 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 10: // stmt_or_expression -> var_stmt -#line 199 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 11: // optional_head_compiler_directives -> /* empty */ -#line 204 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 12: // optional_head_compiler_directives -> head_compiler_directives -#line 206 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 13: // head_compiler_directives -> one_compiler_directive -#line 211 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 14: // head_compiler_directives -> head_compiler_directives, one_compiler_directive -#line 213 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 15: // one_compiler_directive -> tkDirectiveName, tkIdentifier -#line 218 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 219 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); -#line 220 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = null; -#line 221 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 16: // one_compiler_directive -> tkDirectiveName, tkStringLiteral -#line 223 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 224 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); -#line 225 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = null; -#line 226 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 17: // program_file -> program_header, optional_head_compiler_directives, uses_clause, // program_block, optional_tk_point -#line 231 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 232 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewProgramModule(ValueStack[ValueStack.Depth-5].stn as program_name, ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].stn as uses_list, ValueStack[ValueStack.Depth-2].stn, ValueStack[ValueStack.Depth-1].ob, CurrentLocationSpan); -#line 233 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 18: // optional_tk_point -> tkPoint -#line 238 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 19: // optional_tk_point -> tkSemiColon -#line 240 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 20: // optional_tk_point -> tkColon -#line 242 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 21: // optional_tk_point -> tkComma -#line 244 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 22: // optional_tk_point -> tkDotDot -#line 246 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 24: // program_header -> /* empty */ -#line 252 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 25: // program_header -> tkProgram, identifier, program_heading_2 -#line 254 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); } break; case 26: // program_heading_2 -> tkSemiColon -#line 259 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 27: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon -#line 261 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 28: // program_param_list -> program_param -#line 266 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 29: // program_param_list -> program_param_list, tkComma, program_param -#line 268 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 30: // program_param -> identifier -#line 273 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 31: // program_block -> program_decl_sect_list, compound_stmt -#line 278 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 279 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-2].stn as declarations, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 280 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 32: // program_decl_sect_list -> decl_sect_list -#line 285 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 33: // ident_or_keyword_pointseparator_list -> identifier_or_keyword -#line 290 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 291 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 292 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 34: // ident_or_keyword_pointseparator_list -> ident_or_keyword_pointseparator_list, // tkPoint, identifier_or_keyword -#line 294 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 295 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 296 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 35: // uses_clause -> /* empty */ -#line 301 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 302 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = null; -#line 303 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 36: // uses_clause -> tkUses, used_units_list, tkSemiColon -#line 305 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 306 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 307 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 308 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 37: // used_units_list -> used_unit_name -#line 313 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 314 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan); -#line 315 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 38: // used_units_list -> used_units_list, tkComma, used_unit_name -#line 317 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 318 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as uses_list).Add(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace, CurrentLocationSpan); -#line 319 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 39: // used_unit_name -> ident_or_keyword_pointseparator_list -#line 324 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 325 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new unit_or_namespace(ValueStack[ValueStack.Depth-1].stn as ident_list,CurrentLocationSpan); -#line 326 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 40: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral -#line 328 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 329 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new uses_unit_in(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].stn as string_const, CurrentLocationSpan); -#line 330 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 41: // unit_file -> attribute_declarations, unit_header, interface_part, // implementation_part, initialization_part, tkPoint -#line 335 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 336 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-6].stn as attribute_list, CurrentLocationSpan); -#line 337 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 42: // unit_file -> attribute_declarations, unit_header, abc_interface_part, // initialization_part, tkPoint -#line 339 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 340 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-5].stn as attribute_list, CurrentLocationSpan); -#line 341 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 43: // unit_header -> unit_key_word, unit_name, tkSemiColon, // optional_head_compiler_directives -#line 346 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 347 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewUnitHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); -#line 348 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 44: // unit_key_word -> tkUnit -#line 353 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 45: // unit_key_word -> tkLibrary -#line 355 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 46: // unit_name -> identifier -#line 360 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 47: // interface_part -> tkInterface, uses_clause, interface_decl_sect_list -#line 365 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 366 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); -#line 367 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 48: // implementation_part -> tkImplementation, uses_clause, decl_sect_list -#line 372 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 373 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new implementation_node(ValueStack[ValueStack.Depth-2].stn as uses_list, ValueStack[ValueStack.Depth-1].stn as declarations, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); -#line 374 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 49: // abc_interface_part -> uses_clause, decl_sect_list -#line 379 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 380 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, null); -#line 381 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 50: // initialization_part -> tkEnd -#line 386 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 387 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new initfinal_part(); -#line 388 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 389 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 51: // initialization_part -> tkInitialization, stmt_list, tkEnd -#line 391 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 392 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); -#line 393 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 52: // initialization_part -> tkInitialization, stmt_list, tkFinalization, stmt_list, // tkEnd -#line 395 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 396 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-5].ti, ValueStack[ValueStack.Depth-4].stn as statement_list, ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, CurrentLocationSpan); -#line 397 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 53: // initialization_part -> tkBegin, stmt_list, tkEnd -#line 399 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 400 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); -#line 401 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 54: // interface_decl_sect_list -> int_decl_sect_list1 -#line 406 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 407 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0) -#line 408 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 409 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 410 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 411 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 55: // int_decl_sect_list1 -> /* empty */ -#line 416 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 417 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new declarations(); -#line 418 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (GlobalDecls==null) -#line 419 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" GlobalDecls = CurrentSemanticValue.stn as declarations; -#line 420 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 56: // int_decl_sect_list1 -> int_decl_sect_list1, int_decl_sect -#line 422 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 423 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 424 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 57: // decl_sect_list -> decl_sect_list1 -#line 429 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 430 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0) -#line 431 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 432 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 433 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 434 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 58: // decl_sect_list1 -> /* empty */ -#line 439 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 440 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new declarations(); -#line 441 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (GlobalDecls==null) -#line 442 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" GlobalDecls = CurrentSemanticValue.stn as declarations; -#line 443 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 59: // decl_sect_list1 -> decl_sect_list1, decl_sect -#line 445 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 446 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 447 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 60: // inclass_decl_sect_list -> inclass_decl_sect_list1 -#line 452 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 453 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-1].stn as declarations).defs.Count > 0) -#line 454 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 455 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 456 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 457 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 61: // inclass_decl_sect_list1 -> /* empty */ -#line 462 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 463 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new declarations(); -#line 464 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 62: // inclass_decl_sect_list1 -> inclass_decl_sect_list1, abc_decl_sect -#line 466 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 467 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 468 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 63: // int_decl_sect -> const_decl_sect -#line 473 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 64: // int_decl_sect -> res_str_decl_sect -#line 475 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 65: // int_decl_sect -> type_decl_sect -#line 477 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 66: // int_decl_sect -> var_decl_sect -#line 479 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 67: // int_decl_sect -> int_proc_header -#line 481 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 68: // int_decl_sect -> int_func_header -#line 483 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 69: // decl_sect -> label_decl_sect -#line 488 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 70: // decl_sect -> const_decl_sect -#line 490 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 71: // decl_sect -> res_str_decl_sect -#line 492 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 72: // decl_sect -> type_decl_sect -#line 494 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 73: // decl_sect -> var_decl_sect -#line 496 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 74: // decl_sect -> proc_func_constr_destr_decl_with_attr -#line 498 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 75: // proc_func_constr_destr_decl -> proc_func_decl -#line 503 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 76: // proc_func_constr_destr_decl -> constr_destr_decl -#line 505 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 77: // proc_func_constr_destr_decl_with_attr -> attribute_declarations, // proc_func_constr_destr_decl -#line 510 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 511 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as procedure_definition).AssignAttrList(ValueStack[ValueStack.Depth-2].stn as attribute_list); -#line 512 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 513 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 78: // abc_decl_sect -> label_decl_sect -#line 518 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 79: // abc_decl_sect -> const_decl_sect -#line 520 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 80: // abc_decl_sect -> res_str_decl_sect -#line 522 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 81: // abc_decl_sect -> type_decl_sect -#line 524 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 82: // abc_decl_sect -> var_decl_sect -#line 526 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 83: // int_proc_header -> attribute_declarations, proc_header -#line 531 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 532 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 533 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 534 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 84: // int_proc_header -> attribute_declarations, proc_header, tkForward, tkSemiColon -#line 536 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 537 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); -#line 538 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 85: // int_func_header -> attribute_declarations, func_header -#line 543 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 544 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 545 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 546 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 86: // int_func_header -> attribute_declarations, func_header, tkForward, tkSemiColon -#line 548 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 549 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); -#line 550 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 87: // label_decl_sect -> tkLabel, label_list, tkSemiColon -#line 555 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 556 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); -#line 557 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 88: // label_list -> label_name -#line 562 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 563 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 564 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 89: // label_list -> label_list, tkComma, label_name -#line 566 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 567 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 568 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 90: // label_name -> tkInteger -#line 573 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 574 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); -#line 575 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 91: // label_name -> tkFloat -#line 577 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 578 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); -#line 579 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 92: // label_name -> identifier -#line 581 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 582 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; -#line 583 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 93: // const_decl_sect -> tkConst, const_decl -#line 588 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 589 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); -#line 590 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 94: // const_decl_sect -> const_decl_sect, const_decl -#line 592 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 593 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as consts_definitions_list).Add(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); -#line 594 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 95: // res_str_decl_sect -> tkResourceString, const_decl -#line 599 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 600 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 601 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 96: // res_str_decl_sect -> res_str_decl_sect, const_decl -#line 603 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 604 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 605 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 97: // type_decl_sect -> tkType, type_decl -#line 610 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 611 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); -#line 612 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 98: // type_decl_sect -> type_decl_sect, type_decl -#line 614 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 615 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as type_declarations).Add(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); -#line 616 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 99: // var_decl_sect -> tkVar, var_decl -#line 621 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 622 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); -#line 623 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 100: // var_decl_sect -> tkEvent, var_decl -#line 625 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 626 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); -#line 627 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as var_def_statement).is_event = true; -#line 628 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 101: // var_decl_sect -> var_decl_sect, var_decl -#line 630 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 631 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); -#line 632 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 102: // const_decl -> only_const_decl, tkSemiColon -#line 637 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 103: // only_const_decl -> const_name, tkEqual, init_const_expr -#line 642 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 643 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new simple_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 644 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 104: // only_const_decl -> const_name, tkColon, type_ref, tkEqual, typed_const -#line 646 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 647 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_const_definition(ValueStack[ValueStack.Depth-5].id, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-3].td, CurrentLocationSpan); -#line 648 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 105: // init_const_expr -> const_expr -#line 653 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 106: // init_const_expr -> array_const -#line 655 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 107: // const_name -> identifier -#line 660 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 108: // const_expr -> const_simple_expr -#line 665 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 666 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; -#line 667 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 109: // const_expr -> identifier, tkArrow, lambda_function_body -#line 669 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 670 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); -#line 671 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); -#line 672 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 673 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 110: // const_expr -> tkRoundOpen, tkRoundClose, lambda_type_ref, tkArrow, // lambda_function_body -#line 675 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 676 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 677 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 111: // const_expr -> tkRoundOpen, typed_const_list, tkRoundClose, tkArrow, // lambda_function_body -#line 679 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 680 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var el = ValueStack[ValueStack.Depth-4].stn as expression_list; -#line 681 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var cnt = el.expressions.Count; -#line 682 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 683 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(); -#line 684 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" idList.source_context = LocationStack[LocationStack.Depth-4]; -#line 685 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 686 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int j = 0; j < cnt; j++) -#line 687 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 688 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (!(el.expressions[j] is ident)) -#line 689 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",el.expressions[j].source_context); -#line 690 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" idList.idents.Add(el.expressions[j] as ident); -#line 691 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 692 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 693 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 694 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 695 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, LocationStack[LocationStack.Depth-4]), LocationStack[LocationStack.Depth-4]); -#line 696 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 697 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 112: // const_expr -> const_simple_expr, const_relop, const_simple_expr -#line 699 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 700 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 701 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 113: // const_expr -> question_constexpr -#line 703 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 704 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; -#line 705 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 114: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr -#line 710 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 115: // const_relop -> tkEqual -#line 715 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 116: // const_relop -> tkNotEqual -#line 717 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 117: // const_relop -> tkLower -#line 719 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 118: // const_relop -> tkGreater -#line 721 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 119: // const_relop -> tkLowerEqual -#line 723 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 120: // const_relop -> tkGreaterEqual -#line 725 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 121: // const_relop -> tkIn -#line 727 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 122: // const_simple_expr -> const_term -#line 732 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 123: // const_simple_expr -> const_simple_expr, const_addop, const_term -#line 734 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 124: // const_addop -> tkPlus -#line 739 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 125: // const_addop -> tkMinus -#line 741 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 126: // const_addop -> tkOr -#line 743 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 127: // const_addop -> tkXor -#line 745 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 128: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference -#line 750 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 751 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 752 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 129: // const_term -> const_factor -#line 757 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 130: // const_term -> as_is_constexpr -#line 759 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 131: // const_term -> const_term, const_mulop, const_factor -#line 761 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 132: // const_mulop -> tkStar -#line 766 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 133: // const_mulop -> tkSlash -#line 768 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 134: // const_mulop -> tkDiv -#line 770 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 135: // const_mulop -> tkMod -#line 772 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 136: // const_mulop -> tkShl -#line 774 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 137: // const_mulop -> tkShr -#line 776 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 138: // const_mulop -> tkAnd -#line 778 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 139: // const_factor -> const_variable -#line 783 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 140: // const_factor -> const_set -#line 785 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 141: // const_factor -> unsigned_number -#line 787 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 142: // const_factor -> literal -#line 789 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 143: // const_factor -> tkNil -#line 791 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 792 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new nil_const(); -#line 793 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex.source_context = CurrentLocationSpan; -#line 794 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 144: // const_factor -> tkAddressOf, const_factor -#line 796 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 797 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); -#line 798 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 145: // const_factor -> tkRoundOpen, const_expr, tkRoundClose -#line 800 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 801 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); -#line 802 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 146: // const_factor -> tkNot, const_factor -#line 804 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 805 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 806 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 147: // const_factor -> sign, const_factor -#line 808 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 809 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 810 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 148: // const_factor -> tkDeref, const_factor -#line 812 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 813 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); -#line 814 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 149: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose -#line 819 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 820 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 821 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 150: // sign -> tkPlus -#line 826 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 151: // sign -> tkMinus -#line 828 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 152: // const_variable -> identifier -#line 833 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 153: // const_variable -> sizeof_expr -#line 835 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 154: // const_variable -> typeof_expr -#line 837 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 155: // const_variable -> const_variable, const_variable_2 -#line 839 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 840 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 841 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 156: // const_variable_2 -> tkPoint, identifier_or_keyword -#line 846 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 847 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); -#line 848 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 157: // const_variable_2 -> tkDeref -#line 850 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 851 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new roof_dereference(); -#line 852 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex.source_context = CurrentLocationSpan; -#line 853 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 158: // const_variable_2 -> tkRoundOpen, optional_const_func_expr_list, tkRoundClose -#line 855 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 856 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 857 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 159: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose -#line 859 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 860 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 861 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 160: // optional_const_func_expr_list -> const_func_expr_list -#line 866 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 161: // optional_const_func_expr_list -> /* empty */ -#line 868 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 162: // const_func_expr_list -> const_expr -#line 873 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 874 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 875 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 163: // const_func_expr_list -> const_func_expr_list, tkComma, const_expr -#line 877 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 878 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 879 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 164: // const_elem_list -> const_elem_list1 -#line 884 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 166: // const_elem_list1 -> const_elem -#line 890 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 891 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 892 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 167: // const_elem_list1 -> const_elem_list1, tkComma, const_elem -#line 894 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 895 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 896 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 168: // const_elem -> const_expr -#line 901 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 169: // const_elem -> const_expr, tkDotDot, const_expr -#line 903 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 904 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 905 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 170: // unsigned_number -> tkInteger -#line 910 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 171: // unsigned_number -> tkHex -#line 912 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 172: // unsigned_number -> tkFloat -#line 914 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 173: // typed_const -> const_expr -#line 919 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 174: // typed_const -> array_const -#line 921 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 175: // typed_const -> record_const -#line 923 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 176: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose -#line 928 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 929 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 930 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 177: // array_const -> tkRoundOpen, record_const, tkRoundClose -#line 932 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 178: // array_const -> tkRoundOpen, array_const, tkRoundClose -#line 934 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 180: // typed_const_list -> typed_const_list1 -#line 940 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 941 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 942 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 181: // typed_const_list1 -> typed_const_or_new -#line 947 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 948 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 949 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 182: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_or_new -#line 951 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 952 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 953 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 183: // record_const -> tkRoundOpen, const_field_list, tkRoundClose -#line 958 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 959 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; -#line 960 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex.source_context = CurrentLocationSpan; -#line 961 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 184: // const_field_list -> const_field_list_1 -#line 966 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 185: // const_field_list -> const_field_list_1, tkSemiColon -#line 968 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 186: // const_field_list_1 -> const_field -#line 973 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 974 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); -#line 975 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 187: // const_field_list_1 -> const_field_list_1, tkSemiColon, const_field -#line 977 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 978 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-3].ex as record_const).Add(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); -#line 979 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 188: // const_field -> const_field_name, tkColon, typed_const -#line 984 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 985 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new record_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 986 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 189: // const_field_name -> identifier -#line 991 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 190: // type_decl -> attribute_declarations, simple_type_decl -#line 996 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 997 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 998 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 999 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = LocationStack[LocationStack.Depth-1]; -#line 1000 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 191: // attribute_declarations -> attribute_declaration -#line 1005 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1006 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); -#line 1007 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 192: // attribute_declarations -> attribute_declarations, attribute_declaration -#line 1009 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1010 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); -#line 1011 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 193: // attribute_declarations -> /* empty */ -#line 1013 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 194: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose -#line 1018 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 195: // one_or_some_attribute -> one_attribute -#line 1023 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1024 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); -#line 1025 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 196: // one_or_some_attribute -> one_or_some_attribute, tkComma, one_attribute -#line 1027 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1028 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as simple_attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); -#line 1029 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 197: // one_attribute -> attribute_variable -#line 1034 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 198: // one_attribute -> identifier, tkColon, attribute_variable -#line 1036 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1037 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as attribute).qualifier = ValueStack[ValueStack.Depth-3].id; -#line 1038 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1039 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1040 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 199: // simple_type_decl -> type_decl_identifier, tkEqual, type_decl_type, tkSemiColon -#line 1045 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1046 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); -#line 1047 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 200: // simple_type_decl -> template_identifier_with_equal, type_decl_type, tkSemiColon -#line 1049 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1050 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); -#line 1051 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 201: // type_decl_identifier -> identifier -#line 1056 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 202: // type_decl_identifier -> identifier, template_arguments -#line 1058 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1059 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); -#line 1060 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 203: // template_identifier_with_equal -> identifier, tkLower, ident_list, // tkGreaterEqual -#line 1065 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1066 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-4].id.name, ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); -#line 1067 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 204: // type_decl_type -> type_ref -#line 1072 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 205: // type_decl_type -> tkType, type_ref -#line 1074 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1075 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 1076 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td.source_context = CurrentLocationSpan; -#line 1077 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 206: // type_decl_type -> object_type -#line 1079 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 207: // type_ref -> simple_type -#line 1084 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 208: // type_ref -> string_type -#line 1086 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 209: // type_ref -> pointer_type -#line 1088 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 210: // type_ref -> structured_type -#line 1090 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 211: // type_ref -> procedural_type -#line 1092 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 212: // type_ref -> template_type -#line 1094 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 213: // template_type -> simple_type_identifier, template_type_params -#line 1099 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1100 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); -#line 1101 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 214: // template_type_params -> tkLower, template_param_list, tkGreater -#line 1106 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1107 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 1108 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1109 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 215: // template_param_list -> template_param -#line 1114 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1115 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1116 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 216: // template_param_list -> template_param_list, tkComma, template_param -#line 1118 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1119 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1120 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 217: // template_param -> simple_type_identifier -#line 1125 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 218: // template_param -> template_type -#line 1127 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 219: // simple_type -> simple_type_identifier -#line 1132 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 220: // simple_type -> range_expr, tkDotDot, range_expr -#line 1134 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1135 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 1136 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 221: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose -#line 1138 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1139 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan); -#line 1140 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 222: // range_expr -> range_term -#line 1145 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 223: // range_expr -> range_expr, const_addop, range_term -#line 1147 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1148 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 1149 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 224: // range_term -> range_factor -#line 1154 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 225: // range_term -> range_term, const_mulop, range_factor -#line 1156 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1157 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 1158 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 226: // range_factor -> simple_type_identifier -#line 1163 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1164 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if((ValueStack[ValueStack.Depth-1].td as named_type_reference).names.Count>0) -#line 1165 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-1].td as named_type_reference).names[0]; -#line 1166 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 1167 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = null; -#line 1168 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 227: // range_factor -> unsigned_number -#line 1170 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 228: // range_factor -> sign, range_factor -#line 1172 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1173 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 1174 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 229: // range_factor -> literal -#line 1176 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 230: // range_factor -> range_factor, tkRoundOpen, const_elem_list, tkRoundClose -#line 1178 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1179 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 1180 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 231: // range_factor -> tkRoundOpen, const_expr, tkRoundClose -#line 1182 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1183 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (!parsertools.build_tree_for_brackets) -#line 1184 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; -#line 1185 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 1186 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); -#line 1187 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 232: // simple_type_identifier -> identifier -#line 1192 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1193 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1194 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 233: // simple_type_identifier -> simple_type_identifier, tkPoint, // identifier_or_keyword -#line 1196 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1197 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1198 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 234: // enumeration_id_list -> enumeration_id, tkComma, enumeration_id -#line 1203 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1204 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-3].stn as enumerator, CurrentLocationSpan); -#line 1205 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); -#line 1206 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 235: // enumeration_id_list -> enumeration_id_list, tkComma, enumeration_id -#line 1208 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1209 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); -#line 1210 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 236: // enumeration_id -> identifier -#line 1215 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1216 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); -#line 1217 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 237: // enumeration_id -> identifier, tkEqual, expr -#line 1219 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1220 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 1221 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 238: // pointer_type -> tkDeref, fptype -#line 1226 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1227 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1228 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 239: // structured_type -> unpacked_structured_type -#line 1233 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 240: // structured_type -> tkPacked, unpacked_structured_type -#line 1235 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 241: // unpacked_structured_type -> array_type -#line 1240 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 242: // unpacked_structured_type -> record_type -#line 1242 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 243: // unpacked_structured_type -> set_type -#line 1244 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 244: // unpacked_structured_type -> file_type -#line 1246 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 245: // unpacked_structured_type -> sequence_type -#line 1248 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 246: // sequence_type -> tkSequence, tkOf, template_param -#line 1253 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1254 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1255 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 247: // array_type -> tkArray, tkSquareOpen, simple_type_list, tkSquareClose, tkOf, // type_ref -#line 1260 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1261 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new array_type(ValueStack[ValueStack.Depth-4].stn as indexers_types, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1262 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 248: // array_type -> unsized_array_type -#line 1264 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 249: // unsized_array_type -> tkArray, tkOf, type_ref -#line 1269 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1270 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1271 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 250: // simple_type_list -> simple_type_or_ -#line 1276 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1277 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1278 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 251: // simple_type_list -> simple_type_list, tkComma, simple_type_or_ -#line 1280 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1281 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as indexers_types).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1282 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 252: // simple_type_or_ -> simple_type -#line 1287 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 253: // simple_type_or_ -> /* empty */ -#line 1289 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = null; } break; case 254: // set_type -> tkSet, tkOf, simple_type -#line 1294 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1295 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1296 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 255: // file_type -> tkFile, tkOf, type_ref -#line 1301 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1302 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1303 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 256: // file_type -> tkFile -#line 1305 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1306 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new file_type(); -#line 1307 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td.source_context = CurrentLocationSpan; -#line 1308 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 257: // string_type -> tkIdentifier, tkSquareOpen, const_expr, tkSquareClose -#line 1313 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1314 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new string_num_definition(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-4].id, CurrentLocationSpan); -#line 1315 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 258: // procedural_type -> procedural_type_kind -#line 1320 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 259: // procedural_type_kind -> proc_type_decl -#line 1325 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 260: // proc_type_decl -> tkProcedure, fp_list -#line 1330 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1331 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters,null,null,false,false,null,null,CurrentLocationSpan); -#line 1332 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 261: // proc_type_decl -> tkFunction, fp_list -#line 1334 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1335 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters, null, null, null, null, CurrentLocationSpan); -#line 1336 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 262: // proc_type_decl -> tkFunction, fp_list, tkColon, fptype -#line 1338 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1339 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, null, null, null, ValueStack[ValueStack.Depth-1].td as type_definition, CurrentLocationSpan); -#line 1340 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 263: // proc_type_decl -> simple_type_identifier, tkArrow, template_param -#line 1342 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1343 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1344 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 264: // proc_type_decl -> template_type, tkArrow, template_param -#line 1346 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1347 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1348 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 265: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param -#line 1350 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1351 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1352 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 266: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // template_param -#line 1354 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1355 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-4].stn as enumerator_list,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); -#line 1356 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 267: // proc_type_decl -> simple_type_identifier, tkArrow, tkRoundOpen, tkRoundClose -#line 1358 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1359 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); -#line 1360 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 268: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose -#line 1362 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1363 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); -#line 1364 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 269: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose -#line 1366 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1367 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan); -#line 1368 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 270: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // tkRoundOpen, tkRoundClose -#line 1370 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1371 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-5].stn as enumerator_list,null,CurrentLocationSpan); -#line 1372 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 271: // object_type -> class_attributes, class_or_interface_keyword, // optional_base_classes, optional_where_section, // optional_component_list_seq_end -#line 1377 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1378 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body, CurrentLocationSpan); -#line 1379 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 272: // record_type -> tkRecord, optional_base_classes, optional_where_section, // member_list_section, tkEnd -#line 1384 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1385 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = NewRecordType(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-3].stn as where_definition_list, ValueStack[ValueStack.Depth-2].stn as class_body, CurrentLocationSpan); -#line 1386 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 273: // class_attribute -> tkSealed -#line 1391 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = class_attribute.Sealed; } break; case 274: // class_attribute -> tkPartial -#line 1393 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = class_attribute.Partial; } break; case 275: // class_attribute -> tkAbstract -#line 1395 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = class_attribute.Abstract; } break; case 276: // class_attribute -> tkAuto -#line 1397 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = class_attribute.Auto; } break; case 277: // class_attributes -> /* empty */ -#line 1402 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1403 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = class_attribute.None; -#line 1404 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 278: // class_attributes -> class_attributes1 -#line 1406 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1407 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; -#line 1408 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 279: // class_attributes1 -> class_attribute -#line 1413 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1414 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; -#line 1415 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 280: // class_attributes1 -> class_attributes1, class_attribute -#line 1417 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1418 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" ValueStack[ValueStack.Depth-2].ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob); -#line 1419 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-2].ob; -#line 1420 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 281: // class_or_interface_keyword -> tkClass -#line 1425 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 282: // class_or_interface_keyword -> tkInterface -#line 1427 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 283: // class_or_interface_keyword -> tkTemplate -#line 1429 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1430 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti); -#line 1431 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 284: // class_or_interface_keyword -> tkTemplate, tkClass -#line 1433 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1434 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan); -#line 1435 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 285: // class_or_interface_keyword -> tkTemplate, tkRecord -#line 1437 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1438 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan); -#line 1439 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 286: // class_or_interface_keyword -> tkTemplate, tkInterface -#line 1441 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1442 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan); -#line 1443 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 287: // optional_component_list_seq_end -> /* empty */ -#line 1448 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 288: // optional_component_list_seq_end -> member_list_section, tkEnd -#line 1450 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1451 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 1452 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1453 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 290: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose -#line 1459 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 291: // base_classes_names_list -> base_class_name -#line 1464 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1465 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new named_type_reference_list(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); -#line 1466 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 292: // base_classes_names_list -> base_classes_names_list, tkComma, base_class_name -#line 1468 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1469 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as named_type_reference_list).Add(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); -#line 1470 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 293: // base_class_name -> simple_type_identifier -#line 1475 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 294: // base_class_name -> template_type -#line 1477 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 295: // template_arguments -> tkLower, ident_list, tkGreater -#line 1482 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1483 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 1484 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1485 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 296: // optional_where_section -> /* empty */ -#line 1490 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 297: // optional_where_section -> where_part_list -#line 1492 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 298: // where_part_list -> where_part -#line 1497 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1498 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); -#line 1499 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 299: // where_part_list -> where_part_list, where_part -#line 1501 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1502 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as where_definition_list).Add(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); -#line 1503 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 300: // where_part -> tkWhere, ident_list, tkColon, type_ref_and_secific_list, // tkSemiColon -#line 1508 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1509 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new where_definition(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-2].stn as where_type_specificator_list, CurrentLocationSpan); -#line 1510 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 301: // type_ref_and_secific_list -> type_ref_or_secific -#line 1515 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1516 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1517 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 302: // type_ref_and_secific_list -> type_ref_and_secific_list, tkComma, // type_ref_or_secific -#line 1519 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1520 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as where_type_specificator_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1521 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 303: // type_ref_or_secific -> type_ref -#line 1526 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 304: // type_ref_or_secific -> tkClass -#line 1528 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1529 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); -#line 1530 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 305: // type_ref_or_secific -> tkRecord -#line 1532 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1533 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); -#line 1534 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 306: // type_ref_or_secific -> tkConstructor -#line 1536 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1537 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); -#line 1538 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 307: // member_list_section -> member_list -#line 1543 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1544 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new class_body(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan); -#line 1545 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 308: // member_list_section -> member_list_section, ot_visibility_specifier, // member_list -#line 1547 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1548 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as class_members).access_mod = ValueStack[ValueStack.Depth-2].stn as access_modifer_node; -#line 1549 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as class_body).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan); -#line 1550 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 1551 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-3].stn as class_body).class_def_blocks[0].members.Count == 0) -#line 1552 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as class_body).class_def_blocks.RemoveAt(0); -#line 1553 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 1554 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; -#line 1555 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 309: // ot_visibility_specifier -> tkInternal -#line 1560 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); } break; case 310: // ot_visibility_specifier -> tkPublic -#line 1562 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); } break; case 311: // ot_visibility_specifier -> tkProtected -#line 1564 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); } break; case 312: // ot_visibility_specifier -> tkPrivate -#line 1566 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); } break; case 313: // member_list -> /* empty */ -#line 1571 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new class_members(); } break; case 314: // member_list -> field_or_const_definition_list, optional_semicolon -#line 1573 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 315: // member_list -> method_decl_list -#line 1575 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 316: // member_list -> field_or_const_definition_list, tkSemiColon, method_decl_list -#line 1577 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1578 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as class_members).members.AddRange((ValueStack[ValueStack.Depth-1].stn as class_members).members); -#line 1579 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as class_members).source_context = CurrentLocationSpan; -#line 1580 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; -#line 1581 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 317: // ident_list -> identifier -#line 1586 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1587 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1588 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 318: // ident_list -> ident_list, tkComma, identifier -#line 1590 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1591 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1592 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 319: // optional_semicolon -> /* empty */ -#line 1597 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = null; } break; case 320: // optional_semicolon -> tkSemiColon -#line 1599 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 321: // field_or_const_definition_list -> field_or_const_definition -#line 1604 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1605 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 1606 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 322: // field_or_const_definition_list -> field_or_const_definition_list, tkSemiColon, // field_or_const_definition -#line 1608 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1609 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 1610 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 323: // field_or_const_definition -> attribute_declarations, // simple_field_or_const_definition -#line 1615 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1616 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 1617 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1618 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 324: // method_decl_list -> method_or_property_decl -#line 1623 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1624 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 1625 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 325: // method_decl_list -> method_decl_list, method_or_property_decl -#line 1627 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1628 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); -#line 1629 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 326: // method_or_property_decl -> method_decl_withattr -#line 1634 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 327: // method_or_property_decl -> property_definition -#line 1636 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 328: // simple_field_or_const_definition -> tkConst, only_const_decl -#line 1641 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1642 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1643 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1644 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 329: // simple_field_or_const_definition -> field_definition -#line 1646 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 330: // simple_field_or_const_definition -> tkClass, field_definition -#line 1648 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1649 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as var_def_statement).var_attr = definition_attribute.Static; -#line 1650 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as var_def_statement).source_context = CurrentLocationSpan; -#line 1651 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1652 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 331: // field_definition -> var_decl_part -#line 1657 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 332: // field_definition -> tkEvent, ident_list, tkColon, type_ref -#line 1659 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1660 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, true, CurrentLocationSpan); -#line 1661 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 333: // method_decl_withattr -> attribute_declarations, method_header -#line 1666 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1667 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].td as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 1668 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; -#line 1669 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 334: // method_decl_withattr -> attribute_declarations, method_decl -#line 1671 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1672 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 1673 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1674 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 335: // method_decl -> inclass_proc_func_decl -#line 1679 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 336: // method_decl -> inclass_constr_destr_decl -#line 1681 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 337: // method_header -> tkClass, method_procfunc_header -#line 1686 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1687 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true; -#line 1688 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 1689 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 338: // method_header -> method_procfunc_header -#line 1691 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 339: // method_header -> constr_destr_header -#line 1693 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 340: // method_procfunc_header -> proc_func_header -#line 1698 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1699 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header); -#line 1700 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 341: // proc_func_header -> proc_header -#line 1705 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 342: // proc_func_header -> func_header -#line 1707 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 343: // constr_destr_header -> tkConstructor, optional_proc_name, fp_list, // optional_method_modificators -#line 1712 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1713 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,false,null,null,CurrentLocationSpan); -#line 1714 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 344: // constr_destr_header -> tkClass, tkConstructor, optional_proc_name, fp_list, // optional_method_modificators -#line 1716 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1717 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,true,null,null,CurrentLocationSpan); -#line 1718 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 345: // constr_destr_header -> tkDestructor, optional_proc_name, fp_list, // optional_method_modificators -#line 1720 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1721 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new destructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name, false,false,null,null,CurrentLocationSpan); -#line 1722 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 346: // optional_proc_name -> proc_name -#line 1727 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 347: // optional_proc_name -> /* empty */ -#line 1729 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 348: // qualified_identifier -> identifier -#line 1734 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 349: // qualified_identifier -> visibility_specifier -#line 1736 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 350: // qualified_identifier -> qualified_identifier, tkPoint, identifier -#line 1738 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1739 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1740 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 351: // qualified_identifier -> qualified_identifier, tkPoint, visibility_specifier -#line 1742 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1743 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 1744 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 352: // property_definition -> attribute_declarations, simple_prim_property_definition -#line 1749 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1750 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewPropertyDefinition(ValueStack[ValueStack.Depth-2].stn as attribute_list, ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); -#line 1751 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 353: // simple_prim_property_definition -> simple_property_definition -#line 1756 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 354: // simple_prim_property_definition -> tkClass, simple_property_definition -#line 1758 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1759 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewSimplePrimPropertyDefinition(ValueStack[ValueStack.Depth-1].stn as simple_property, CurrentLocationSpan); -#line 1760 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 355: // simple_property_definition -> tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, array_defaultproperty -#line 1765 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1766 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); -#line 1767 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 356: // array_defaultproperty -> /* empty */ -#line 1772 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 357: // array_defaultproperty -> tkDefault, tkSemiColon -#line 1774 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1775 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new property_array_default(); -#line 1776 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 1777 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 358: // property_interface -> /* empty */ -#line 1782 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 359: // property_interface -> property_parameter_list, tkColon, fptype -#line 1784 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1785 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new property_interface(ValueStack[ValueStack.Depth-3].stn as property_parameter_list, ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); -#line 1786 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 360: // property_parameter_list -> /* empty */ -#line 1791 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 361: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose -#line 1793 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 362: // parameter_decl_list -> parameter_decl -#line 1798 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1799 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); -#line 1800 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 363: // parameter_decl_list -> parameter_decl_list, tkSemiColon, parameter_decl -#line 1802 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1803 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as property_parameter_list).Add(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); -#line 1804 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 364: // parameter_decl -> ident_list, tkColon, fptype -#line 1809 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1810 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new property_parameter(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 1811 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 365: // optional_identifier -> identifier -#line 1816 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 366: // optional_identifier -> /* empty */ -#line 1818 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = null; } break; case 368: // property_specifiers -> tkRead, optional_identifier, property_specifiers -#line 1824 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1825 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); -#line 1826 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 369: // property_specifiers -> tkWrite, optional_identifier, property_specifiers -#line 1828 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1829 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); -#line 1830 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 370: // var_decl -> var_decl_part, tkSemiColon -#line 1835 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 373: // var_decl_part -> ident_list, tkColon, type_ref -#line 1860 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1861 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan); -#line 1862 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 374: // var_decl_part -> ident_list, tkAssign, expr -#line 1864 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1865 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, null, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); -#line 1866 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 375: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual, // typed_const_or_new -#line 1868 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1869 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); -#line 1870 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 376: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual, // expl_func_decl_lambda -#line 1872 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1873 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); -#line 1874 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 377: // typed_const_or_new -> typed_const -#line 1879 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 378: // typed_const_or_new -> new_expr -#line 1881 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 379: // typed_const_or_new -> default_expr -#line 1883 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 380: // constr_destr_decl -> constr_destr_header, block -#line 1888 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1889 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); -#line 1890 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 381: // inclass_constr_destr_decl -> constr_destr_header, inclass_block -#line 1895 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1896 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); -#line 1897 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 382: // proc_func_decl -> proc_func_decl_noclass -#line 1902 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 383: // proc_func_decl -> tkClass, proc_func_decl_noclass -#line 1904 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1905 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; -#line 1906 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1907 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 384: // proc_func_decl_noclass -> proc_func_header, proc_func_external_block -#line 1912 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1913 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); -#line 1914 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 385: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype, // tkAssign, relop_expr, tkSemiColon -#line 1916 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1917 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-6].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-4].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-8].Merge(LocationStack[LocationStack.Depth-4])); -#line 1918 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 386: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkAssign, relop_expr, // tkSemiColon -#line 1920 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1921 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-4].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-5].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-4])); -#line 1922 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 387: // proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, tkAssign, stmt, // tkSemiColon -#line 1924 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1925 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-4].stn as formal_parameters, new procedure_attributes_list(), ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-6].Merge(LocationStack[LocationStack.Depth-4])); -#line 1926 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 388: // proc_func_decl_noclass -> proc_func_header, tkForward, tkSemiColon -#line 1928 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1929 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-3].td as procedure_header, null, CurrentLocationSpan); -#line 1930 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.stn as procedure_definition).proc_header.proc_attributes.Add((procedure_attribute)ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-2].id.source_context); -#line 1931 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 389: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass -#line 1936 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 390: // inclass_proc_func_decl -> tkClass, inclass_proc_func_decl_noclass -#line 1938 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1939 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) -#line 1940 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; -#line 1941 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 1942 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 391: // inclass_proc_func_decl_noclass -> proc_func_header, inclass_block -#line 1947 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1948 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); -#line 1949 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 392: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, // fptype, optional_method_modificators1, // tkAssign, relop_expr, tkSemiColon -#line 1951 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1952 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); -#line 1953 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (parsertools.build_tree_for_brackets) -#line 1954 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); -#line 1955 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 393: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // relop_expr, tkSemiColon -#line 1957 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1958 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); -#line 1959 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (parsertools.build_tree_for_brackets) -#line 1960 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); -#line 1961 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 394: // inclass_proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // stmt, tkSemiColon -#line 1963 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1964 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); -#line 1965 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (parsertools.build_tree_for_brackets) -#line 1966 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); -#line 1967 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 395: // proc_func_external_block -> block -#line 1972 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 396: // proc_func_external_block -> external_block -#line 1974 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 397: // proc_name -> func_name -#line 1979 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 398: // func_name -> func_meth_name_ident -#line 1984 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1985 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); -#line 1986 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 399: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident -#line 1988 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 1989 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var ln = ValueStack[ValueStack.Depth-3].ob as List; -#line 1990 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var cnt = (ValueStack[ValueStack.Depth-3].ob as List).Count; -#line 1991 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (cnt == 1) -#line 1992 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new method_name(null, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); -#line 1993 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 1994 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new method_name(ln, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); -#line 1995 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 400: // func_class_name_ident -> func_name_with_template_args -#line 2000 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 401: // func_class_name_ident_list -> func_class_name_ident -#line 2005 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2006 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = new List(); -#line 2007 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].id); -#line 2008 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 402: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint, // func_class_name_ident -#line 2010 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2011 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].ob as List).Add(ValueStack[ValueStack.Depth-1].id); -#line 2012 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; -#line 2013 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 403: // func_meth_name_ident -> func_name_with_template_args -#line 2018 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 404: // func_meth_name_ident -> operator_name_ident -#line 2020 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 405: // func_meth_name_ident -> operator_name_ident, template_arguments -#line 2022 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = new template_operator_name(null, ValueStack[ValueStack.Depth-1].stn as ident_list, ValueStack[ValueStack.Depth-2].ex as operator_name_ident, CurrentLocationSpan); } break; case 406: // func_name_with_template_args -> func_name_ident -#line 2027 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 407: // func_name_with_template_args -> func_name_ident, template_arguments -#line 2029 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2030 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); -#line 2031 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 408: // func_name_ident -> identifier -#line 2036 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 409: // proc_header -> tkProcedure, proc_name, fp_list, optional_method_modificators, // optional_where_section -#line 2043 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2044 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, CurrentLocationSpan); -#line 2045 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 410: // func_header -> tkFunction, func_name, fp_list, optional_method_modificators, // optional_where_section -#line 2050 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2051 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, null, CurrentLocationSpan); -#line 2052 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 411: // func_header -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators, optional_where_section -#line 2054 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2055 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, ValueStack[ValueStack.Depth-3].td as type_definition, CurrentLocationSpan); -#line 2056 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 412: // external_block -> tkExternal, external_directive_ident, tkName, // external_directive_ident, tkSemiColon -#line 2061 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2062 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); -#line 2063 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 413: // external_block -> tkExternal, external_directive_ident, tkSemiColon -#line 2065 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2066 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan); -#line 2067 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 414: // external_block -> tkExternal, tkSemiColon -#line 2069 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2070 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan); -#line 2071 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 415: // external_directive_ident -> identifier -#line 2076 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 416: // external_directive_ident -> literal -#line 2078 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 417: // block -> decl_sect_list, compound_stmt, tkSemiColon -#line 2083 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2084 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); -#line 2085 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 418: // inclass_block -> inclass_decl_sect_list, compound_stmt, tkSemiColon -#line 2090 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2091 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); -#line 2092 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 419: // fp_list -> /* empty */ -#line 2097 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 420: // fp_list -> tkRoundOpen, tkRoundClose -#line 2099 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2100 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = null; -#line 2101 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 421: // fp_list -> tkRoundOpen, fp_sect_list, tkRoundClose -#line 2103 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2104 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 2105 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (CurrentSemanticValue.stn != null) -#line 2106 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 2107 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 422: // fp_sect_list -> fp_sect -#line 2112 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2113 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); -#line 2114 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 423: // fp_sect_list -> fp_sect_list, tkSemiColon, fp_sect -#line 2116 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2117 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); -#line 2118 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 424: // fp_sect -> attribute_declarations, simple_fp_sect -#line 2123 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2124 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; -#line 2125 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 2126 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 425: // simple_fp_sect -> param_name_list, tkColon, fptype -#line 2131 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2132 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); -#line 2133 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 426: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype -#line 2135 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2136 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.var_parametr, null, CurrentLocationSpan); -#line 2137 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 427: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype -#line 2139 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2140 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.const_parametr, null, CurrentLocationSpan); -#line 2141 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 428: // simple_fp_sect -> tkParams, param_name_list, tkColon, fptype -#line 2143 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2144 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td,parametr_kind.params_parametr,null, CurrentLocationSpan); -#line 2145 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 429: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, const_expr -#line 2147 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2148 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.none, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2149 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 430: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, const_expr -#line 2151 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2152 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.var_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2153 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 431: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign, // const_expr -#line 2155 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2156 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.const_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2157 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 432: // param_name_list -> param_name -#line 2162 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2163 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 2164 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 433: // param_name_list -> param_name_list, tkComma, param_name -#line 2166 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2167 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 2168 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 434: // param_name -> identifier -#line 2173 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 435: // fptype -> type_ref -#line 2178 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 436: // fptype_noproctype -> simple_type -#line 2183 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 437: // fptype_noproctype -> string_type -#line 2185 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 438: // fptype_noproctype -> pointer_type -#line 2187 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 439: // fptype_noproctype -> structured_type -#line 2189 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 440: // fptype_noproctype -> template_type -#line 2191 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 441: // stmt -> unlabelled_stmt -#line 2196 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 442: // stmt -> label_name, tkColon, stmt -#line 2198 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2199 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new labeled_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2200 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 443: // unlabelled_stmt -> /* empty */ -#line 2205 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2206 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new empty_statement(); -#line 2207 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = null; -#line 2208 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 444: // unlabelled_stmt -> assignment -#line 2210 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 445: // unlabelled_stmt -> proc_call -#line 2212 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 446: // unlabelled_stmt -> goto_stmt -#line 2214 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 447: // unlabelled_stmt -> compound_stmt -#line 2216 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 448: // unlabelled_stmt -> if_stmt -#line 2218 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 449: // unlabelled_stmt -> case_stmt -#line 2220 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 450: // unlabelled_stmt -> repeat_stmt -#line 2222 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 451: // unlabelled_stmt -> while_stmt -#line 2224 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 452: // unlabelled_stmt -> for_stmt -#line 2226 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 453: // unlabelled_stmt -> with_stmt -#line 2228 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 454: // unlabelled_stmt -> inherited_message -#line 2230 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 455: // unlabelled_stmt -> try_stmt -#line 2232 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 456: // unlabelled_stmt -> raise_stmt -#line 2234 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 457: // unlabelled_stmt -> foreach_stmt -#line 2236 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 458: // unlabelled_stmt -> var_stmt -#line 2238 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 459: // unlabelled_stmt -> expr_as_stmt -#line 2240 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 460: // unlabelled_stmt -> lock_stmt -#line 2242 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 461: // unlabelled_stmt -> my_stmt -#line 2244 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 462: // unlabelled_stmt -> yield_stmt -#line 2246 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 463: // yield_stmt -> tkYield, expr_l1 -#line 2251 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2252 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); -#line 2253 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 464: // my_stmt -> tkCycle, expr, unlabelled_stmt -#line 2258 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2259 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = parsertools.MyStmt(ValueStack[ValueStack.Depth-2].ex,ValueStack[ValueStack.Depth-1].stn as statement); -#line 2260 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 465: // var_stmt -> tkVar, var_decl_part -#line 2265 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2266 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); -#line 2267 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 466: // assignment -> var_reference, assign_operator, expr -#line 2272 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2273 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 2274 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 467: // proc_call -> var_reference -#line 2279 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2280 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); -#line 2281 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 468: // goto_stmt -> tkGoto, label_name -#line 2286 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2287 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); -#line 2288 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 469: // compound_stmt -> tkBegin, stmt_list, tkEnd -#line 2293 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2294 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 2295 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; -#line 2296 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; -#line 2297 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 2298 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 470: // stmt_list -> stmt -#line 2303 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2304 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]); -#line 2305 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 471: // stmt_list -> stmt_list, tkSemiColon, stmt -#line 2307 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2308 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as statement_list).Add(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2309 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 472: // if_stmt -> tkIf, expr, tkThen, stmt -#line 2314 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2315 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); -#line 2316 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 473: // if_stmt -> tkIf, expr, tkThen, stmt, tkElse, stmt -#line 2318 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2319 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2320 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 474: // case_stmt -> tkCase, expr, tkOf, case_list, else_case, tkEnd -#line 2325 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2326 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); -#line 2327 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 475: // case_list -> case_item -#line 2332 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2333 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (ValueStack[ValueStack.Depth-1].stn is empty_statement) -#line 2334 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, null); -#line 2335 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2336 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 476: // case_list -> case_list, tkSemiColon, case_item -#line 2338 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2339 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = AddCaseItem(ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2340 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 477: // case_item -> /* empty */ -#line 2345 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2346 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new empty_statement(); -#line 2347 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 478: // case_item -> case_label_list, tkColon, stmt -#line 2349 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2350 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2351 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 479: // case_label_list -> case_label -#line 2356 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2357 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2358 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 480: // case_label_list -> case_label_list, tkComma, case_label -#line 2360 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2361 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2362 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 481: // case_label -> const_elem -#line 2367 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 482: // else_case -> /* empty */ -#line 2372 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null;} break; case 483: // else_case -> tkElse, stmt_list -#line 2374 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 484: // repeat_stmt -> tkRepeat, stmt_list, tkUntil, expr -#line 2379 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2380 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new repeat_node(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2381 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti; -#line 2382 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-3].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-2].ti; -#line 2383 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" ValueStack[ValueStack.Depth-3].stn.source_context = LocationStack[LocationStack.Depth-4].Merge(LocationStack[LocationStack.Depth-2]); -#line 2384 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 485: // while_stmt -> tkWhile, expr, optional_tk_do, stmt -#line 2389 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2390 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewWhileStmt(ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2391 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 486: // optional_tk_do -> tkDo -#line 2396 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 487: // optional_tk_do -> /* empty */ -#line 2398 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = null; } break; case 488: // lock_stmt -> tkLock, expr, tkDo, stmt -#line 2403 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2404 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2405 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 489: // foreach_stmt -> tkForeach, identifier, foreach_stmt_ident_dype_opt, tkIn, expr, // tkDo, stmt -#line 2410 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2411 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-6].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2412 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 490: // foreach_stmt -> tkForeach, tkVar, identifier, tkColon, type_ref, tkIn, expr, // tkDo, stmt -#line 2414 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2415 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2416 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 491: // foreach_stmt -> tkForeach, tkVar, identifier, tkIn, expr, tkDo, stmt -#line 2418 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2419 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-5].id, new no_type_foreach(), ValueStack[ValueStack.Depth-3].ex, (statement)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2420 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 492: // foreach_stmt_ident_dype_opt -> tkColon, type_ref -#line 2425 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 494: // for_stmt -> tkFor, optional_var, identifier, for_stmt_decl_or_assign, expr, // for_cycle_type, expr, optional_tk_do, stmt -#line 2431 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2432 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-8].ob, ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-5].ex, (for_cycle_type)ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2433 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 495: // optional_var -> tkVar -#line 2438 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = true; } break; case 496: // optional_var -> /* empty */ -#line 2440 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = false; } break; case 498: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign -#line 2446 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } break; case 499: // for_cycle_type -> tkTo -#line 2451 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = for_cycle_type.to; } break; case 500: // for_cycle_type -> tkDownto -#line 2453 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ob = for_cycle_type.downto; } break; case 501: // with_stmt -> tkWith, expr_list, tkDo, stmt -#line 2458 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2459 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan); -#line 2460 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 502: // inherited_message -> tkInherited -#line 2465 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2466 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new inherited_message(); -#line 2467 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 2468 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 503: // try_stmt -> tkTry, stmt_list, try_handler -#line 2473 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2474 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new try_stmt(ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].stn as try_handler, CurrentLocationSpan); -#line 2475 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; -#line 2476 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" ValueStack[ValueStack.Depth-2].stn.source_context = LocationStack[LocationStack.Depth-3].Merge(LocationStack[LocationStack.Depth-2]); -#line 2477 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 504: // try_handler -> tkFinally, stmt_list, tkEnd -#line 2482 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2483 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new try_handler_finally(ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); -#line 2484 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; -#line 2485 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-2].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; -#line 2486 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 505: // try_handler -> tkExcept, exception_block, tkEnd -#line 2488 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2489 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new try_handler_except((exception_block)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); -#line 2490 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if ((ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list != null) -#line 2491 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2492 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list.source_context = CurrentLocationSpan; -#line 2493 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (ValueStack[ValueStack.Depth-2].stn as exception_block).source_context = CurrentLocationSpan; -#line 2494 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 2495 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 506: // exception_block -> exception_handler_list, exception_block_else_branch -#line 2500 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2501 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-2].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2502 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 507: // exception_block -> exception_handler_list, tkSemiColon, // exception_block_else_branch -#line 2504 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2505 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-3].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2506 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 508: // exception_block -> stmt_list -#line 2508 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2509 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_block(ValueStack[ValueStack.Depth-1].stn as statement_list, null, null, LocationStack[LocationStack.Depth-1]); -#line 2510 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 509: // exception_handler_list -> exception_handler -#line 2515 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2516 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); -#line 2517 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 510: // exception_handler_list -> exception_handler_list, tkSemiColon, // exception_handler -#line 2519 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2520 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as exception_handler_list).Add(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); -#line 2521 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 511: // exception_block_else_branch -> /* empty */ -#line 2526 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 512: // exception_block_else_branch -> tkElse, stmt_list -#line 2528 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 513: // exception_handler -> tkOn, exception_identifier, tkDo, stmt -#line 2533 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2534 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_handler((ValueStack[ValueStack.Depth-3].stn as exception_ident).variable, (ValueStack[ValueStack.Depth-3].stn as exception_ident).type_name, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 2535 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 514: // exception_identifier -> exception_class_type_identifier -#line 2540 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2541 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 2542 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 515: // exception_identifier -> exception_variable, tkColon, // exception_class_type_identifier -#line 2544 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2545 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new exception_ident(ValueStack[ValueStack.Depth-3].id, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 2546 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 516: // exception_class_type_identifier -> simple_type_identifier -#line 2551 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 517: // exception_variable -> identifier -#line 2556 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 518: // raise_stmt -> tkRaise -#line 2561 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2562 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new raise_stmt(); -#line 2563 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 2564 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 519: // raise_stmt -> tkRaise, expr -#line 2566 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2567 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); -#line 2568 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 520: // expr_list -> expr -#line 2573 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2574 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2575 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 521: // expr_list -> expr_list, tkComma, expr -#line 2577 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2578 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2579 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 522: // expr_as_stmt -> allowable_expr_as_stmt -#line 2584 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2585 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2586 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 523: // allowable_expr_as_stmt -> new_expr -#line 2591 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 524: // expr -> expr_l1 -#line 2596 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 525: // expr -> format_expr -#line 2598 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 526: // expr -> func_decl_lambda -#line 2600 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 527: // expr_l1 -> relop_expr -#line 2605 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 528: // expr_l1 -> question_expr -#line 2607 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 529: // sizeof_expr -> tkSizeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose -#line 2612 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2613 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new sizeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, null, CurrentLocationSpan); -#line 2614 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 530: // typeof_expr -> tkTypeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose -#line 2619 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2620 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); -#line 2621 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 531: // question_expr -> expr_l1, tkQuestion, expr_l1, tkColon, expr_l1 -#line 2626 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2627 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2628 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 532: // simple_or_template_type_reference -> simple_type_identifier -#line 2633 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2634 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 2635 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 533: // simple_or_template_type_reference -> simple_type_identifier, // template_type_params -#line 2637 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2638 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2639 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 534: // simple_or_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_params -#line 2641 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2642 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); -#line 2643 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 535: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose -#line 2648 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2649 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); -#line 2650 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 537: // new_expr -> tkNew, simple_or_template_type_reference, // optional_expr_list_with_bracket -#line 2656 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2657 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-2].td, ValueStack[ValueStack.Depth-1].stn as expression_list, false, null, CurrentLocationSpan); -#line 2658 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 538: // new_expr -> tkNew, array_name_for_new_expr, tkSquareOpen, optional_expr_list, // tkSquareClose, optional_array_initializer -#line 2660 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2661 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var el = ValueStack[ValueStack.Depth-3].stn as expression_list; -#line 2662 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (el == null) -#line 2663 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2664 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var cnt = 0; -#line 2665 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var ac = ValueStack[ValueStack.Depth-1].stn as array_const; -#line 2666 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (ac != null && ac.elements != null) -#line 2667 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" cnt = ac.elements.expressions.Count; -#line 2668 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else parsertools.AddErrorFromResource("WITHOUT_INIT_AND_SIZE",LocationStack[LocationStack.Depth-2]); -#line 2669 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" el = new expression_list(new int32_const(cnt),LocationStack[LocationStack.Depth-6]); -#line 2670 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 2671 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-5].td, el, true, ValueStack[ValueStack.Depth-1].stn as array_const, CurrentLocationSpan); -#line 2672 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 539: // new_expr -> tkNew, tkClass, tkRoundOpen, list_fields_in_unnamed_object, // tkRoundClose -#line 2674 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2675 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" // sugared node var l = ValueStack[ValueStack.Depth-2].ob as name_assign_expr_list; -#line 2676 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var exprs = l.name_expr.Select(x=>x.expr).ToList(); -#line 2677 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var typename = "AnonymousType#"+Guid(); -#line 2678 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var type = new named_type_reference(typename,LocationStack[LocationStack.Depth-5]); -#line 2679 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 2680 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" // node new_expr - for code generation var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan); -#line 2681 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" // node unnamed_type_object - for formatting CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan); -#line 2682 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 540: // field_in_unnamed_object -> identifier, tkAssign, relop_expr -#line 2690 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2691 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); -#line 2692 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 541: // field_in_unnamed_object -> relop_expr -#line 2694 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2695 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" ident name = null; -#line 2696 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var id = ValueStack[ValueStack.Depth-1].ex as ident; -#line 2697 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" dot_node dot; -#line 2698 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (id != null) -#line 2699 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" name = id; -#line 2700 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 2701 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2702 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" dot = ValueStack[ValueStack.Depth-1].ex as dot_node; -#line 2703 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (dot != null) -#line 2704 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2705 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" name = dot.right as ident; -#line 2706 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 2707 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 2708 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (name == null) -#line 2709 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" parsertools.errors.Add(new bad_anon_type(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); -#line 2710 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = new name_assign_expr(name,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); -#line 2711 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 542: // list_fields_in_unnamed_object -> field_in_unnamed_object -#line 2716 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2717 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var l = new name_assign_expr_list(); -#line 2718 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = l.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); -#line 2719 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 543: // list_fields_in_unnamed_object -> list_fields_in_unnamed_object, tkComma, // field_in_unnamed_object -#line 2721 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2722 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var nel = ValueStack[ValueStack.Depth-3].ob as name_assign_expr_list; -#line 2723 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var ss = nel.name_expr.Select(ne=>ne.name.name).FirstOrDefault(x=>string.Compare(x,(ValueStack[ValueStack.Depth-1].ob as name_assign_expr).name.name,true)==0); -#line 2724 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (ss != null) -#line 2725 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" parsertools.errors.Add(new anon_type_duplicate_name(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); -#line 2726 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" nel.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); -#line 2727 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; -#line 2728 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 544: // array_name_for_new_expr -> simple_type_identifier -#line 2733 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 545: // array_name_for_new_expr -> unsized_array_type -#line 2735 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 546: // optional_expr_list_with_bracket -> /* empty */ -#line 2740 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 547: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list, // tkRoundClose -#line 2742 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 548: // relop_expr -> simple_expr -#line 2747 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 549: // relop_expr -> relop_expr, relop, simple_expr -#line 2749 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2750 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 2751 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 550: // relop_expr -> relop_expr, tkMatching, simple_expr -#line 2753 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2754 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new matching_expression(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2755 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 551: // format_expr -> simple_expr, tkColon, simple_expr -#line 2760 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2761 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); -#line 2762 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 552: // format_expr -> simple_expr, tkColon, simple_expr, tkColon, simple_expr -#line 2764 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2765 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2766 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 553: // relop -> tkEqual -#line 2771 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 554: // relop -> tkNotEqual -#line 2773 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 555: // relop -> tkLower -#line 2775 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 556: // relop -> tkGreater -#line 2777 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 557: // relop -> tkLowerEqual -#line 2779 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 558: // relop -> tkGreaterEqual -#line 2781 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 559: // relop -> tkIn -#line 2783 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 560: // simple_expr -> term -#line 2788 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 561: // simple_expr -> simple_expr, addop, term -#line 2790 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2791 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 2792 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 562: // addop -> tkPlus -#line 2797 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 563: // addop -> tkMinus -#line 2799 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 564: // addop -> tkOr -#line 2801 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 565: // addop -> tkXor -#line 2803 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 566: // addop -> tkCSharpStyleOr -#line 2805 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 567: // typecast_op -> tkAs -#line 2810 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2811 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = op_typecast.as_op; -#line 2812 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 568: // typecast_op -> tkIs -#line 2814 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2815 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ob = op_typecast.is_op; -#line 2816 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 569: // as_is_expr -> term, typecast_op, simple_or_template_type_reference -#line 2821 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2822 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); -#line 2823 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 570: // term -> factor -#line 2828 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 571: // term -> new_expr -#line 2830 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 572: // term -> term, mulop, factor -#line 2832 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 573: // term -> as_is_expr -#line 2834 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 574: // mulop -> tkStar -#line 2839 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 575: // mulop -> tkSlash -#line 2841 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 576: // mulop -> tkDiv -#line 2843 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 577: // mulop -> tkMod -#line 2845 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 578: // mulop -> tkShl -#line 2847 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 579: // mulop -> tkShr -#line 2849 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 580: // mulop -> tkAnd -#line 2851 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 581: // default_expr -> tkDefault, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose -#line 2856 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2857 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan); -#line 2858 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 582: // factor -> tkNil -#line 2863 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2864 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new nil_const(); -#line 2865 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex.source_context = CurrentLocationSpan; -#line 2866 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 583: // factor -> literal_or_number -#line 2868 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 584: // factor -> default_expr -#line 2870 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 585: // factor -> tkSquareOpen, elem_list, tkSquareClose -#line 2872 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2873 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 2874 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 586: // factor -> tkNot, factor -#line 2876 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2877 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 2878 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 587: // factor -> sign, factor -#line 2880 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2881 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); -#line 2882 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 588: // factor -> tkDeref, factor -#line 2884 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2885 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); -#line 2886 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 589: // factor -> var_reference -#line 2888 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 590: // literal_or_number -> literal -#line 2893 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 591: // literal_or_number -> unsigned_number -#line 2895 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 592: // var_reference -> var_address, variable -#line 2900 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2901 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewVarReference(ValueStack[ValueStack.Depth-2].stn as get_address, ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); -#line 2902 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 593: // var_reference -> variable -#line 2904 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 594: // var_address -> tkAddressOf -#line 2909 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2910 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan); -#line 2911 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 595: // var_address -> var_address, tkAddressOf -#line 2913 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2914 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan); -#line 2915 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 596: // attribute_variable -> simple_type_identifier, optional_expr_list_with_bracket -#line 2920 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2921 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); -#line 2922 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 597: // dotted_identifier -> identifier -#line 2926 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 598: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword -#line 2928 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2929 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); -#line 2930 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 599: // variable_as_type -> dotted_identifier -#line 2934 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;} break; case 600: // variable_as_type -> dotted_identifier, template_type_params -#line 2936 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 601: // variable -> identifier -#line 2941 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 602: // variable -> operator_name_ident -#line 2943 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 603: // variable -> tkInherited, identifier -#line 2945 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2946 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); -#line 2947 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 604: // variable -> tkRoundOpen, expr, tkRoundClose -#line 2949 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2950 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (!parsertools.build_tree_for_brackets) -#line 2951 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2952 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan; -#line 2953 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; -#line 2954 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 2955 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); -#line 2956 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 605: // variable -> sizeof_expr -#line 2958 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 606: // variable -> typeof_expr -#line 2960 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 607: // variable -> literal_or_number, tkPoint, identifier_or_keyword -#line 2962 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2963 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); -#line 2964 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 608: // variable -> variable, var_specifiers -#line 2966 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2967 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewVariable(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 2968 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 609: // var_specifiers -> tkSquareOpen, expr_list, tkSquareClose -#line 2973 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2974 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 2975 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 610: // var_specifiers -> tkRoundOpen, optional_expr_list, tkRoundClose -#line 2977 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2978 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); -#line 2979 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 611: // var_specifiers -> tkPoint, identifier_keyword_operatorname -#line 2981 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2982 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); -#line 2983 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 612: // var_specifiers -> tkDeref -#line 2985 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2986 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new roof_dereference(); -#line 2987 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex.source_context = CurrentLocationSpan; -#line 2988 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 613: // var_specifiers -> tkAmpersend, template_type_params -#line 2990 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 2991 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new ident_with_templateparams(null, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); -#line 2992 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 614: // optional_expr_list -> expr_list -#line 2997 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 615: // optional_expr_list -> /* empty */ -#line 2999 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 616: // elem_list -> elem_list1 -#line 3004 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 617: // elem_list -> /* empty */ -#line 3006 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.stn = null; } break; case 618: // elem_list1 -> elem -#line 3011 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3012 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 3013 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 619: // elem_list1 -> elem_list1, tkComma, elem -#line 3015 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3016 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 3017 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 620: // elem -> expr -#line 3022 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 621: // elem -> expr, tkDotDot, expr -#line 3024 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 622: // one_literal -> tkStringLiteral -#line 3029 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 623: // one_literal -> tkAsciiChar -#line 3031 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 624: // literal -> literal_list -#line 3036 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3037 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line); -#line 3038 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 625: // literal_list -> one_literal -#line 3043 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3044 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); -#line 3045 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 626: // literal_list -> literal_list, one_literal -#line 3047 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3048 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as literal_const_line).Add(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); -#line 3049 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 627: // operator_name_ident -> tkOperator, overload_operator -#line 3054 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3055 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new operator_name_ident((ValueStack[ValueStack.Depth-1].op as op_type_node).text, (ValueStack[ValueStack.Depth-1].op as op_type_node).type, CurrentLocationSpan); -#line 3056 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 628: // optional_method_modificators -> tkSemiColon -#line 3061 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3062 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); -#line 3063 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 629: // optional_method_modificators -> tkSemiColon, meth_modificators, tkSemiColon -#line 3065 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3066 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; -#line 3067 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 630: // optional_method_modificators1 -> /* empty */ -#line 3073 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3074 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); -#line 3075 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 631: // optional_method_modificators1 -> tkSemiColon, meth_modificators -#line 3077 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3078 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 3079 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 632: // meth_modificators -> meth_modificator -#line 3085 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3086 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); -#line 3087 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 633: // meth_modificators -> meth_modificators, tkSemiColon, meth_modificator -#line 3089 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3090 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as procedure_attributes_list).Add(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); -#line 3091 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 634: // identifier -> tkIdentifier -#line 3096 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 635: // identifier -> property_specifier_directives -#line 3098 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 636: // identifier -> non_reserved -#line 3100 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 637: // identifier_or_keyword -> identifier -#line 3105 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 638: // identifier_or_keyword -> keyword -#line 3107 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 639: // identifier_or_keyword -> reserved_keyword -#line 3109 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 640: // identifier_keyword_operatorname -> identifier -#line 3114 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 641: // identifier_keyword_operatorname -> keyword -#line 3116 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 642: // identifier_keyword_operatorname -> operator_name_ident -#line 3118 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 643: // meth_modificator -> tkAbstract -#line 3123 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 644: // meth_modificator -> tkOverload -#line 3125 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 645: // meth_modificator -> tkReintroduce -#line 3127 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 646: // meth_modificator -> tkOverride -#line 3129 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 647: // meth_modificator -> tkExtensionMethod -#line 3131 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 648: // meth_modificator -> tkVirtual -#line 3133 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 649: // property_specifier_directives -> tkRead -#line 3138 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 650: // property_specifier_directives -> tkWrite -#line 3140 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 651: // non_reserved -> tkName -#line 3145 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 652: // non_reserved -> tkNew -#line 3147 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 653: // visibility_specifier -> tkInternal -#line 3152 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 654: // visibility_specifier -> tkPublic -#line 3154 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 655: // visibility_specifier -> tkProtected -#line 3156 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 656: // visibility_specifier -> tkPrivate -#line 3158 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 657: // keyword -> visibility_specifier -#line 3163 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3164 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); -#line 3165 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 658: // keyword -> tkSealed -#line 3167 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 659: // keyword -> tkTemplate -#line 3169 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 660: // keyword -> tkOr -#line 3171 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 661: // keyword -> tkTypeOf -#line 3173 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 662: // keyword -> tkSizeOf -#line 3175 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 663: // keyword -> tkDefault -#line 3177 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 664: // keyword -> tkWhere -#line 3179 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 665: // keyword -> tkXor -#line 3181 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 666: // keyword -> tkAnd -#line 3183 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 667: // keyword -> tkDiv -#line 3185 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 668: // keyword -> tkMod -#line 3187 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 669: // keyword -> tkShl -#line 3189 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 670: // keyword -> tkShr -#line 3191 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 671: // keyword -> tkNot -#line 3193 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 672: // keyword -> tkAs -#line 3195 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 673: // keyword -> tkIn -#line 3197 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 674: // keyword -> tkIs -#line 3199 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 675: // keyword -> tkArray -#line 3201 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 676: // keyword -> tkSequence -#line 3203 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 677: // keyword -> tkBegin -#line 3205 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 678: // keyword -> tkCase -#line 3207 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 679: // keyword -> tkClass -#line 3209 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 680: // keyword -> tkConst -#line 3211 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 681: // keyword -> tkConstructor -#line 3213 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 682: // keyword -> tkDestructor -#line 3215 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 683: // keyword -> tkDownto -#line 3217 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 684: // keyword -> tkDo -#line 3219 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 685: // keyword -> tkElse -#line 3221 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 686: // keyword -> tkExcept -#line 3223 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 687: // keyword -> tkFile -#line 3225 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 688: // keyword -> tkAuto -#line 3227 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 689: // keyword -> tkFinalization -#line 3229 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 690: // keyword -> tkFinally -#line 3231 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 691: // keyword -> tkFor -#line 3233 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 692: // keyword -> tkForeach -#line 3235 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 693: // keyword -> tkFunction -#line 3237 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 694: // keyword -> tkIf -#line 3239 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 695: // keyword -> tkImplementation -#line 3241 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 696: // keyword -> tkInherited -#line 3243 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 697: // keyword -> tkInitialization -#line 3245 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 698: // keyword -> tkInterface -#line 3247 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 699: // keyword -> tkProcedure -#line 3249 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 700: // keyword -> tkProperty -#line 3251 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 701: // keyword -> tkRaise -#line 3253 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 702: // keyword -> tkRecord -#line 3255 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 703: // keyword -> tkRepeat -#line 3257 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 704: // keyword -> tkSet -#line 3259 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 705: // keyword -> tkTry -#line 3261 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 706: // keyword -> tkType -#line 3263 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 707: // keyword -> tkThen -#line 3265 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 708: // keyword -> tkTo -#line 3267 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 709: // keyword -> tkUntil -#line 3269 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 710: // keyword -> tkUses -#line 3271 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 711: // keyword -> tkVar -#line 3273 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 712: // keyword -> tkWhile -#line 3275 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 713: // keyword -> tkWith -#line 3277 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 714: // keyword -> tkNil -#line 3279 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 715: // keyword -> tkGoto -#line 3281 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 716: // keyword -> tkOf -#line 3283 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 717: // keyword -> tkLabel -#line 3285 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 718: // keyword -> tkProgram -#line 3287 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 719: // keyword -> tkUnit -#line 3289 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 720: // keyword -> tkLibrary -#line 3291 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 721: // keyword -> tkExternal -#line 3293 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 722: // keyword -> tkParams -#line 3295 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 723: // reserved_keyword -> tkOperator -#line 3300 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 724: // reserved_keyword -> tkEnd -#line 3302 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 725: // overload_operator -> tkMinus -#line 3307 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 726: // overload_operator -> tkPlus -#line 3309 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 727: // overload_operator -> tkSlash -#line 3311 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 728: // overload_operator -> tkStar -#line 3313 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 729: // overload_operator -> tkEqual -#line 3315 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 730: // overload_operator -> tkGreater -#line 3317 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 731: // overload_operator -> tkGreaterEqual -#line 3319 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 732: // overload_operator -> tkLower -#line 3321 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 733: // overload_operator -> tkLowerEqual -#line 3323 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 734: // overload_operator -> tkNotEqual -#line 3325 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 735: // overload_operator -> tkOr -#line 3327 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 736: // overload_operator -> tkXor -#line 3329 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 737: // overload_operator -> tkAnd -#line 3331 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 738: // overload_operator -> tkDiv -#line 3333 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 739: // overload_operator -> tkMod -#line 3335 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 740: // overload_operator -> tkShl -#line 3337 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 741: // overload_operator -> tkShr -#line 3339 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 742: // overload_operator -> tkNot -#line 3341 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 743: // overload_operator -> tkIn -#line 3343 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 744: // overload_operator -> tkImplicit -#line 3345 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 745: // overload_operator -> tkExplicit -#line 3347 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 746: // overload_operator -> assign_operator -#line 3349 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 747: // assign_operator -> tkAssign -#line 3354 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 748: // assign_operator -> tkPlusEqual -#line 3356 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 749: // assign_operator -> tkMinusEqual -#line 3358 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 750: // assign_operator -> tkMultEqual -#line 3360 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 751: // assign_operator -> tkDivEqual -#line 3362 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 752: // func_decl_lambda -> identifier, tkArrow, lambda_function_body -#line 3367 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3368 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); -#line 3369 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); -#line 3370 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3371 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 753: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype, // tkArrow, lambda_function_body -#line 3373 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3374 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3375 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 754: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body -#line 3377 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3378 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); -#line 3379 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); -#line 3380 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-5].td, parametr_kind.none, null, loc), loc); -#line 3381 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3382 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 755: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body -#line 3384 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3385 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); -#line 3386 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); -#line 3387 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list.Count; i++) -#line 3388 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); -#line 3389 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3390 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 756: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkSemiColon, // full_lambda_fp_list, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body -#line 3392 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3393 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, LocationStack[LocationStack.Depth-9]); -#line 3394 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]); -#line 3395 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-7].td, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); -#line 3396 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list.Count; i++) -#line 3397 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); -#line 3398 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3399 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 757: // func_decl_lambda -> tkRoundOpen, identifier, tkComma, lambda_simple_fp_sect, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body -#line 3401 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3402 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var typed_pars = ValueStack[ValueStack.Depth-5].stn as typed_parameters; -#line 3403 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (typed_pars.vars_type is lambda_inferred_type) -#line 3404 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3405 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formal_pars = new formal_parameters(); -#line 3406 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idd = ValueStack[ValueStack.Depth-7].id as ident; -#line 3407 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3408 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context); -#line 3409 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.Add(new_typed_pars); -#line 3410 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" foreach (var id in typed_pars.idents.idents) -#line 3411 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3412 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3413 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); -#line 3414 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.Add(new_typed_pars); -#line 3415 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3416 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); -#line 3417 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3418 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3419 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 3420 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3421 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); -#line 3422 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, loc); -#line 3423 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var otherFormalPars = ValueStack[ValueStack.Depth-5].stn as typed_parameters; -#line 3424 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int j = 0; j < otherFormalPars.idents.idents.Count; j++) -#line 3425 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" idList.idents.Add(otherFormalPars.idents.idents[j]); -#line 3426 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var parsType = otherFormalPars.vars_type; -#line 3427 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, loc), loc); -#line 3428 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3429 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3430 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 758: // func_decl_lambda -> tkRoundOpen, identifier, tkComma, lambda_simple_fp_sect, // tkSemiColon, full_lambda_fp_list, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body -#line 3432 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3433 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var typed_pars = ValueStack[ValueStack.Depth-7].stn as typed_parameters; -#line 3434 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (typed_pars.vars_type is lambda_inferred_type) -#line 3435 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3436 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formal_pars = new formal_parameters(); -#line 3437 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idd = ValueStack[ValueStack.Depth-9].id as ident; -#line 3438 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3439 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context); -#line 3440 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.Add(new_typed_pars); -#line 3441 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" foreach (var id in typed_pars.idents.idents) -#line 3442 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3443 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3444 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); -#line 3445 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.Add(new_typed_pars); -#line 3446 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3447 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list.Count; i++) -#line 3448 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); -#line 3449 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" -#line 3450 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); -#line 3451 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3452 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3453 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 3454 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3455 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]); -#line 3456 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, loc); -#line 3457 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var otherFormalPars = ValueStack[ValueStack.Depth-7].stn as typed_parameters; -#line 3458 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int j = 0; j < otherFormalPars.idents.idents.Count; j++) -#line 3459 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" idList.idents.Add(otherFormalPars.idents.idents[j]); -#line 3460 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var parsType = otherFormalPars.vars_type; -#line 3461 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); -#line 3462 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list.Count; i++) -#line 3463 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); -#line 3464 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3465 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3466 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 759: // func_decl_lambda -> expl_func_decl_lambda -#line 3468 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3469 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; -#line 3470 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 760: // expl_func_decl_lambda -> tkFunction, lambda_type_ref, tkArrow, // lambda_function_body -#line 3475 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3476 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3477 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 761: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body -#line 3479 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3480 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3481 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 762: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, lambda_type_ref, tkArrow, // lambda_function_body -#line 3483 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3484 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3485 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 763: // expl_func_decl_lambda -> tkProcedure, tkArrow, lambda_procedure_body -#line 3487 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3488 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3489 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 764: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, tkRoundClose, tkArrow, // lambda_procedure_body -#line 3491 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3492 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3493 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 765: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, tkArrow, lambda_procedure_body -#line 3495 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3496 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-4].stn as formal_parameters, null, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); -#line 3497 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 766: // full_lambda_fp_list -> lambda_simple_fp_sect -#line 3502 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3503 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var typed_pars = ValueStack[ValueStack.Depth-1].stn as typed_parameters; -#line 3504 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" if (typed_pars.vars_type is lambda_inferred_type) -#line 3505 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3506 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new formal_parameters(); -#line 3507 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" foreach (var id in typed_pars.idents.idents) -#line 3508 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3509 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3510 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" var new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); -#line 3511 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" (CurrentSemanticValue.stn as formal_parameters).Add(new_typed_pars); -#line 3512 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3513 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn.source_context = CurrentLocationSpan; -#line 3514 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3515 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" else -#line 3516 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3517 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new formal_parameters(typed_pars, CurrentLocationSpan); -#line 3518 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } -#line 3519 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 767: // full_lambda_fp_list -> full_lambda_fp_list, tkSemiColon, lambda_simple_fp_sect -#line 3521 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3522 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn =(ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); -#line 3523 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 768: // lambda_simple_fp_sect -> ident_list, lambda_type_ref -#line 3528 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3529 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-2].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); -#line 3530 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 769: // lambda_type_ref -> /* empty */ -#line 3535 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3536 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3537 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 770: // lambda_type_ref -> tkColon, fptype -#line 3539 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3540 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 3541 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 771: // lambda_type_ref_noproctype -> /* empty */ -#line 3546 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3547 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); -#line 3548 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 772: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype -#line 3550 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3551 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; -#line 3552 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 773: // lambda_function_body -> expr_l1 -#line 3557 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3558 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = NewLambdaBody(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); -#line 3559 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 774: // lambda_function_body -> compound_stmt -#line 3561 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3562 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 3563 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 775: // lambda_procedure_body -> proc_call -#line 3568 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3569 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); -#line 3570 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; case 776: // lambda_procedure_body -> compound_stmt -#line 3572 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" { -#line 3573 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; -#line 3574 "D:\PascalABC.NET\!PABC_Git\Parsers\PascalABCParserNewSaushkin\ABCPascal.y" } break; }