package jetbrains.mps.baseLanguage.money.typesystem; /*Generated by MPS */ import jetbrains.mps.lang.typesystem.runtime.BaseHelginsDescriptor; import jetbrains.mps.lang.typesystem.runtime.InferenceRule_Runtime; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.lang.typesystem.runtime.OverloadedOperationsTypesProvider; import org.jetbrains.mps.openapi.language.SAbstractConcept; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.errors.IRuleConflictWarningProducer; import org.jetbrains.mps.openapi.persistence.PersistenceFacade; import jetbrains.mps.smodel.SModelUtil_new; public class TypesystemDescriptor extends BaseHelginsDescriptor { public TypesystemDescriptor() { { InferenceRule_Runtime inferenceRule = new typeof_MoneyCreator_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_MoneyGetAmountMethodCall_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_MoneyGetCurrencyMethodCall_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_MoneyIsZeroMethodCall_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_MoneyLiteral_InferenceRule(); this.myInferenceRules.add(inferenceRule); } this.myOverloadedOperationsTypesProviders.add(new TypesystemDescriptor.CustomOverloadedOperationsTypesProvider_a(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7fbL, "jetbrains.mps.baseLanguage.structure.PlusExpression"))); this.myOverloadedOperationsTypesProviders.add(new TypesystemDescriptor.CustomOverloadedOperationsTypesProvider_b(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7f5L, "jetbrains.mps.baseLanguage.structure.MinusExpression"))); this.myOverloadedOperationsTypesProviders.add(new TypesystemDescriptor.CustomOverloadedOperationsTypesProvider_c(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xff2bbc13daL, "jetbrains.mps.baseLanguage.structure.DivExpression"))); this.myOverloadedOperationsTypesProviders.add(new TypesystemDescriptor.CustomOverloadedOperationsTypesProvider_d(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfe476b758fL, "jetbrains.mps.baseLanguage.structure.MulExpression"))); this.myOverloadedOperationsTypesProviders.add(new TypesystemDescriptor.CustomOverloadedOperationsTypesProvider_e(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfe476b758fL, "jetbrains.mps.baseLanguage.structure.MulExpression"))); } public static class CustomOverloadedOperationsTypesProvider_a extends OverloadedOperationsTypesProvider { public CustomOverloadedOperationsTypesProvider_a(SAbstractConcept concept) { this.myLeftOperandType = _quotation_createNode_3ist9o_a0a0a1(); this.myRightOperandType = _quotation_createNode_3ist9o_a0b0a1(); this.myOperationConcept = concept; this.myLeftTypeIsExact = true; this.myRightTypeIsExact = true; this.myRightIsStrong = false; this.myLeftIsStrong = false; this.myRuleModelId = "r:00000000-0000-4000-0000-011c895903f6(jetbrains.mps.baseLanguage.money.typesystem)"; this.myRuleNodeId = "1239364220843"; } public SNode getOperationType(SNode operation, SNode leftOperandType, SNode rightOperandType) { return _quotation_createNode_3ist9o_a0a1b(); } @Override public void reportConflict(IRuleConflictWarningProducer producer) { producer.produceWarning(myRuleModelId, myRuleNodeId); } private static SNode _quotation_createNode_3ist9o_a0a0a1() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0b0a1() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0a1b() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } } public static class CustomOverloadedOperationsTypesProvider_b extends OverloadedOperationsTypesProvider { public CustomOverloadedOperationsTypesProvider_b(SAbstractConcept concept) { this.myLeftOperandType = _quotation_createNode_3ist9o_a0a0a2(); this.myRightOperandType = _quotation_createNode_3ist9o_a0b0a2(); this.myOperationConcept = concept; this.myLeftTypeIsExact = true; this.myRightTypeIsExact = true; this.myRightIsStrong = false; this.myLeftIsStrong = false; this.myRuleModelId = "r:00000000-0000-4000-0000-011c895903f6(jetbrains.mps.baseLanguage.money.typesystem)"; this.myRuleNodeId = "1239364305878"; } public SNode getOperationType(SNode operation, SNode leftOperandType, SNode rightOperandType) { return _quotation_createNode_3ist9o_a0a1c(); } @Override public void reportConflict(IRuleConflictWarningProducer producer) { producer.produceWarning(myRuleModelId, myRuleNodeId); } private static SNode _quotation_createNode_3ist9o_a0a0a2() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0b0a2() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0a1c() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } } public static class CustomOverloadedOperationsTypesProvider_c extends OverloadedOperationsTypesProvider { public CustomOverloadedOperationsTypesProvider_c(SAbstractConcept concept) { this.myLeftOperandType = _quotation_createNode_3ist9o_a0a0a3(); this.myRightOperandType = _quotation_createNode_3ist9o_a0b0a3(); this.myOperationConcept = concept; this.myLeftTypeIsExact = true; this.myRightTypeIsExact = true; this.myRightIsStrong = false; this.myLeftIsStrong = false; this.myRuleModelId = "r:00000000-0000-4000-0000-011c895903f6(jetbrains.mps.baseLanguage.money.typesystem)"; this.myRuleNodeId = "1239364336249"; } public SNode getOperationType(SNode operation, SNode leftOperandType, SNode rightOperandType) { return _quotation_createNode_3ist9o_a0a1d(); } @Override public void reportConflict(IRuleConflictWarningProducer producer) { producer.produceWarning(myRuleModelId, myRuleNodeId); } private static SNode _quotation_createNode_3ist9o_a0a0a3() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0b0a3() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940d22479L, "IntegerType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0a1d() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } } public static class CustomOverloadedOperationsTypesProvider_d extends OverloadedOperationsTypesProvider { public CustomOverloadedOperationsTypesProvider_d(SAbstractConcept concept) { this.myLeftOperandType = _quotation_createNode_3ist9o_a0a0a4(); this.myRightOperandType = _quotation_createNode_3ist9o_a0b0a4(); this.myOperationConcept = concept; this.myLeftTypeIsExact = true; this.myRightTypeIsExact = true; this.myRightIsStrong = false; this.myLeftIsStrong = false; this.myRuleModelId = "r:00000000-0000-4000-0000-011c895903f6(jetbrains.mps.baseLanguage.money.typesystem)"; this.myRuleNodeId = "1239364372740"; } public SNode getOperationType(SNode operation, SNode leftOperandType, SNode rightOperandType) { return _quotation_createNode_3ist9o_a0a1e(); } @Override public void reportConflict(IRuleConflictWarningProducer producer) { producer.produceWarning(myRuleModelId, myRuleNodeId); } private static SNode _quotation_createNode_3ist9o_a0a0a4() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0b0a4() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940d22479L, "IntegerType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0a1e() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } } public static class CustomOverloadedOperationsTypesProvider_e extends OverloadedOperationsTypesProvider { public CustomOverloadedOperationsTypesProvider_e(SAbstractConcept concept) { this.myLeftOperandType = _quotation_createNode_3ist9o_a0a0a5(); this.myRightOperandType = _quotation_createNode_3ist9o_a0b0a5(); this.myOperationConcept = concept; this.myLeftTypeIsExact = true; this.myRightTypeIsExact = true; this.myRightIsStrong = false; this.myLeftIsStrong = false; this.myRuleModelId = "r:00000000-0000-4000-0000-011c895903f6(jetbrains.mps.baseLanguage.money.typesystem)"; this.myRuleNodeId = "1239364383449"; } public SNode getOperationType(SNode operation, SNode leftOperandType, SNode rightOperandType) { return _quotation_createNode_3ist9o_a0a1f(); } @Override public void reportConflict(IRuleConflictWarningProducer producer) { producer.produceWarning(myRuleModelId, myRuleNodeId); } private static SNode _quotation_createNode_3ist9o_a0a0a5() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940d22479L, "IntegerType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0b0a5() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } private static SNode _quotation_createNode_3ist9o_a0a1f() { PersistenceFacade facade = PersistenceFacade.getInstance(); SNode quotedNode_1 = null; quotedNode_1 = SModelUtil_new.instantiateConceptDeclaration(MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf43135f9b8334685L, 0x8d26ffb6c8215f72L, "jetbrains.mps.baseLanguage.money"), 0x1144b05194dL, "MoneyType"), null, null, false); return quotedNode_1; } } }