package jetbrains.mps.lang.quotation.generator.baseLanguage.template.main;

/*Generated by MPS */

import jetbrains.mps.generator.runtime.Generated;
import jetbrains.mps.generator.runtime.TemplateDeclarationBase;
import org.jetbrains.mps.openapi.model.SNodeReference;
import jetbrains.mps.smodel.SNodePointer;
import jetbrains.mps.generator.runtime.FragmentResult;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.generator.runtime.TemplateContext;
import jetbrains.mps.generator.runtime.GenerationException;
import jetbrains.mps.generator.runtime.TemplateExecutionEnvironment;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.model.SNodeAccessUtil;
import jetbrains.mps.generator.template.PropertyMacroContext;
import java.util.Collection;
import java.util.Collections;
import jetbrains.mps.generator.template.IfMacroContext;
import jetbrains.mps.generator.runtime.TemplateUtil;
import jetbrains.mps.generator.impl.reference.RefResolver;
import jetbrains.mps.generator.template.SourceSubstituteMacroNodeContext;
import java.util.List;
import java.util.ArrayList;
import jetbrains.mps.generator.template.SourceSubstituteMacroNodesContext;
import jetbrains.mps.generator.template.TemplateArgumentContext;
import jetbrains.mps.generator.runtime.ApplySink;
import jetbrains.mps.generator.runtime.MetaObjectContainer;
import org.jetbrains.mps.openapi.language.SConcept;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import org.jetbrains.mps.openapi.language.SProperty;
import org.jetbrains.mps.openapi.language.SReferenceLink;
import org.jetbrains.mps.openapi.language.SContainmentLink;

@Generated
public class Template_nodeBuilder extends TemplateDeclarationBase {

  public Template_nodeBuilder() {
    super(new MO());
  }

  public SNodeReference getTemplateNode() {
    return new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730598998073");
  }

  public String[] getParameterNames() {
    return new String[]{"quotation"};
  }

  protected FragmentResult applyPart0(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
    {
      TemplateContext context1 = context.subContext();
      {
        final SNode tnode2 = environment.createOutputNode(myConcepts[1]);
        {
          environment.nodeCopied(context1, tnode2, "tpl/r:00000000-0000-4000-0000-011c8959034c/2249837730599246770");
          SNodeAccessUtil.setPropertyValue(tnode2, myProperties[0], QueriesGenerated.propertyMacro_GetValue_9_0(new PropertyMacroContext(context1, "nb", propertyMacro)));
          TemplateContext context2 = context1.subContext();
          {
            final SNode tnode3 = environment.createOutputNode(myConcepts[2]);
            environment.associate(tnode3, myAssociationLinks[0], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder");
            environment.aggregate(tnode2, myAggregationLinks[0], tnode3);
          }
          {
            final SNode tnode4 = environment.createOutputNode(myConcepts[3]);
            {
              TemplateContext context3 = context2.subContext();
              {
                final SNode tnode5 = environment.createOutputNode(myConcepts[4]);
                {
                  TemplateContext context4 = context3.subContext();
                  {
                    final SNode tnode6 = environment.createOutputNode(myConcepts[5]);
                    {
                      environment.associate(tnode6, myAssociationLinks[1], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder.<init>(org.jetbrains.mps.openapi.model.SModel,org.jetbrains.mps.openapi.model.SNodeId)");
                      TemplateContext context5 = context4.subContext();
                      {
                        Collection<SNode> tlist7 = Collections.emptyList();
                        if (QueriesGenerated.ifMacro_Condition_9_0(new IfMacroContext(context5, ifMacroRef))) {
                          final SNode tnode8 = environment.createOutputNode(myConcepts[6]);
                          tlist7 = TemplateUtil.singletonList(tnode8);
                        } else {
                          final SNode tnode9 = environment.createOutputNode(myConcepts[7]);
                          {
                            TemplateContext context6 = context5.subContext();
                            {
                              final SNode tnode10 = environment.createOutputNode(myConcepts[2]);
                              environment.associate(tnode10, myAssociationLinks[0], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SModel");
                              environment.aggregate(tnode9, myAggregationLinks[1], tnode10);
                            }
                            {
                              final SNode tnode11 = environment.createOutputNode(myConcepts[8]);
                              environment.resolve(new RefResolver(tnode11, myAssociationLinks[2], context6, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246799"), "expr") {
                                @Override
                                public Object resolve() {
                                  return QueriesGenerated.referenceMacro_GetReferent_9_0(createQueryContext());
                                }
                              });
                              environment.aggregate(tnode9, myAggregationLinks[2], tnode11);
                            }
                          }
                          tlist7 = TemplateUtil.singletonList(tnode9);
                        }
                        environment.aggregate(tnode6, myAggregationLinks[3], tlist7);
                      }
                      {
                        Collection<SNode> tlist12 = Collections.emptyList();
                        if (QueriesGenerated.ifMacro_Condition_9_1(new IfMacroContext(context5, ifMacroRef1))) {
                          final SNode tnode13 = environment.createOutputNode(myConcepts[6]);
                          tlist12 = TemplateUtil.singletonList(tnode13);
                        } else {
                          final SNode tnode14 = environment.createOutputNode(myConcepts[7]);
                          {
                            TemplateContext context7 = context5.subContext();
                            {
                              final SNode tnode15 = environment.createOutputNode(myConcepts[2]);
                              environment.associate(tnode15, myAssociationLinks[0], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeId");
                              environment.aggregate(tnode14, myAggregationLinks[1], tnode15);
                            }
                            {
                              final SNode tnode16 = environment.createOutputNode(myConcepts[8]);
                              environment.resolve(new RefResolver(tnode16, myAssociationLinks[2], context7, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246866"), "expr") {
                                @Override
                                public Object resolve() {
                                  return QueriesGenerated.referenceMacro_GetReferent_9_1(createQueryContext());
                                }
                              });
                              environment.aggregate(tnode14, myAggregationLinks[2], tnode16);
                            }
                          }
                          tlist12 = TemplateUtil.singletonList(tnode14);
                        }
                        environment.aggregate(tnode6, myAggregationLinks[3], tlist12);
                      }
                    }
                    environment.aggregate(tnode5, myAggregationLinks[4], tnode6);
                  }
                }
                environment.aggregate(tnode4, myAggregationLinks[5], tnode5);
              }
              {
                final SNode tnode17 = environment.createOutputNode(myConcepts[9]);
                {
                  environment.associate(tnode17, myAssociationLinks[1], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder.init(org.jetbrains.mps.openapi.language.SConcept)");
                  TemplateContext context8 = context3.subContext();
                  {
                    Collection<SNode> tlist18 = null;
                    {
                      final SNode switchInput18 = QueriesGenerated.sourceNodeQuery_9_0(new SourceSubstituteMacroNodeContext(context8, switchMacroRef));
                      if (switchInput18 == null) {
                        environment.nullInputSwitch(templateSwitchNode);
                        tlist18 = Collections.emptyList();
                      } else {
                        TemplateContext switchContext18 = context8;
                        switchContext18 = switchContext18.subContext(null, switchInput18);
                        tlist18 = environment.trySwitch(templateSwitchNode, switchContext18);
                        if (tlist18 == null) {
                          final SNode tnode19 = environment.createOutputNode(myConcepts[6]);
                          tlist18 = TemplateUtil.singletonList(tnode19);
                        }
                      }
                    }
                    environment.aggregate(tnode17, myAggregationLinks[3], tlist18);
                  }
                }
                environment.aggregate(tnode4, myAggregationLinks[6], tnode17);
              }
            }
            environment.aggregate(tnode2, myAggregationLinks[7], tnode4);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[8], tnode2);
      }
    }
    FragmentResult rv = nodeFragment(9, tnode1);
    return rv;
  }
  protected FragmentResult applyPart1(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final SNode tnode1 = environment.createOutputNode(myConcepts[10]);
    {
      TemplateContext context1 = context.subContext();
      {
        final SNode tnode2 = environment.createOutputNode(myConcepts[11]);
        {
          TemplateContext context2 = context1.subContext();
          {
            final SNode tnode3 = environment.createOutputNode(myConcepts[3]);
            {
              TemplateContext context3 = context2.subContext();
              {
                final SNode tnode4 = environment.createOutputNode(myConcepts[8]);
                environment.resolveInTemplateLater(tnode4, myAssociationLinks[2], templateNode, "tpl/r:00000000-0000-4000-0000-011c8959034c/2249837730599246770", "nb", context3);
                environment.aggregate(tnode3, myAggregationLinks[5], tnode4);
              }
              {
                final SNode tnode5 = environment.createOutputNode(myConcepts[9]);
                environment.associate(tnode5, myAssociationLinks[1], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder.getResult()");
                environment.aggregate(tnode3, myAggregationLinks[6], tnode5);
              }
            }
            environment.aggregate(tnode2, myAggregationLinks[10], tnode3);
          }
          {
            final SNode tnode6 = environment.createOutputNode(myConcepts[8]);
            environment.resolve(new RefResolver(tnode6, myAssociationLinks[2], context2, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246954"), "_node_") {
              @Override
              public Object resolve() {
                return QueriesGenerated.referenceMacro_GetReferent_9_2(createQueryContext());
              }
            });
            environment.aggregate(tnode2, myAggregationLinks[11], tnode6);
          }
        }
        environment.aggregate(tnode1, myAggregationLinks[12], tnode2);
      }
    }
    FragmentResult rv = nodeFragment(9, tnode1);
    return rv;
  }
  protected FragmentResult applyPart2(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final List<SNode> tlist1 = new ArrayList<SNode>();
    final Iterable<SNode> loopList1 = QueriesGenerated.sourceNodesQuery_9_0(new SourceSubstituteMacroNodesContext(context, loopMacroRef));
    for (SNode itnode1 : loopList1) {
      if (itnode1 == null) {
        continue;
      }
      TemplateContext context1 = context.subContext(itnode1);
      final SNode tnode2 = environment.createOutputNode(myConcepts[10]);
      {
        TemplateContext context2 = context1.subContext();
        {
          final SNode tnode3 = environment.createOutputNode(myConcepts[3]);
          {
            TemplateContext context3 = context2.subContext();
            {
              final SNode tnode4 = environment.createOutputNode(myConcepts[8]);
              environment.resolveInTemplateLater(tnode4, myAssociationLinks[2], templateNode1, "tpl/r:00000000-0000-4000-0000-011c8959034c/2249837730599246770", "nb", context3);
              environment.aggregate(tnode3, myAggregationLinks[5], tnode4);
            }
            {
              final SNode tnode5 = environment.createOutputNode(myConcepts[9]);
              {
                environment.associate(tnode5, myAssociationLinks[1], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder.setProperty(org.jetbrains.mps.openapi.language.SProperty,java.lang.String)");
                TemplateContext context4 = context3.subContext();
                {
                  Collection<SNode> tlist6 = null;
                  SNode callInputNode6 = QueriesGenerated.sourceNodeQuery_9_1(new SourceSubstituteMacroNodeContext(context4, callMacro));
                  TemplateContext context5 = context4;
                  context5 = context5.subContext(null, callInputNode6);
                  if (callInputNode6 != null) {
                    tlist6 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6911370362349557186", "reduce_PropertyId_SProperty"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246969")).apply(context5);
                  } else {
                    tlist6 = Collections.emptyList();
                  }
                  environment.aggregate(tnode5, myAggregationLinks[3], tlist6);
                }
                {
                  final SNode tnode7 = environment.createOutputNode(myConcepts[12]);
                  SNodeAccessUtil.setPropertyValue(tnode7, myProperties[1], QueriesGenerated.propertyMacro_GetValue_9_1(new PropertyMacroContext(context4, "propertyValue", propertyMacro1)));
                  environment.aggregate(tnode5, myAggregationLinks[3], tnode7);
                }
              }
              environment.aggregate(tnode3, myAggregationLinks[6], tnode5);
            }
          }
          environment.aggregate(tnode2, myAggregationLinks[12], tnode3);
        }
      }
      tlist1.add(tnode2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  protected FragmentResult applyPart3(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final List<SNode> tlist1 = new ArrayList<SNode>();
    final Iterable<SNode> loopList1 = QueriesGenerated.sourceNodesQuery_9_1(new SourceSubstituteMacroNodesContext(context, loopMacroRef1));
    for (SNode itnode1 : loopList1) {
      if (itnode1 == null) {
        continue;
      }
      TemplateContext context1 = context.subContext(itnode1);
      context1 = context1.withVariable("loop:inputNode", context.getInput());
      final SNode tnode2 = environment.createOutputNode(myConcepts[10]);
      {
        TemplateContext context2 = context1.subContext();
        {
          Collection<SNode> tlist3 = Collections.emptyList();
          if (QueriesGenerated.ifMacro_Condition_9_2(new IfMacroContext(context2, ifMacroRef2))) {
            final SNode tnode4 = environment.createOutputNode(myConcepts[13]);
            {
              environment.associate(tnode4, myAssociationLinks[3], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil");
              environment.associate(tnode4, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil.setPropertyValue(org.jetbrains.mps.openapi.model.SNode,org.jetbrains.mps.openapi.language.SProperty,java.lang.Object)");
              TemplateContext context3 = context2.subContext();
              {
                final SNode tnode5 = environment.createOutputNode(myConcepts[14]);
                {
                  TemplateContext context4 = context3.subContext();
                  {
                    final SNode tnode6 = environment.createOutputNode(myConcepts[8]);
                    environment.resolve(new RefResolver(tnode6, myAssociationLinks[2], context4, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247089"), "_node_") {
                      @Override
                      public Object resolve() {
                        return QueriesGenerated.referenceMacro_GetReferent_9_3(createQueryContext());
                      }
                    });
                    environment.aggregate(tnode5, myAggregationLinks[13], tnode6);
                  }
                }
                environment.aggregate(tnode4, myAggregationLinks[3], tnode5);
              }
              {
                Collection<SNode> tlist7 = null;
                SNode callInputNode7 = QueriesGenerated.sourceNodeQuery_9_2(new SourceSubstituteMacroNodeContext(context3, callMacro1));
                TemplateContext context5 = context3;
                context5 = context5.subContext(null, callInputNode7);
                if (callInputNode7 != null) {
                  tlist7 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6911370362349557186", "reduce_PropertyId_SProperty"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247098")).apply(context5);
                } else {
                  tlist7 = Collections.emptyList();
                }
                environment.aggregate(tnode4, myAggregationLinks[3], tlist7);
              }
              {
                final SNode tnode8 = environment.createOutputNode(myConcepts[7]);
                {
                  TemplateContext context6 = context3.subContext();
                  {
                    final SNode tnode9 = environment.createOutputNode(myConcepts[8]);
                    environment.resolve(new RefResolver(tnode9, myAssociationLinks[2], context6, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247120"), "expr") {
                      @Override
                      public Object resolve() {
                        return QueriesGenerated.referenceMacro_GetReferent_9_4(createQueryContext());
                      }
                    });
                    environment.aggregate(tnode8, myAggregationLinks[2], tnode9);
                  }
                  {
                    Collection<SNode> tlist10 = null;
                    final SNode copySrcInput10 = QueriesGenerated.sourceNodeQuery_9_3(new SourceSubstituteMacroNodeContext(context6, copySrcMacro));
                    tlist10 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput10), copySrcMacro, "tpl/r:00000000-0000-4000-0000-011c8959034c/2249837730599247130", context6);
                    environment.aggregate(tnode8, myAggregationLinks[1], tlist10);
                  }
                }
                environment.aggregate(tnode4, myAggregationLinks[3], tnode8);
              }
            }
            tlist3 = TemplateUtil.singletonList(tnode4);
          } else {
            final SNode tnode11 = environment.createOutputNode(myConcepts[13]);
            {
              environment.associate(tnode11, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil.setProperty(org.jetbrains.mps.openapi.model.SNode,org.jetbrains.mps.openapi.language.SProperty,java.lang.String)");
              environment.associate(tnode11, myAssociationLinks[3], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil");
              TemplateContext context7 = context2.subContext();
              {
                final SNode tnode12 = environment.createOutputNode(myConcepts[14]);
                {
                  TemplateContext context8 = context7.subContext();
                  {
                    final SNode tnode13 = environment.createOutputNode(myConcepts[8]);
                    environment.resolve(new RefResolver(tnode13, myAssociationLinks[2], context8, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247156"), "_node_") {
                      @Override
                      public Object resolve() {
                        return QueriesGenerated.referenceMacro_GetReferent_9_5(createQueryContext());
                      }
                    });
                    environment.aggregate(tnode12, myAggregationLinks[13], tnode13);
                  }
                }
                environment.aggregate(tnode11, myAggregationLinks[3], tnode12);
              }
              {
                Collection<SNode> tlist14 = null;
                SNode callInputNode14 = QueriesGenerated.sourceNodeQuery_9_4(new SourceSubstituteMacroNodeContext(context7, callMacro2));
                TemplateContext context9 = context7;
                context9 = context9.subContext(null, callInputNode14);
                if (callInputNode14 != null) {
                  tlist14 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6911370362349557186", "reduce_PropertyId_SProperty"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247165")).apply(context9);
                } else {
                  tlist14 = Collections.emptyList();
                }
                environment.aggregate(tnode11, myAggregationLinks[3], tlist14);
              }
              {
                final SNode tnode15 = environment.createOutputNode(myConcepts[7]);
                {
                  TemplateContext context10 = context7.subContext();
                  {
                    final SNode tnode16 = environment.createOutputNode(myConcepts[8]);
                    environment.resolve(new RefResolver(tnode16, myAssociationLinks[2], context10, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247187"), "expr") {
                      @Override
                      public Object resolve() {
                        return QueriesGenerated.referenceMacro_GetReferent_9_6(createQueryContext());
                      }
                    });
                    environment.aggregate(tnode15, myAggregationLinks[2], tnode16);
                  }
                  {
                    final SNode tnode17 = environment.createOutputNode(myConcepts[15]);
                    environment.aggregate(tnode15, myAggregationLinks[1], tnode17);
                  }
                }
                environment.aggregate(tnode11, myAggregationLinks[3], tnode15);
              }
            }
            tlist3 = TemplateUtil.singletonList(tnode11);
          }
          environment.aggregate(tnode2, myAggregationLinks[12], tlist3);
        }
      }
      tlist1.add(tnode2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  protected FragmentResult applyPart4(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final List<SNode> tlist1 = new ArrayList<SNode>();
    final Iterable<SNode> loopList1 = QueriesGenerated.sourceNodesQuery_9_2(new SourceSubstituteMacroNodesContext(context, loopMacroRef2));
    for (SNode itnode1 : loopList1) {
      if (itnode1 == null) {
        continue;
      }
      TemplateContext context1 = context.subContext(itnode1);
      final SNode tnode2 = environment.createOutputNode(myConcepts[10]);
      {
        TemplateContext context2 = context1.subContext();
        {
          final SNode tnode3 = environment.createOutputNode(myConcepts[3]);
          {
            TemplateContext context3 = context2.subContext();
            {
              final SNode tnode4 = environment.createOutputNode(myConcepts[8]);
              environment.resolveInTemplateLater(tnode4, myAssociationLinks[2], templateNode2, "tpl/r:00000000-0000-4000-0000-011c8959034c/2249837730599246770", "nb", context3);
              environment.aggregate(tnode3, myAggregationLinks[5], tnode4);
            }
            {
              final SNode tnode5 = environment.createOutputNode(myConcepts[9]);
              {
                environment.associate(tnode5, myAssociationLinks[1], "6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel.builder(MPS.Core/)", "~SNodeBuilder.setReference(org.jetbrains.mps.openapi.language.SReferenceLink,java.lang.String)");
                TemplateContext context4 = context3.subContext();
                {
                  Collection<SNode> tlist6 = null;
                  SNode callInputNode6 = QueriesGenerated.sourceNodeQuery_9_5(new SourceSubstituteMacroNodeContext(context4, callMacro3));
                  TemplateContext context5 = context4;
                  context5 = context5.subContext(null, callInputNode6);
                  if (callInputNode6 != null) {
                    tlist6 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "8415841354032418697", "reduce_ReferenceLinkId_SReferenceLink"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247203")).apply(context5);
                  } else {
                    tlist6 = Collections.emptyList();
                  }
                  environment.aggregate(tnode5, myAggregationLinks[3], tlist6);
                }
                {
                  final SNode tnode7 = environment.createOutputNode(myConcepts[12]);
                  SNodeAccessUtil.setPropertyValue(tnode7, myProperties[1], QueriesGenerated.propertyMacro_GetValue_9_2(new PropertyMacroContext(context4, "targetNodeId", propertyMacro2)));
                  environment.aggregate(tnode5, myAggregationLinks[3], tnode7);
                }
              }
              environment.aggregate(tnode3, myAggregationLinks[6], tnode5);
            }
          }
          environment.aggregate(tnode2, myAggregationLinks[12], tnode3);
        }
      }
      tlist1.add(tnode2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  protected FragmentResult applyPart5(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final List<SNode> tlist1 = new ArrayList<SNode>();
    final Iterable<SNode> loopList1 = QueriesGenerated.sourceNodesQuery_9_3(new SourceSubstituteMacroNodesContext(context, loopMacroRef3));
    for (SNode itnode1 : loopList1) {
      if (itnode1 == null) {
        continue;
      }
      TemplateContext context1 = context.subContext(itnode1);
      context1 = context1.withVariable("loop:inputNode", context.getInput());
      final SNode tnode2 = environment.createOutputNode(myConcepts[10]);
      {
        TemplateContext context2 = context1.subContext();
        {
          final SNode tnode3 = environment.createOutputNode(myConcepts[13]);
          {
            environment.associate(tnode3, myAssociationLinks[3], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil");
            environment.associate(tnode3, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNodeAccessUtil.setReferenceTarget(org.jetbrains.mps.openapi.model.SNode,org.jetbrains.mps.openapi.language.SReferenceLink,org.jetbrains.mps.openapi.model.SNode)");
            TemplateContext context3 = context2.subContext();
            {
              final SNode tnode4 = environment.createOutputNode(myConcepts[14]);
              {
                TemplateContext context4 = context3.subContext();
                {
                  final SNode tnode5 = environment.createOutputNode(myConcepts[8]);
                  environment.resolve(new RefResolver(tnode5, myAssociationLinks[2], context4, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247594"), "_node_") {
                    @Override
                    public Object resolve() {
                      return QueriesGenerated.referenceMacro_GetReferent_9_7(createQueryContext());
                    }
                  });
                  environment.aggregate(tnode4, myAggregationLinks[13], tnode5);
                }
              }
              environment.aggregate(tnode3, myAggregationLinks[3], tnode4);
            }
            {
              Collection<SNode> tlist6 = null;
              SNode callInputNode6 = QueriesGenerated.sourceNodeQuery_9_6(new SourceSubstituteMacroNodeContext(context3, callMacro4));
              TemplateContext context5 = context3;
              context5 = context5.subContext(null, callInputNode6);
              if (callInputNode6 != null) {
                tlist6 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "8415841354032418697", "reduce_ReferenceLinkId_SReferenceLink"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247603")).apply(context5);
              } else {
                tlist6 = Collections.emptyList();
              }
              environment.aggregate(tnode3, myAggregationLinks[3], tlist6);
            }
            {
              final SNode tnode7 = environment.createOutputNode(myConcepts[7]);
              {
                TemplateContext context6 = context3.subContext();
                {
                  final SNode tnode8 = environment.createOutputNode(myConcepts[8]);
                  environment.resolve(new RefResolver(tnode8, myAssociationLinks[2], context6, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247625"), "expr") {
                    @Override
                    public Object resolve() {
                      return QueriesGenerated.referenceMacro_GetReferent_9_8(createQueryContext());
                    }
                  });
                  environment.aggregate(tnode7, myAggregationLinks[2], tnode8);
                }
                {
                  final SNode tnode9 = environment.createOutputNode(myConcepts[16]);
                  environment.aggregate(tnode7, myAggregationLinks[1], tnode9);
                }
              }
              environment.aggregate(tnode3, myAggregationLinks[3], tnode7);
            }
          }
          environment.aggregate(tnode2, myAggregationLinks[12], tnode3);
        }
      }
      tlist1.add(tnode2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  protected FragmentResult applyPart6(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    final List<SNode> tlist1 = new ArrayList<SNode>();
    final Iterable<SNode> loopList1 = QueriesGenerated.sourceNodesQuery_9_4(new SourceSubstituteMacroNodesContext(context, loopMacroRef4));
    for (SNode itnode1 : loopList1) {
      if (itnode1 == null) {
        continue;
      }
      TemplateContext context1 = context.subContext(itnode1);
      Collection<SNode> tlist2 = null;
      TemplateContext context2 = context1;
      context2 = context2.withVariable("quotation", ((SNode) QueriesGenerated.templateArgumentQuery_9_0(new TemplateArgumentContext(context2, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "3413438980618248494")))));
      tlist2 = environment.callSite(new Template_QuotedNode_to_statementList(), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599444103")).apply(context2);
      tlist1.addAll(tlist2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  protected FragmentResult applyPart7(@NotNull final TemplateContext context) throws GenerationException {
    final TemplateExecutionEnvironment environment = context.getEnvironment();
    Collection<SNode> tlist1 = Collections.emptyList();
    if (QueriesGenerated.ifMacro_Condition_9_3(new IfMacroContext(context, ifMacroRef3))) {
      final SNode tnode2 = environment.createOutputNode(myConcepts[10]);
      {
        TemplateContext context1 = context.subContext();
        {
          final SNode tnode3 = environment.createOutputNode(myConcepts[3]);
          {
            TemplateContext context2 = context1.subContext();
            {
              final SNode tnode4 = environment.createOutputNode(myConcepts[8]);
              environment.resolve(new RefResolver(tnode4, myAssociationLinks[2], context2, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247694"), "parent") {
                @Override
                public Object resolve() {
                  return QueriesGenerated.referenceMacro_GetReferent_9_9(createQueryContext());
                }
              });
              environment.aggregate(tnode3, myAggregationLinks[5], tnode4);
            }
            {
              final SNode tnode5 = environment.createOutputNode(myConcepts[9]);
              {
                environment.associate(tnode5, myAssociationLinks[1], "8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)", "~SNode.addChild(org.jetbrains.mps.openapi.language.SContainmentLink,org.jetbrains.mps.openapi.model.SNode)");
                TemplateContext context3 = context2.subContext();
                {
                  Collection<SNode> tlist6 = null;
                  SNode callInputNode6 = QueriesGenerated.sourceNodeQuery_9_7(new SourceSubstituteMacroNodeContext(context3, callMacro5));
                  TemplateContext context4 = context3;
                  context4 = context4.subContext(null, callInputNode6);
                  if (callInputNode6 != null) {
                    tlist6 = environment.callSite(environment.createTemplateKey("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "8415841354032486185", "reduce_ContainmentLinkId_SContainmentLink"), new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247706")).apply(context4);
                  } else {
                    tlist6 = Collections.emptyList();
                  }
                  environment.aggregate(tnode5, myAggregationLinks[3], tlist6);
                }
                {
                  final SNode tnode7 = environment.createOutputNode(myConcepts[8]);
                  environment.resolve(new RefResolver(tnode7, myAssociationLinks[2], context3, new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247728"), "_node_") {
                    @Override
                    public Object resolve() {
                      return QueriesGenerated.referenceMacro_GetReferent_9_10(createQueryContext());
                    }
                  });
                  environment.aggregate(tnode5, myAggregationLinks[3], tnode7);
                }
              }
              environment.aggregate(tnode3, myAggregationLinks[6], tnode5);
            }
          }
          environment.aggregate(tnode2, myAggregationLinks[12], tnode3);
        }
      }
      tlist1 = TemplateUtil.singletonList(tnode2);
    }
    FragmentResult rv = listFragment(9, tlist1);
    return rv;
  }
  @Override
  public void apply(TemplateContext context, ApplySink sink) throws GenerationException {
    applyPart0(context).reportTo(sink);
    applyPart1(context).reportTo(sink);
    applyPart2(context).reportTo(sink);
    applyPart3(context).reportTo(sink);
    applyPart4(context).reportTo(sink);
    applyPart5(context).reportTo(sink);
    applyPart6(context).reportTo(sink);
    applyPart7(context).reportTo(sink);
  }

  /*package*/ static final class MO implements MetaObjectContainer {
    @Override
    public SConcept[] concepts() {
      SConcept[] rv = new SConcept[17];
      rv[0] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8cc67c7f0L, "LocalVariableDeclarationStatement");
      rv[1] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8cc67c7efL, "LocalVariableDeclaration");
      rv[2] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x101de48bf9eL, "ClassifierType");
      rv[3] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x116b46a08c4L, "DotExpression");
      rv[4] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x10ab8473cc5L, "GenericNewExpression");
      rv[5] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x11a59b0fbceL, "ClassCreator");
      rv[6] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940cd6167L, "NullLiteral");
      rv[7] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940dabe4aL, "CastExpression");
      rv[8] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8c77f1e98L, "VariableReference");
      rv[9] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x118154a6332L, "InstanceMethodCallOperation");
      rv[10] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8cc56b213L, "ExpressionStatement");
      rv[11] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8c77f1e96L, "AssignmentExpression");
      rv[12] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf93d565d10L, "StringLiteral");
      rv[13] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xfbbebabf09L, "StaticMethodCall");
      rv[14] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, "jetbrains.mps.lang.smodel"), 0x10aaf6d7435L, "SemanticDowncastExpression");
      rv[15] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x11d47da71ecL, "StringType");
      rv[16] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, "jetbrains.mps.lang.smodel"), 0x108f968b3caL, "SNodeType");
      return rv;
    }

    @Override
    public SProperty[] properties() {
      SProperty[] rv = new SProperty[2];
      rv[0] = MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name");
      rv[1] = MetaAdapterFactory.getProperty(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf93d565d10L, 0xf93d565d11L, "value");
      return rv;
    }

    @Override
    public SReferenceLink[] associations() {
      SReferenceLink[] rv = new SReferenceLink[4];
      rv[0] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL, "classifier");
      rv[1] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301adL, "baseMethodDeclaration");
      rv[2] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e98L, 0xf8cc6bf960L, "variableDeclaration");
      rv[3] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfbbebabf09L, 0x10a7588b546L, "classConcept");
      return rv;
    }

    @Override
    public SContainmentLink[] aggregations() {
      SContainmentLink[] rv = new SContainmentLink[14];
      rv[0] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x450368d90ce15bc3L, 0x4ed4d318133c80ceL, "type");
      rv[1] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf940dabe4aL, 0xf940dabe4bL, "type");
      rv[2] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf940dabe4aL, 0xf940dabe4cL, "expression");
      rv[3] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301aeL, "actualArgument");
      rv[4] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x10ab8473cc5L, 0x10ab847b486L, "creator");
      rv[5] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46a4416L, "operand");
      rv[6] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46b36c4L, "operation");
      rv[7] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37a7f6eL, 0xf8c37f506eL, "initializer");
      rv[8] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7f0L, 0xf8cc67c7f1L, "localVariableDeclaration");
      rv[9] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, 0xf8cc6bf961L, "statement");
      rv[10] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11b0d00332cL, 0xf8c77f1e99L, "rValue");
      rv[11] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11b0d00332cL, 0xf8c77f1e97L, "lValue");
      rv[12] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b213L, 0xf8cc56b214L, "expression");
      rv[13] = MetaAdapterFactory.getContainmentLink(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x10aaf6d7435L, 0x10aaf6f6e81L, "leftExpression");
      return rv;
    }
  }
  private static final SNodePointer propertyMacro = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246937");
  private static final SNodePointer ifMacroRef = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246776");
  private static final SNodePointer ifMacroRef1 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246831");
  private static final SNodePointer switchMacroRef = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246899");
  private static final SNodePointer templateSwitchNode = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6911370362349543308");
  private static final SNodePointer templateNode = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246951");
  private static final SNodePointer loopMacroRef = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246989");
  private static final SNodePointer templateNode1 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246966");
  private static final SNodePointer callMacro = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246969");
  private static final SNodePointer propertyMacro1 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599246977");
  private static final SNodePointer loopMacroRef1 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247062");
  private static final SNodePointer callMacro1 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247098");
  private static final SNodePointer copySrcMacro = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247131");
  private static final SNodePointer ifMacroRef2 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247145");
  private static final SNodePointer callMacro2 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247165");
  private static final SNodePointer loopMacroRef2 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247218");
  private static final SNodePointer templateNode2 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247200");
  private static final SNodePointer callMacro3 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247203");
  private static final SNodePointer propertyMacro2 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247211");
  private static final SNodePointer loopMacroRef3 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247636");
  private static final SNodePointer callMacro4 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247603");
  private static final SNodePointer loopMacroRef4 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599444110");
  private static final SNodePointer callMacro5 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247706");
  private static final SNodePointer ifMacroRef3 = new SNodePointer("r:00000000-0000-4000-0000-011c8959034c(jetbrains.mps.lang.quotation.generator.baseLanguage.template.main@generator)", "2249837730599247736");
}
