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

/*Generated by MPS */

import jetbrains.mps.generator.runtime.Generated;
import jetbrains.mps.generator.runtime.MapConfigBase;
import jetbrains.mps.generator.runtime.TemplateMappingConfiguration;
import java.util.Collection;
import jetbrains.mps.generator.runtime.TemplateReductionRule;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.generator.runtime.TemplateModel;
import jetbrains.mps.smodel.SNodePointer;
import jetbrains.mps.generator.runtime.TemplateUtil;
import jetbrains.mps.generator.runtime.ReductionRuleBase;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.generator.runtime.TemplateContext;
import jetbrains.mps.generator.runtime.GenerationException;
import jetbrains.mps.generator.runtime.TemplateExecutionEnvironment;
import jetbrains.mps.generator.template.SourceSubstituteMacroNodeContext;
import java.util.Collections;
import jetbrains.mps.generator.runtime.TemplateRuleWithCondition;
import jetbrains.mps.generator.template.ReductionRuleQueryContext;
import jetbrains.mps.generator.template.IfMacroContext;
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.SReferenceLink;
import org.jetbrains.mps.openapi.language.SContainmentLink;

@Generated
public class Mapping_mc_link_operations extends MapConfigBase implements TemplateMappingConfiguration {
  private final Collection<TemplateReductionRule> rules;
  public Mapping_mc_link_operations(@NotNull TemplateModel model) {
    super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1139341814904"), "mc_link_operations", model, false, new MO());
    rules = TemplateUtil.<TemplateReductionRule>asCollection(new ReductionRule0(), new ReductionRule1(), new ReductionRule2(), new ReductionRule3(), new ReductionRule4(), new ReductionRule5());
  }
  @Override
  public Collection<TemplateReductionRule> getReductionRules() {
    return rules;
  }
  /*package*/ final class ReductionRule0 extends ReductionRuleBase {
    public ReductionRule0() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1168907859730"), CONCEPTS.SLinkAccess$Pk, false);
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "1612392507789494675");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_0(new SourceSubstituteMacroNodeContext(context1, copySrcMacro));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro, "tpl/r:00000000-0000-4000-0000-011c89590303/1205438232670", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          SNode callInputNode3 = QueriesGenerated.sourceNodeQuery_2_1(new SourceSubstituteMacroNodeContext(context1, callMacro));
          TemplateContext context2 = context1;
          context2 = context2.subContext(null, callInputNode3);
          if (callInputNode3 != null) {
            tlist3 = environment.callSite(new Template_reduce_LinkDeclaration_SLink(), new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "633481135935145281")).apply(context2);
          } else {
            tlist3 = Collections.emptyList();
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }
  /*package*/ final class ReductionRule1 extends ReductionRuleBase implements TemplateRuleWithCondition {
    public ReductionRule1() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1168907918945"), CONCEPTS.Link_SetNewChildOperation$J_, false);
    }
    @Override
    public boolean isApplicable(@NotNull TemplateContext context) throws GenerationException {
      return QueriesGenerated.rule_Condition_2_0(new ReductionRuleQueryContext(context, getRuleNode()));
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "4585658144689928116");
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_2(new SourceSubstituteMacroNodeContext(context1, copySrcMacro1));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro1, "tpl/r:00000000-0000-4000-0000-011c89590303/6246743999000387772", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          {
            final SNode switchInput3 = QueriesGenerated.sourceNodeQuery_2_3(new SourceSubstituteMacroNodeContext(context1, switchMacroRef));
            if (switchInput3 == null) {
              tlist3 = Collections.emptyList();
            } else {
              TemplateContext switchContext3 = context1;
              switchContext3 = switchContext3.subContext(null, switchInput3);
              tlist3 = environment.trySwitch(templateSwitchNode, switchContext3);
              if (tlist3 == null) {
                final SNode tnode4 = environment.createOutputNode(myConcepts[1]);
                tlist3 = TemplateUtil.singletonList(tnode4);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
        {
          Collection<SNode> tlist5 = Collections.emptyList();
          if (QueriesGenerated.ifMacro_Condition_2_0(new IfMacroContext(context1, ifMacroRef))) {
            Collection<SNode> tlist6 = null;
            SNode callInputNode6 = QueriesGenerated.sourceNodeQuery_2_4(new SourceSubstituteMacroNodeContext(context1, callMacro1));
            TemplateContext context2 = context1;
            context2 = context2.subContext(null, callInputNode6);
            if (callInputNode6 != null) {
              tlist6 = environment.callSite(new Template_reduce_ConceptDeclaration2SAbstractConcept(), new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "633481135935145282")).apply(context2);
            } else {
              tlist6 = Collections.emptyList();
            }
            tlist5 = tlist6;
          } else {
            final SNode tnode7 = environment.createOutputNode(myConcepts[1]);
            tlist5 = TemplateUtil.singletonList(tnode7);
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist5);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }
  /*package*/ final class ReductionRule2 extends ReductionRuleBase implements TemplateRuleWithCondition {
    public ReductionRule2() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1168908007519"), CONCEPTS.Link_SetTargetOperation$Mn, false);
    }
    @Override
    public boolean isApplicable(@NotNull TemplateContext context) throws GenerationException {
      return QueriesGenerated.rule_Condition_2_1(new ReductionRuleQueryContext(context, getRuleNode()));
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "1612392507789543417");
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_5(new SourceSubstituteMacroNodeContext(context1, copySrcMacro2));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro2, "tpl/r:00000000-0000-4000-0000-011c89590303/6246743999000991648", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          {
            final SNode switchInput3 = QueriesGenerated.sourceNodeQuery_2_6(new SourceSubstituteMacroNodeContext(context1, switchMacroRef1));
            if (switchInput3 == null) {
              tlist3 = Collections.emptyList();
            } else {
              TemplateContext switchContext3 = context1;
              switchContext3 = switchContext3.subContext(null, switchInput3);
              tlist3 = environment.trySwitch(templateSwitchNode1, switchContext3);
              if (tlist3 == null) {
                final SNode tnode4 = environment.createOutputNode(myConcepts[1]);
                tlist3 = TemplateUtil.singletonList(tnode4);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
        {
          Collection<SNode> tlist5 = null;
          final SNode copySrcInput5 = QueriesGenerated.sourceNodeQuery_2_7(new SourceSubstituteMacroNodeContext(context1, copySrcMacro3));
          tlist5 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput5), copySrcMacro3, "tpl/r:00000000-0000-4000-0000-011c89590303/6246743999000991666", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist5);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }
  /*package*/ final class ReductionRule3 extends ReductionRuleBase {
    public ReductionRule3() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "942336824646427994"), CONCEPTS.Link_SetTargetPointerOperation$6D, false);
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "942336824646416144");
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_8(new SourceSubstituteMacroNodeContext(context1, copySrcMacro4));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro4, "tpl/r:00000000-0000-4000-0000-011c89590303/3719571763733973059", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          {
            final SNode switchInput3 = QueriesGenerated.sourceNodeQuery_2_9(new SourceSubstituteMacroNodeContext(context1, switchMacroRef2));
            if (switchInput3 == null) {
              tlist3 = Collections.emptyList();
            } else {
              TemplateContext switchContext3 = context1;
              switchContext3 = switchContext3.subContext(null, switchInput3);
              tlist3 = environment.trySwitch(templateSwitchNode2, switchContext3);
              if (tlist3 == null) {
                final SNode tnode4 = environment.createOutputNode(myConcepts[1]);
                tlist3 = TemplateUtil.singletonList(tnode4);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
        {
          Collection<SNode> tlist5 = null;
          {
            final SNode switchInput5 = QueriesGenerated.sourceNodeQuery_2_10(new SourceSubstituteMacroNodeContext(context1, switchMacroRef3));
            if (switchInput5 == null) {
              tlist5 = Collections.emptyList();
            } else {
              TemplateContext switchContext5 = context1;
              switchContext5 = switchContext5.subContext(null, switchInput5);
              tlist5 = environment.trySwitch(templateSwitchNode3, switchContext5);
              if (tlist5 == null) {
                final SNode tnode6 = environment.createOutputNode(myConcepts[1]);
                tlist5 = TemplateUtil.singletonList(tnode6);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist5);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }
  /*package*/ final class ReductionRule4 extends ReductionRuleBase implements TemplateRuleWithCondition {
    public ReductionRule4() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532744236"), CONCEPTS.Node_PointerOperation$T2, false);
    }
    @Override
    public boolean isApplicable(@NotNull TemplateContext context) throws GenerationException {
      return QueriesGenerated.rule_Condition_2_2(new ReductionRuleQueryContext(context, getRuleNode()));
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "9051222292532802757");
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_11(new SourceSubstituteMacroNodeContext(context1, copySrcMacro5));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro5, "tpl/r:00000000-0000-4000-0000-011c89590303/9051222292532830808", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          {
            final SNode switchInput3 = QueriesGenerated.sourceNodeQuery_2_12(new SourceSubstituteMacroNodeContext(context1, switchMacroRef4));
            if (switchInput3 == null) {
              tlist3 = Collections.emptyList();
            } else {
              TemplateContext switchContext3 = context1;
              switchContext3 = switchContext3.subContext(null, switchInput3);
              tlist3 = environment.trySwitch(templateSwitchNode4, switchContext3);
              if (tlist3 == null) {
                final SNode tnode4 = environment.createOutputNode(myConcepts[1]);
                tlist3 = TemplateUtil.singletonList(tnode4);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }
  /*package*/ final class ReductionRule5 extends ReductionRuleBase implements TemplateRuleWithCondition {
    public ReductionRule5() {
      super(new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532831674"), CONCEPTS.Node_IsOperation$Kh, false);
    }
    @Override
    public boolean isApplicable(@NotNull TemplateContext context) throws GenerationException {
      return QueriesGenerated.rule_Condition_2_3(new ReductionRuleQueryContext(context, getRuleNode()));
    }
    @Override
    public Collection<SNode> apply(@NotNull final TemplateContext context) throws GenerationException {
      final TemplateExecutionEnvironment environment = context.getEnvironment();
      final SNode tnode1 = environment.createOutputNode(myConcepts[0]);
      {
        environment.associate(tnode1, myAssociationLinks[1], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "9051222292532820543");
        environment.associate(tnode1, myAssociationLinks[0], "r:c3548bac-30eb-4a2a-937c-0111d5697309(jetbrains.mps.lang.smodel.generator.smodelAdapter)", "6599163591527286349");
        TemplateContext context1 = context.subContext();
        {
          Collection<SNode> tlist2 = null;
          final SNode copySrcInput2 = QueriesGenerated.sourceNodeQuery_2_13(new SourceSubstituteMacroNodeContext(context1, copySrcMacro6));
          tlist2 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput2), copySrcMacro6, "tpl/r:00000000-0000-4000-0000-011c89590303/9051222292532842598", context1);
          environment.aggregate(tnode1, myAggregationLinks[0], tlist2);
        }
        {
          Collection<SNode> tlist3 = null;
          {
            final SNode switchInput3 = QueriesGenerated.sourceNodeQuery_2_14(new SourceSubstituteMacroNodeContext(context1, switchMacroRef5));
            if (switchInput3 == null) {
              tlist3 = Collections.emptyList();
            } else {
              TemplateContext switchContext3 = context1;
              switchContext3 = switchContext3.subContext(null, switchInput3);
              tlist3 = environment.trySwitch(templateSwitchNode5, switchContext3);
              if (tlist3 == null) {
                final SNode tnode4 = environment.createOutputNode(myConcepts[1]);
                tlist3 = TemplateUtil.singletonList(tnode4);
              }
            }
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist3);
        }
        {
          Collection<SNode> tlist5 = null;
          SNode callInputNode5 = QueriesGenerated.sourceNodeQuery_2_15(new SourceSubstituteMacroNodeContext(context1, callMacro2));
          TemplateContext context2 = context1;
          context2 = context2.subContext(null, callInputNode5);
          if (callInputNode5 != null) {
            tlist5 = environment.callSite(new Template_reduce_NodeIdentity_SNodeReference(), new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532846779")).apply(context2);
          } else {
            tlist5 = Collections.emptyList();
          }
          environment.aggregate(tnode1, myAggregationLinks[0], tlist5);
        }
      }
      return TemplateUtil.singletonList(tnode1);
    }
  }

  /*package*/ static final class MO implements MetaObjectContainer {
    @Override
    public SConcept[] concepts() {
      SConcept[] rv = new SConcept[2];
      rv[0] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xfbbebabf09L, "StaticMethodCall");
      rv[1] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940cd6167L, "NullLiteral");
      return rv;
    }


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

    @Override
    public SContainmentLink[] aggregations() {
      SContainmentLink[] rv = new SContainmentLink[1];
      rv[0] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301aeL, "actualArgument");
      return rv;
    }
  }
  private static final SNodePointer copySrcMacro = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205438232671");
  private static final SNodePointer callMacro = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "633481135935145281");
  private static final SNodePointer copySrcMacro1 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6246743999000387773");
  private static final SNodePointer switchMacroRef = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6246743999000387783");
  private static final SNodePointer templateSwitchNode = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205432344145");
  private static final SNodePointer callMacro1 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "633481135935145282");
  private static final SNodePointer ifMacroRef = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "347387891234646999");
  private static final SNodePointer copySrcMacro2 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6246743999000991649");
  private static final SNodePointer switchMacroRef1 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6246743999000995128");
  private static final SNodePointer templateSwitchNode1 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205432344145");
  private static final SNodePointer copySrcMacro3 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "6246743999000991667");
  private static final SNodePointer copySrcMacro4 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "3719571763733973060");
  private static final SNodePointer switchMacroRef2 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "3719571763733973070");
  private static final SNodePointer templateSwitchNode2 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205432344145");
  private static final SNodePointer switchMacroRef3 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "3719571763733973078");
  private static final SNodePointer templateSwitchNode3 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "3320646261222008448");
  private static final SNodePointer copySrcMacro5 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532830809");
  private static final SNodePointer switchMacroRef4 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532830819");
  private static final SNodePointer templateSwitchNode4 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205432344145");
  private static final SNodePointer copySrcMacro6 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532842599");
  private static final SNodePointer switchMacroRef5 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532842609");
  private static final SNodePointer templateSwitchNode5 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "1205432344145");
  private static final SNodePointer callMacro2 = new SNodePointer("r:00000000-0000-4000-0000-011c89590303(jetbrains.mps.lang.smodel.generator.baseLanguage.template.main@generator)", "9051222292532846779");

  private static final class CONCEPTS {
    /*package*/ static final SConcept SLinkAccess$Pk = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x108f96ea2caL, "jetbrains.mps.lang.smodel.structure.SLinkAccess");
    /*package*/ static final SConcept Link_SetNewChildOperation$J_ = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x109233dbca1L, "jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation");
    /*package*/ static final SConcept Link_SetTargetOperation$Mn = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x1099887af60L, "jetbrains.mps.lang.smodel.structure.Link_SetTargetOperation");
    /*package*/ static final SConcept Link_SetTargetPointerOperation$6D = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0xd13da596bcfef4eL, "jetbrains.mps.lang.smodel.structure.Link_SetTargetPointerOperation");
    /*package*/ static final SConcept Node_PointerOperation$T2 = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x4604033d54faa023L, "jetbrains.mps.lang.smodel.structure.Node_PointerOperation");
    /*package*/ static final SConcept Node_IsOperation$Kh = MetaAdapterFactory.getConcept(0x7866978ea0f04cc7L, 0x81bc4d213d9375e1L, 0x32d13e7d44145b36L, "jetbrains.mps.lang.smodel.structure.Node_IsOperation");
  }
}
