package jetbrains.mps.baseLanguage.generator.java.references;

/*Generated by MPS */

import jetbrains.mps.generator.runtime.Generated;
import jetbrains.mps.generator.impl.query.QueryProviderBase;
import jetbrains.mps.generator.template.BaseMappingRuleContext;
import jetbrains.mps.baseLanguage.generator.java.references.util.LocalDeclarationToReferenceMarker;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.generator.template.PropertyMacroContext;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
import jetbrains.mps.generator.template.ReferenceMacroContext;
import jetbrains.mps.baseLanguage.typesystem.VaraibleTypeUtil;
import jetbrains.mps.typechecking.TypecheckingFacade;
import jetbrains.mps.generator.template.IfMacroContext;
import jetbrains.mps.generator.template.SourceSubstituteMacroNodeContext;
import jetbrains.mps.generator.template.WeavingMappingRuleContext;
import jetbrains.mps.generator.template.WeavingAnchorContext;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.generator.template.MappingScriptContext;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SModelOperations;
import jetbrains.mps.generator.template.TemplateVarContext;
import jetbrains.mps.baseLanguage.behavior.Type__BehaviorDescriptor;
import java.util.Map;
import jetbrains.mps.generator.impl.query.ReductionRuleCondition;
import java.util.HashMap;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.generator.impl.query.QueryKey;
import jetbrains.mps.generator.template.ReductionRuleQueryContext;
import jetbrains.mps.generator.impl.GenerationFailureException;
import jetbrains.mps.generator.impl.query.WeaveRuleCondition;
import jetbrains.mps.generator.impl.query.WeaveRuleQuery;
import jetbrains.mps.generator.impl.query.WeaveAnchorQuery;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.generator.impl.query.ScriptCodeBlock;
import jetbrains.mps.generator.impl.query.SourceNodeQuery;
import jetbrains.mps.generator.impl.query.PropertyValueQuery;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import org.jetbrains.mps.openapi.language.SProperty;
import jetbrains.mps.generator.impl.query.IfMacroCondition;
import jetbrains.mps.generator.impl.query.ReferenceTargetQuery;
import jetbrains.mps.generator.impl.query.VariableValueQuery;
import org.jetbrains.mps.openapi.language.SReferenceLink;
import org.jetbrains.mps.openapi.language.SContainmentLink;
import org.jetbrains.mps.openapi.language.SConcept;

@Generated
public class QueriesGenerated extends QueryProviderBase {
  public QueriesGenerated() {
    super(1);
  }
  public static boolean rule_Condition_0_0(final BaseMappingRuleContext _context) {
    return LocalDeclarationToReferenceMarker.isMarked(_context, _context.getNode());
  }
  public static boolean rule_Condition_0_1(final BaseMappingRuleContext _context) {
    return LocalDeclarationToReferenceMarker.isMarked(_context, _context.getNode());
  }
  public static boolean rule_Condition_0_2(final BaseMappingRuleContext _context) {
    if (SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG) == null) {
      return false;
    }
    return LocalDeclarationToReferenceMarker.isMarked(_context, SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG));
  }
  public static boolean rule_Condition_0_3(final BaseMappingRuleContext _context) {
    return SNodeOperations.isInstanceOf(SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI), CONCEPTS.GenericLValueExpression$8r);
  }
  public static boolean rule_Condition_0_4(final BaseMappingRuleContext _context) {
    return LocalDeclarationToReferenceMarker.isMarked(_context, _context.getNode());
  }
  public static boolean rule_Condition_1_0(final BaseMappingRuleContext _context) {
    SNode decl = SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG);
    return SNodeOperations.isInstanceOf(decl, CONCEPTS.LocalVariableDeclaration$41) || SNodeOperations.isInstanceOf(decl, CONCEPTS.ParameterDeclaration$RG);
  }
  public static boolean rule_Condition_1_1(final BaseMappingRuleContext _context) {
    return SNodeOperations.isInstanceOf(SLinkOperations.getTarget(_context.getNode(), LINKS.operation$gs9E), CONCEPTS.FieldReferenceOperation$fU);
  }
  public static boolean rule_Condition_3_0(final BaseMappingRuleContext _context) {
    return SNodeOperations.isInstanceOf(SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI), CONCEPTS.GenericLValueExpression$8r);
  }
  public static boolean rule_Condition_3_1(final BaseMappingRuleContext _context) {
    return SNodeOperations.isInstanceOf(SLinkOperations.getTarget(_context.getNode(), LINKS.expression$uRUg), CONCEPTS.GenericLValueExpression$8r);
  }
  public static Object propertyMacro_GetValue_0_0(final PropertyMacroContext _context) {
    return SPropertyOperations.getString(_context.getNode(), PROPS.name$MnvL);
  }
  public static Object propertyMacro_GetValue_0_1(final PropertyMacroContext _context) {
    return _context.createIndexedName("_" + SPropertyOperations.getString(_context.getNode(), PROPS.name$MnvL), SNodeOperations.getParent(_context.getNode()), true);
  }
  public static Object propertyMacro_GetValue_1_0(final PropertyMacroContext _context) {
    return _context.createIndexedName("_ref_" + SPropertyOperations.getString(SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG), PROPS.name$MnvL), null, false);
  }
  public static Object propertyMacro_GetValue_1_1(final PropertyMacroContext _context) {
    return _context.createIndexedName("_ref_" + SPropertyOperations.getString(SLinkOperations.getTarget(SNodeOperations.cast(SLinkOperations.getTarget(_context.getNode(), LINKS.operation$gs9E), CONCEPTS.FieldReferenceOperation$fU), LINKS.fieldDeclaration$H7Ag), PROPS.name$MnvL), null, false);
  }
  public static Object propertyMacro_GetValue_6_0(final PropertyMacroContext _context) {
    return SPropertyOperations.getString(_context.getNode(), PROPS.name$MnvL);
  }
  public static Object referenceMacro_GetReferent_0_0(final ReferenceMacroContext _context) {
    return ((SLinkOperations.getTarget(_context.getNode(), LINKS.initializer$2twD) != null) ? VaraibleTypeUtil.toLocalVariableCons(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY)) : VaraibleTypeUtil.toLocalVariableConsNoInit(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY)));
  }
  public static Object referenceMacro_GetReferent_0_1(final ReferenceMacroContext _context) {
    return _context.getOutputNodeByInputNodeAndMappingLabel(SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG), "LocalVariable_AsReference");
  }
  public static Object referenceMacro_GetReferent_0_2(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.getVariableGetter(SLinkOperations.getTarget(_context.getNode(), LINKS.type$VAx9));
  }
  public static Object referenceMacro_GetReferent_1_0(final ReferenceMacroContext _context) {
    return _context.getOutputNodeByInputNodeAndMappingLabel(SLinkOperations.getTarget(_context.getNode(), LINKS.variableDeclaration$N1XG), "LocalVariable_AsReference");
  }
  public static Object referenceMacro_GetReferent_5_0(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.getIncrementAndGetMethod(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()));
  }
  public static Object referenceMacro_GetReferent_5_1(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.getGetAndIncrementMethod(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()));
  }
  public static Object referenceMacro_GetReferent_5_2(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.getDecrementAndGetMethod(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()));
  }
  public static Object referenceMacro_GetReferent_5_3(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.getGetAndDecrementMethod(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()));
  }
  public static Object referenceMacro_GetReferent_6_0(final ReferenceMacroContext _context) {
    return _context.getCopiedOutputNodeForInputNode(_context.getNode());
  }
  public static Object referenceMacro_GetReferent_6_1(final ReferenceMacroContext _context) {
    return VaraibleTypeUtil.toLocalVariableCons(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY));
  }
  public static boolean ifMacro_Condition_0_0(final IfMacroContext _context) {
    return (SLinkOperations.getTarget(((SNode) _context.getVariable("var:lvalue")), LINKS.assignValueExression$XV8v) != null);
  }
  public static boolean ifMacro_Condition_0_1(final IfMacroContext _context) {
    return (SLinkOperations.getTarget(_context.getNode(), LINKS.getValueExpression$czp4) != null);
  }
  public static SNode sourceNodeQuery_0_0(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.expr$KVqL);
  }
  public static SNode sourceNodeQuery_0_1(final SourceSubstituteMacroNodeContext _context) {
    return VaraibleTypeUtil.toLocalVariableClassType(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY));
  }
  public static SNode sourceNodeQuery_0_2(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.initializer$2twD);
  }
  public static SNode sourceNodeQuery_0_3(final SourceSubstituteMacroNodeContext _context) {
    return VaraibleTypeUtil.getTypeParameter(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY));
  }
  public static SNode sourceNodeQuery_0_4(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY);
  }
  public static SNode sourceNodeQuery_0_5(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(((SNode) _context.getVariable("var:lvalue")), LINKS.referenceExpression$lnFv);
  }
  public static SNode sourceNodeQuery_0_6(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_0_7(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(((SNode) _context.getVariable("var:lvalue")), LINKS.assignValueExression$XV8v);
  }
  public static SNode sourceNodeQuery_0_8(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.referenceExpression$lnFv);
  }
  public static SNode sourceNodeQuery_0_9(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.getValueExpression$czp4);
  }
  public static SNode sourceNodeQuery_0_10(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(SNodeOperations.as(SNodeOperations.getParent(SNodeOperations.getNodeAncestor(_context.getNode(), CONCEPTS.GenericLValueExpression$8r, false, false)), CONCEPTS.AssignmentExpression$SE), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_1_0(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_1(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_2(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_3(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:operandType"));
  }
  public static SNode sourceNodeQuery_1_4(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:operandType"));
  }
  public static SNode sourceNodeQuery_1_5(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_6(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_7(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.operation$gs9E);
  }
  public static SNode sourceNodeQuery_1_8(final SourceSubstituteMacroNodeContext _context) {
    return ((SNode) _context.getVariable("var:type"));
  }
  public static SNode sourceNodeQuery_1_9(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.operation$gs9E);
  }
  public static SNode sourceNodeQuery_1_10(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.operand$w6IR);
  }
  public static SNode sourceNodeQuery_1_11(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.array$tTQe);
  }
  public static SNode sourceNodeQuery_1_12(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.index$LbBP);
  }
  public static SNode sourceNodeQuery_1_13(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.referenceExpression$lnFv);
  }
  public static SNode sourceNodeQuery_4_0(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_1(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_2(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_3(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_4(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_5(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_6(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_7(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_8(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_9(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_10(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_11(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_12(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_13(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_14(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_15(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_16(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_17(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_18(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_19(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_4_20(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI);
  }
  public static SNode sourceNodeQuery_4_21(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.rValue$spNK);
  }
  public static SNode sourceNodeQuery_5_0(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.expression$uRUg);
  }
  public static SNode sourceNodeQuery_5_1(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.expression$uRUg);
  }
  public static SNode sourceNodeQuery_5_2(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.expression$uRUg);
  }
  public static SNode sourceNodeQuery_5_3(final SourceSubstituteMacroNodeContext _context) {
    return SLinkOperations.getTarget(_context.getNode(), LINKS.expression$uRUg);
  }
  public static SNode sourceNodeQuery_6_0(final SourceSubstituteMacroNodeContext _context) {
    return VaraibleTypeUtil.toLocalVariableClassType(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY));
  }
  public static SNode sourceNodeQuery_6_1(final SourceSubstituteMacroNodeContext _context) {
    return VaraibleTypeUtil.getTypeParameter(SLinkOperations.getTarget(_context.getNode(), LINKS.type$a1UY));
  }
  public static SNode weavingRule_ContextQuery_0_0(final WeavingMappingRuleContext _context) {
    return _context.getCopiedOutputNodeForInputNode(SLinkOperations.getTarget(SNodeOperations.cast(SNodeOperations.getParent(_context.getNode()), CONCEPTS.BaseMethodDeclaration$kD), LINKS.body$5xQk));
  }
  public static SNode weaving_AnchorQuery_0_0(final WeavingAnchorContext _context) {
    return ListSequence.fromList(SLinkOperations.getChildren(SNodeOperations.cast(_context.getMainContextNode(), CONCEPTS.StatementList$m_), LINKS.statement$53DE)).first();
  }
  public static void mappingScript_CodeBlock_2(final MappingScriptContext _context) {
    ListSequence.fromList(SModelOperations.nodes(_context.getModel(), CONCEPTS.PassByRefExpression$$K)).visitAll((reqVar) -> {
      SNode decl = SLinkOperations.getTarget(SNodeOperations.as(SLinkOperations.getTarget(reqVar, LINKS.expr$KVqL), CONCEPTS.VariableReference$TC), LINKS.variableDeclaration$N1XG);
      if (SNodeOperations.isInstanceOf(decl, CONCEPTS.LocalVariableDeclaration$41) || SNodeOperations.isInstanceOf(decl, CONCEPTS.ParameterDeclaration$RG)) {
        LocalDeclarationToReferenceMarker.mark(_context, decl);
      }
    });
  }
  public static Object varMacro_Value_0_0(final TemplateVarContext _context) {
    return SNodeOperations.as(SLinkOperations.getTarget(_context.getNode(), LINKS.lValue$splI), CONCEPTS.GenericLValueExpression$8r);
  }
  public static Object varMacro_Value_1_0(final TemplateVarContext _context) {
    return (SNode) Type__BehaviorDescriptor.getBoxedType_idhEwIzNC.invoke(SNodeOperations.cast(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()), CONCEPTS.Type$bu));
  }
  public static Object varMacro_Value_1_1(final TemplateVarContext _context) {
    return (SNode) Type__BehaviorDescriptor.getBoxedType_idhEwIzNC.invoke(SNodeOperations.cast(TypecheckingFacade.getFromContext().getTypeOf(_context.getNode()), CONCEPTS.Type$bu));
  }
  public static Object varMacro_Value_1_2(final TemplateVarContext _context) {
    return SNodeOperations.cast(TypecheckingFacade.getFromContext().getTypeOf(SLinkOperations.getTarget(_context.getNode(), LINKS.operand$w6IR)), CONCEPTS.Type$bu);
  }
  private final Map<String, ReductionRuleCondition> rrcMethods = new HashMap<String, ReductionRuleCondition>();
  {
    int i = 0;
    rrcMethods.put("6900020712837086328", new RRC(i++));
    rrcMethods.put("8215585226356693852", new RRC(i++));
    rrcMethods.put("6900020712837845267", new RRC(i++));
    rrcMethods.put("9101202990849405347", new RRC(i++));
    rrcMethods.put("4365059869772395998", new RRC(i++));
    rrcMethods.put("4365059869772402546", new RRC(i++));
    rrcMethods.put("2770522517496786895", new RRC(i++));
    rrcMethods.put("6900020712835104744", new RRC(i++));
  }
  @Override
  @NotNull
  public ReductionRuleCondition getReductionRuleCondition(@NotNull QueryKey identity) {
    ReductionRuleCondition query = identity.forTemplateNode(rrcMethods);
    return (query != null ? query : super.getReductionRuleCondition(identity));
  }
  private static class RRC implements ReductionRuleCondition {
    private final int methodKey;
    public RRC(int methodKey) {
      this.methodKey = methodKey;
    }
    @Override
    public boolean check(ReductionRuleQueryContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.rule_Condition_0_0(ctx);
        case 1:
          return QueriesGenerated.rule_Condition_0_1(ctx);
        case 2:
          return QueriesGenerated.rule_Condition_0_2(ctx);
        case 3:
          return QueriesGenerated.rule_Condition_0_3(ctx);
        case 4:
          return QueriesGenerated.rule_Condition_1_0(ctx);
        case 5:
          return QueriesGenerated.rule_Condition_1_1(ctx);
        case 6:
          return QueriesGenerated.rule_Condition_3_0(ctx);
        case 7:
          return QueriesGenerated.rule_Condition_3_1(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no condition method for rule %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, WRQ> wrcnMethods = new HashMap<String, WRQ>();
  {
    int i = 0;
    wrcnMethods.put("8215585226356618671", new WRQ(i++));
  }
  @Override
  @NotNull
  public WeaveRuleCondition getWeaveRuleCondition(@NotNull QueryKey identity) {
    WRQ query = identity.forTemplateNode(wrcnMethods);
    return (query != null ? query : super.getWeaveRuleCondition(identity));
  }
  @Override
  @NotNull
  public WeaveRuleQuery getWeaveRuleQuery(@NotNull QueryKey identity) {
    WRQ query = identity.forTemplateNode(wrcnMethods);
    return (query != null ? query : super.getWeaveRuleQuery(identity));
  }
  @NotNull
  @Override
  public WeaveAnchorQuery getWeaveAnchorQuery(@NotNull QueryKey identity) {
    WRQ query = identity.forTemplateNode(wrcnMethods);
    return (query != null ? query : super.getWeaveAnchorQuery(identity));
  }
  private static class WRQ implements WeaveRuleQuery, WeaveRuleCondition, WeaveAnchorQuery {
    private final int methodKey;
    public WRQ(int methodKey) {
      this.methodKey = methodKey;
    }
    @Override
    public boolean check(@NotNull WeavingMappingRuleContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.rule_Condition_0_4(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no condition method for rule %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
    @Override
    public SNode contextNode(WeavingMappingRuleContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.weavingRule_ContextQuery_0_0(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no context node query method for weaving rule %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }

    }
    @Nullable
    @Override
    public SNode anchorNode(WeavingAnchorContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.weaving_AnchorQuery_0_0(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no anchor query method for rule %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, ScriptCodeBlock> mscbMethods = new HashMap<String, ScriptCodeBlock>();
  {
    int i = 0;
    mscbMethods.put("4150797918184324644", new SCB(i++));
  }
  @Override
  @NotNull
  public ScriptCodeBlock getScriptCodeBlock(@NotNull QueryKey identity) {
    ScriptCodeBlock query = identity.forTemplateNode(mscbMethods);
    return (query != null ? query : super.getScriptCodeBlock(identity));
  }
  private static class SCB implements ScriptCodeBlock {
    private final int methodKey;
    public SCB(int methodKey) {
      this.methodKey = methodKey;
    }
    @Override
    public void invoke(MappingScriptContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          QueriesGenerated.mappingScript_CodeBlock_2(ctx);
          return;
        default:
          throw new GenerationFailureException(String.format("There's no code block with method index %d ", methodKey));
      }
    }
  }
  private final Map<String, SourceNodeQuery> snqMethods = new HashMap<String, SourceNodeQuery>();
  {
    int i = 0;
    snqMethods.put("6900020712835782075", new SNQ(i++));
    snqMethods.put("6900020712837603514", new SNQ(i++));
    snqMethods.put("6900020712837744487", new SNQ(i++));
    snqMethods.put("6900020712837798030", new SNQ(i++));
    snqMethods.put("7387001118551936757", new SNQ(i++));
    snqMethods.put("5755375419143675403", new SNQ(i++));
    snqMethods.put("1247162139035517720", new SNQ(i++));
    snqMethods.put("9101202990849635780", new SNQ(i++));
    snqMethods.put("8230959874503325540", new SNQ(i++));
    snqMethods.put("6900020712839814962", new SNQ(i++));
    snqMethods.put("1247162139035525458", new SNQ(i++));
    snqMethods.put("1767070328285589357", new SNQ(i++));
    snqMethods.put("1767070328285589382", new SNQ(i++));
    snqMethods.put("1767070328285589405", new SNQ(i++));
    snqMethods.put("1767070328287225580", new SNQ(i++));
    snqMethods.put("1767070328287258958", new SNQ(i++));
    snqMethods.put("7012882624462684804", new SNQ(i++));
    snqMethods.put("6900020712836181863", new SNQ(i++));
    snqMethods.put("6900020712836166243", new SNQ(i++));
    snqMethods.put("6900020712836188549", new SNQ(i++));
    snqMethods.put("6900020712836804249", new SNQ(i++));
    snqMethods.put("1767070328287394253", new SNQ(i++));
    snqMethods.put("6900020712836008895", new SNQ(i++));
    snqMethods.put("6900020712836009483", new SNQ(i++));
    snqMethods.put("6900020712835784697", new SNQ(i++));
    snqMethods.put("6900020712834929222", new SNQ(i++));
    snqMethods.put("5949450395528468827", new SNQ(i++));
    snqMethods.put("6900020712834995137", new SNQ(i++));
    snqMethods.put("5949450395528469531", new SNQ(i++));
    snqMethods.put("6900020712834996807", new SNQ(i++));
    snqMethods.put("5949450395528470363", new SNQ(i++));
    snqMethods.put("6900020712834997756", new SNQ(i++));
    snqMethods.put("5949450395528471195", new SNQ(i++));
    snqMethods.put("6900020712835015295", new SNQ(i++));
    snqMethods.put("5949450395528472027", new SNQ(i++));
    snqMethods.put("6900020712835713952", new SNQ(i++));
    snqMethods.put("5949450395528472859", new SNQ(i++));
    snqMethods.put("6900020712835721933", new SNQ(i++));
    snqMethods.put("5949450395528473550", new SNQ(i++));
    snqMethods.put("6900020712835732282", new SNQ(i++));
    snqMethods.put("5949450395528474241", new SNQ(i++));
    snqMethods.put("6900020712835776021", new SNQ(i++));
    snqMethods.put("5949450395528474932", new SNQ(i++));
    snqMethods.put("6900020712835775320", new SNQ(i++));
    snqMethods.put("5949450395528475402", new SNQ(i++));
    snqMethods.put("6900020712835779611", new SNQ(i++));
    snqMethods.put("5949450395528475872", new SNQ(i++));
    snqMethods.put("8230959874504369271", new SNQ(i++));
    snqMethods.put("8230959874504372841", new SNQ(i++));
    snqMethods.put("8230959874504373803", new SNQ(i++));
    snqMethods.put("8230959874504373325", new SNQ(i++));
    snqMethods.put("8215585226356638942", new SNQ(i++));
    snqMethods.put("8215585226356653756", new SNQ(i++));
  }
  @NotNull
  @Override
  public SourceNodeQuery getSourceNodeQuery(@NotNull QueryKey identity) {
    SourceNodeQuery query = identity.forFunctionNode(snqMethods);
    return (query != null ? query : super.getSourceNodeQuery(identity));
  }
  private static class SNQ implements SourceNodeQuery {
    private final int methodKey;
    public SNQ(int methodKey) {
      this.methodKey = methodKey;
    }
    @Nullable
    public SNode evaluate(@NotNull SourceSubstituteMacroNodeContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.sourceNodeQuery_0_0(ctx);
        case 1:
          return QueriesGenerated.sourceNodeQuery_0_1(ctx);
        case 2:
          return QueriesGenerated.sourceNodeQuery_0_2(ctx);
        case 3:
          return QueriesGenerated.sourceNodeQuery_0_3(ctx);
        case 4:
          return QueriesGenerated.sourceNodeQuery_0_4(ctx);
        case 5:
          return QueriesGenerated.sourceNodeQuery_0_5(ctx);
        case 6:
          return QueriesGenerated.sourceNodeQuery_0_6(ctx);
        case 7:
          return QueriesGenerated.sourceNodeQuery_0_7(ctx);
        case 8:
          return QueriesGenerated.sourceNodeQuery_0_8(ctx);
        case 9:
          return QueriesGenerated.sourceNodeQuery_0_9(ctx);
        case 10:
          return QueriesGenerated.sourceNodeQuery_0_10(ctx);
        case 11:
          return QueriesGenerated.sourceNodeQuery_1_0(ctx);
        case 12:
          return QueriesGenerated.sourceNodeQuery_1_1(ctx);
        case 13:
          return QueriesGenerated.sourceNodeQuery_1_2(ctx);
        case 14:
          return QueriesGenerated.sourceNodeQuery_1_3(ctx);
        case 15:
          return QueriesGenerated.sourceNodeQuery_1_4(ctx);
        case 16:
          return QueriesGenerated.sourceNodeQuery_1_5(ctx);
        case 17:
          return QueriesGenerated.sourceNodeQuery_1_6(ctx);
        case 18:
          return QueriesGenerated.sourceNodeQuery_1_7(ctx);
        case 19:
          return QueriesGenerated.sourceNodeQuery_1_8(ctx);
        case 20:
          return QueriesGenerated.sourceNodeQuery_1_9(ctx);
        case 21:
          return QueriesGenerated.sourceNodeQuery_1_10(ctx);
        case 22:
          return QueriesGenerated.sourceNodeQuery_1_11(ctx);
        case 23:
          return QueriesGenerated.sourceNodeQuery_1_12(ctx);
        case 24:
          return QueriesGenerated.sourceNodeQuery_1_13(ctx);
        case 25:
          return QueriesGenerated.sourceNodeQuery_4_0(ctx);
        case 26:
          return QueriesGenerated.sourceNodeQuery_4_1(ctx);
        case 27:
          return QueriesGenerated.sourceNodeQuery_4_2(ctx);
        case 28:
          return QueriesGenerated.sourceNodeQuery_4_3(ctx);
        case 29:
          return QueriesGenerated.sourceNodeQuery_4_4(ctx);
        case 30:
          return QueriesGenerated.sourceNodeQuery_4_5(ctx);
        case 31:
          return QueriesGenerated.sourceNodeQuery_4_6(ctx);
        case 32:
          return QueriesGenerated.sourceNodeQuery_4_7(ctx);
        case 33:
          return QueriesGenerated.sourceNodeQuery_4_8(ctx);
        case 34:
          return QueriesGenerated.sourceNodeQuery_4_9(ctx);
        case 35:
          return QueriesGenerated.sourceNodeQuery_4_10(ctx);
        case 36:
          return QueriesGenerated.sourceNodeQuery_4_11(ctx);
        case 37:
          return QueriesGenerated.sourceNodeQuery_4_12(ctx);
        case 38:
          return QueriesGenerated.sourceNodeQuery_4_13(ctx);
        case 39:
          return QueriesGenerated.sourceNodeQuery_4_14(ctx);
        case 40:
          return QueriesGenerated.sourceNodeQuery_4_15(ctx);
        case 41:
          return QueriesGenerated.sourceNodeQuery_4_16(ctx);
        case 42:
          return QueriesGenerated.sourceNodeQuery_4_17(ctx);
        case 43:
          return QueriesGenerated.sourceNodeQuery_4_18(ctx);
        case 44:
          return QueriesGenerated.sourceNodeQuery_4_19(ctx);
        case 45:
          return QueriesGenerated.sourceNodeQuery_4_20(ctx);
        case 46:
          return QueriesGenerated.sourceNodeQuery_4_21(ctx);
        case 47:
          return QueriesGenerated.sourceNodeQuery_5_0(ctx);
        case 48:
          return QueriesGenerated.sourceNodeQuery_5_1(ctx);
        case 49:
          return QueriesGenerated.sourceNodeQuery_5_2(ctx);
        case 50:
          return QueriesGenerated.sourceNodeQuery_5_3(ctx);
        case 51:
          return QueriesGenerated.sourceNodeQuery_6_0(ctx);
        case 52:
          return QueriesGenerated.sourceNodeQuery_6_1(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no method for query %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, PropertyValueQuery> pvqMethods = new HashMap<String, PropertyValueQuery>();
  {
    int i = 0;
    pvqMethods.put("6900020712837608108", new PVQ(i++, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), "name"));
    pvqMethods.put("7387001118551937903", new PVQ(i++, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), "foo"));
    pvqMethods.put("1767070328285750969", new PVQ(i++, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), "_ref"));
    pvqMethods.put("1767070328286967900", new PVQ(i++, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), "_ref"));
    pvqMethods.put("8215585226356640388", new PVQ(i++, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"), "paramRefLocal"));
  }
  @NotNull
  @Override
  public PropertyValueQuery getPropertyValueQuery(@NotNull QueryKey identity) {
    PropertyValueQuery query = identity.forTemplateNode(pvqMethods);
    return (query != null ? query : super.getPropertyValueQuery(identity));
  }
  private static class PVQ extends PropertyValueQuery.Base {
    private final int methodKey;
    /*package*/ PVQ(int methodKey, SProperty property, String templateValue) {
      super(property, templateValue);
      this.methodKey = methodKey;
    }
    @Nullable
    public Object evaluate(@NotNull PropertyMacroContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.propertyMacro_GetValue_0_0(ctx);
        case 1:
          return QueriesGenerated.propertyMacro_GetValue_0_1(ctx);
        case 2:
          return QueriesGenerated.propertyMacro_GetValue_1_0(ctx);
        case 3:
          return QueriesGenerated.propertyMacro_GetValue_1_1(ctx);
        case 4:
          return QueriesGenerated.propertyMacro_GetValue_6_0(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no method for query %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, IfMacroCondition> imcMethods = new HashMap<String, IfMacroCondition>();
  {
    int i = 0;
    imcMethods.put("9101202990849658863", new IfMC(i++));
    imcMethods.put("8230959874503270874", new IfMC(i++));
  }
  @NotNull
  @Override
  public IfMacroCondition getIfMacroCondition(@NotNull QueryKey identity) {
    IfMacroCondition query = identity.forTemplateNode(imcMethods);
    return (query != null ? query : super.getIfMacroCondition(identity));
  }
  private static class IfMC implements IfMacroCondition {
    private final int methodKey;
    public IfMC(int methodKey) {
      this.methodKey = methodKey;
    }
    @Override
    public boolean check(@NotNull IfMacroContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.ifMacro_Condition_0_0(ctx);
        case 1:
          return QueriesGenerated.ifMacro_Condition_0_1(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no condition method for if macro %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, ReferenceTargetQuery> rtqMethods = new HashMap<String, ReferenceTargetQuery>();
  {
    rtqMethods.put("6900020712837825725", new RTQ(0, "LocalReference"));
    rtqMethods.put("6900020712837882910", new RTQ(1, "var"));
    rtqMethods.put("8230959874503330893", new RTQ(2, "get"));
    rtqMethods.put("6900020712837948631", new RTQ(3, "var"));
    rtqMethods.put("8230959874504374267", new RTQ(4, "incrementAndGet_int"));
    rtqMethods.put("8230959874504565508", new RTQ(5, "getAndIncrement_int"));
    rtqMethods.put("8230959874504569141", new RTQ(6, "decrementAndGet_int"));
    rtqMethods.put("8230959874504567474", new RTQ(7, "getAndDecrement_int"));
    rtqMethods.put("3619042211588358557", new RTQ(8, "param"));
    rtqMethods.put("8215585226356641874", new RTQ(9, "LocalReference"));
  }
  @NotNull
  @Override
  public ReferenceTargetQuery getReferenceTargetQuery(@NotNull QueryKey queryKey) {
    ReferenceTargetQuery query = queryKey.forTemplateNode(rtqMethods);
    return (query != null ? query : super.getReferenceTargetQuery(queryKey));
  }
  private static class RTQ extends ReferenceTargetQuery.Base {
    private final int methodKey;
    /*package*/ RTQ(int methodKey, String templateValue) {
      super(templateValue);
      this.methodKey = methodKey;
    }
    @Nullable
    public Object evaluate(@NotNull ReferenceMacroContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.referenceMacro_GetReferent_0_0(ctx);
        case 1:
          return QueriesGenerated.referenceMacro_GetReferent_0_1(ctx);
        case 2:
          return QueriesGenerated.referenceMacro_GetReferent_0_2(ctx);
        case 3:
          return QueriesGenerated.referenceMacro_GetReferent_1_0(ctx);
        case 4:
          return QueriesGenerated.referenceMacro_GetReferent_5_0(ctx);
        case 5:
          return QueriesGenerated.referenceMacro_GetReferent_5_1(ctx);
        case 6:
          return QueriesGenerated.referenceMacro_GetReferent_5_2(ctx);
        case 7:
          return QueriesGenerated.referenceMacro_GetReferent_5_3(ctx);
        case 8:
          return QueriesGenerated.referenceMacro_GetReferent_6_0(ctx);
        case 9:
          return QueriesGenerated.referenceMacro_GetReferent_6_1(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no method for query %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }
  private final Map<String, VariableValueQuery> vvqMethods = new HashMap<String, VariableValueQuery>();
  {
    vvqMethods.put("2409421742521898443", new VVQ(0));
    vvqMethods.put("2409421742521898448", new VVQ(1));
    vvqMethods.put("2409421742521898453", new VVQ(2));
    vvqMethods.put("2409421742521898458", new VVQ(3));
  }
  @NotNull
  @Override
  public VariableValueQuery getVariableValueQuery(@NotNull QueryKey queryKey) {
    VariableValueQuery query = queryKey.forTemplateNode(vvqMethods);
    return (query != null ? query : super.getVariableValueQuery(queryKey));
  }
  private static class VVQ implements VariableValueQuery {
    private final int methodKey;
    /*package*/ VVQ(int methodKey) {
      this.methodKey = methodKey;
    }
    @Nullable
    public Object evaluate(@NotNull TemplateVarContext ctx) throws GenerationFailureException {
      switch (methodKey) {
        case 0:
          return QueriesGenerated.varMacro_Value_0_0(ctx);
        case 1:
          return QueriesGenerated.varMacro_Value_1_0(ctx);
        case 2:
          return QueriesGenerated.varMacro_Value_1_1(ctx);
        case 3:
          return QueriesGenerated.varMacro_Value_1_2(ctx);
        default:
          throw new GenerationFailureException(String.format("Inconsistent QueriesGenerated: there's no method for query %s (key: #%d)", ctx.getTemplateReference(), methodKey));
      }
    }
  }

  private static final class LINKS {
    /*package*/ static final SReferenceLink variableDeclaration$N1XG = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e98L, 0xf8cc6bf960L, "variableDeclaration");
    /*package*/ static final SContainmentLink lValue$splI = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11b0d00332cL, 0xf8c77f1e97L, "lValue");
    /*package*/ static final SContainmentLink operation$gs9E = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46b36c4L, "operation");
    /*package*/ static final SContainmentLink expression$uRUg = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x120a4c1f269L, 0x120a4c433a6L, "expression");
    /*package*/ static final SReferenceLink fieldDeclaration$H7Ag = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b483d77aL, 0x116b484a653L, "fieldDeclaration");
    /*package*/ static final SContainmentLink initializer$2twD = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37a7f6eL, 0xf8c37f506eL, "initializer");
    /*package*/ static final SContainmentLink type$a1UY = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x450368d90ce15bc3L, 0x4ed4d318133c80ceL, "type");
    /*package*/ static final SContainmentLink type$VAx9 = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x53cc4e75e79ac233L, 0x723a3e657841dbf2L, "type");
    /*package*/ static final SContainmentLink assignValueExression$XV8v = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x53cc4e75e79ac233L, 0x7e4df7e6620fe175L, "assignValueExression");
    /*package*/ static final SContainmentLink getValueExpression$czp4 = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x53cc4e75e79ac233L, 0x53cc4e75e79ac302L, "getValueExpression");
    /*package*/ static final SContainmentLink expr$KVqL = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x5fc1cc47cb4622eaL, 0x5fc1cc47cb462337L, "expr");
    /*package*/ static final SContainmentLink referenceExpression$lnFv = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x53cc4e75e79ac233L, 0x5fc1cc47cb46233aL, "referenceExpression");
    /*package*/ static final SContainmentLink rValue$spNK = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11b0d00332cL, 0xf8c77f1e99L, "rValue");
    /*package*/ static final SContainmentLink operand$w6IR = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46a4416L, "operand");
    /*package*/ static final SContainmentLink array$tTQe = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11126b40c25L, 0x11126b6de5aL, "array");
    /*package*/ static final SContainmentLink index$LbBP = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11126b40c25L, 0x11126b6ac89L, "index");
    /*package*/ static final SContainmentLink body$5xQk = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, 0xf8cc56b1ffL, "body");
    /*package*/ static final SContainmentLink statement$53DE = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, 0xf8cc6bf961L, "statement");
  }

  private static final class CONCEPTS {
    /*package*/ static final SConcept GenericLValueExpression$8r = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x53cc4e75e79ac233L, "jetbrains.mps.baseLanguage.structure.GenericLValueExpression");
    /*package*/ static final SConcept ParameterDeclaration$RG = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e94L, "jetbrains.mps.baseLanguage.structure.ParameterDeclaration");
    /*package*/ static final SConcept LocalVariableDeclaration$41 = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7efL, "jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration");
    /*package*/ static final SConcept FieldReferenceOperation$fU = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b483d77aL, "jetbrains.mps.baseLanguage.structure.FieldReferenceOperation");
    /*package*/ static final SConcept AssignmentExpression$SE = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e96L, "jetbrains.mps.baseLanguage.structure.AssignmentExpression");
    /*package*/ static final SConcept BaseMethodDeclaration$kD = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, "jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration");
    /*package*/ static final SConcept StatementList$m_ = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, "jetbrains.mps.baseLanguage.structure.StatementList");
    /*package*/ static final SConcept PassByRefExpression$$K = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x5fc1cc47cb4622eaL, "jetbrains.mps.baseLanguage.structure.PassByRefExpression");
    /*package*/ static final SConcept VariableReference$TC = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e98L, "jetbrains.mps.baseLanguage.structure.VariableReference");
    /*package*/ static final SConcept Type$bu = MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c37f506dL, "jetbrains.mps.baseLanguage.structure.Type");
  }

  private static final class PROPS {
    /*package*/ static final SProperty name$MnvL = MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name");
  }
}
