package jetbrains.mps.baseLanguage.closures.structure;

/*Generated by MPS */

import jetbrains.mps.lang.smodel.LanguageConceptIndex;
import jetbrains.mps.lang.smodel.LanguageConceptIndexBuilder;
import jetbrains.mps.smodel.adapter.ids.SConceptId;
import org.jetbrains.mps.openapi.language.SAbstractConcept;

public final class LanguageConceptSwitch {
  private final LanguageConceptIndex myIndex;
  public static final int AbstractFunctionType = 0;
  public static final int ClosureArgReference = 1;
  public static final int ClosureLiteral = 2;
  public static final int ClosureLiteralType = 3;
  public static final int ClosureVarType = 4;
  public static final int CompactInvokeFunctionExpression = 5;
  public static final int ControlAbstractionContainer = 6;
  public static final int ControlAbstractionDeclaration = 7;
  public static final int FunctionMethodDeclaration = 8;
  public static final int FunctionType = 9;
  public static final int IIncompatibleWithJavaLambda = 10;
  public static final int InferredClosureParameterDeclaration = 11;
  public static final int InvokeExpression = 12;
  public static final int InvokeFunctionExpression = 13;
  public static final int InvokeFunctionOperation = 14;
  public static final int PairOfInts = 15;
  public static final int StringPropertyHolder = 16;
  public static final int UnboundClosureParameterDeclaration = 17;
  public static final int YieldAllStatement = 18;
  public static final int YieldStatement = 19;

  public LanguageConceptSwitch() {
    LanguageConceptIndexBuilder builder = new LanguageConceptIndexBuilder(0xfd3920347849419dL, 0x907112563d152375L);
    builder.put(0x4de23a15f719357dL, AbstractFunctionType);
    builder.put(0x5620d42a452422c7L, ClosureArgReference);
    builder.put(0x1174bed3125L, ClosureLiteral);
    builder.put(0xe8770ba07b68051L, ClosureLiteralType);
    builder.put(0x7ccb67138733b500L, ClosureVarType);
    builder.put(0x11fb8425aa8L, CompactInvokeFunctionExpression);
    builder.put(0x11e49db3870L, ControlAbstractionContainer);
    builder.put(0x11e49dc8097L, ControlAbstractionDeclaration);
    builder.put(0x42d79e63a78a7784L, FunctionMethodDeclaration);
    builder.put(0x1174a4d19ffL, FunctionType);
    builder.put(0x77a6a261781b92e3L, IIncompatibleWithJavaLambda);
    builder.put(0x2308899d335ce07aL, InferredClosureParameterDeclaration);
    builder.put(0x117545d385aL, InvokeExpression);
    builder.put(0x1174a964795L, InvokeFunctionExpression);
    builder.put(0x11d67349093L, InvokeFunctionOperation);
    builder.put(0x11ae0cda05aL, PairOfInts);
    builder.put(0x11ae0d18e07L, StringPropertyHolder);
    builder.put(0x118276b7086L, UnboundClosureParameterDeclaration);
    builder.put(0x11e25fc6c63L, YieldAllStatement);
    builder.put(0x11797183e82L, YieldStatement);
    myIndex = builder.seal();
  }

  /*package*/ int index(SConceptId cid) {
    return myIndex.index(cid);
  }

  public int index(SAbstractConcept concept) {
    return myIndex.index(concept);
  }
}
