/// <summary>
 /// Исправление VariableDefinitionNode для переменной Result функций. 
 /// В семантике эта переменная называется $rv_{FuncName}, а нам нужно имя result
 /// Создается новый фиктивный экземпляр local_variable с тем же типом и именем result и возвращается вместо старого.
 /// </summary>
 private void FixResultVar()
 {
     for (int i=0; i<Variables.Count; ++i)
         if (Variables[i].name.StartsWith("$rv_"))
         {
             TreeRealization.local_variable OldResult = Variables[i] as TreeRealization.local_variable;
             TreeRealization.local_variable NewResult = new PascalABCCompiler.TreeRealization.local_variable("result", OldResult.type, OldResult.function, OldResult.loc);
             Variables[i] = NewResult;
         }
 }
示例#2
0
 /// <summary>
 /// Исправление VariableDefinitionNode для переменной Result функций.
 /// В семантике эта переменная называется $rv_{FuncName}, а нам нужно имя result
 /// Создается новый фиктивный экземпляр local_variable с тем же типом и именем result и возвращается вместо старого.
 /// </summary>
 private void FixResultVar()
 {
     for (int i = 0; i < Variables.Count; ++i)
     {
         if (Variables[i].name.StartsWith("$rv_"))
         {
             TreeRealization.local_variable OldResult = Variables[i] as TreeRealization.local_variable;
             TreeRealization.local_variable NewResult = new PascalABCCompiler.TreeRealization.local_variable("result", OldResult.type, OldResult.function, OldResult.loc);
             Variables[i] = NewResult;
         }
     }
 }