package jetbrains.mps.lang.behavior.generator.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 org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.annotations.NotNull; import jetbrains.mps.generator.runtime.TemplateContext; import jetbrains.mps.generator.runtime.GenerationException; import jetbrains.mps.generator.runtime.TemplateExecutionEnvironment; import jetbrains.mps.generator.impl.reference.RefResolver; import java.util.Collection; import jetbrains.mps.generator.template.IfMacroContext; import jetbrains.mps.generator.runtime.TemplateUtil; import java.util.List; import java.util.ArrayList; import jetbrains.mps.generator.template.SourceSubstituteMacroNodesContext; import jetbrains.mps.generator.template.SourceSubstituteMacroNodeContext; import org.jetbrains.mps.openapi.model.SNodeAccessUtil; import jetbrains.mps.generator.template.PropertyMacroContext; import jetbrains.mps.generator.runtime.NodeWeaveFacility; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.mps.openapi.language.SConcept; 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_reduce_MethodInvocation extends TemplateDeclarationBase { public Template_reduce_MethodInvocation() { } public SNodeReference getTemplateNode() { return new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4547736967710372412"); } protected SNode applyPart0(@NotNull final TemplateContext context) throws GenerationException { final TemplateExecutionEnvironment environment = context.getEnvironment(); final SNode tnode1 = environment.createOutputNode(myConcepts[0]); try { environment.resolve(new RefResolver(tnode1, myAssociationLinks[0], context, new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "391057745364430041"), "bhMethodImpl") { @Override public Object resolve() { return QueriesGenerated.referenceMacro_GetReferent_391057745364430042(createQueryContext()); } }); TemplateContext context1 = context.subContext(); { Collection<SNode> tlist2 = null; if (QueriesGenerated.ifMacro_Condition_391057745364429981(new IfMacroContext(context1, ifMacroRef_xgjiki_b0a0b0c0c0e))) { final SNode tnode3 = environment.createOutputNode(myConcepts[1]); try { environment.resolveInTemplateLater(tnode3, myAssociationLinks[1], templateNode_xgjiki_c0a0a1a1a2a2a4, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4547736967710446796", "node", context1); } finally { } tlist2 = TemplateUtil.singletonList(tnode3); } else { final SNode tnode4 = environment.createOutputNode(myConcepts[1]); try { environment.resolveInTemplateLater(tnode4, myAssociationLinks[1], templateNode_xgjiki_c0a0a1a0b0c0c0e, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/7154549807540327406", "concept", context1); } finally { } tlist2 = TemplateUtil.singletonList(tnode4); } for (SNode child5 : TemplateUtil.asNotNull(tlist2)) { tnode1.addChild(myAggregationLinks[0], child5); } // TODO validate child } { final List<SNode> tlist6 = new ArrayList<SNode>(); final Iterable<SNode> loopList6 = QueriesGenerated.sourceNodesQuery_4279359955659694569(new SourceSubstituteMacroNodesContext(context1, loopMacroRef_xgjiki_b0a0a1a3a2a4)); int loopIndex_parameterCounter_6 = 0; for (SNode itnode6 : loopList6) { if (itnode6 == null) { continue; } TemplateContext context2 = context1.subContext(itnode6); context2 = context2.withVariable("cv:parameterCounter", loopIndex_parameterCounter_6++); Collection<SNode> tlist7 = null; if (QueriesGenerated.ifMacro_Condition_4279359955659716962(new IfMacroContext(context2, ifMacroRef_xgjiki_b0a0e0d0d0c0e))) { final SNode tnode8 = environment.createOutputNode(myConcepts[2]); try { TemplateContext context3 = context2.subContext(); { final SNode tnode9 = environment.createOutputNode(myConcepts[3]); try { TemplateContext context4 = context3.subContext(); { final SNode tnode10 = environment.createOutputNode(myConcepts[3]); try { TemplateContext context5 = context4.subContext(); { Collection<SNode> tlist11 = null; final SNode copySrcInput11 = QueriesGenerated.sourceNodeQuery_4279359955659612500(new SourceSubstituteMacroNodeContext(context5, copySrcMacro_xgjiki_b0a0c0b0b0b0b0b0b0e0d0d0c0e)); tlist11 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput11), copySrcMacro_xgjiki_b0a0c0b0b0b0b0b0b0e0d0d0c0e, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4279359955659612498", context5); for (SNode child12 : TemplateUtil.asNotNull(tlist11)) { tnode10.addChild(myAggregationLinks[1], child12); } // TODO validate child } { final SNode tnode13 = environment.createOutputNode(myConcepts[4]); try { TemplateContext context6 = context5.subContext(); { final SNode tnode14 = environment.createOutputNode(myConcepts[5]); try { SNodeAccessUtil.setProperty(tnode14, myProperties[0], TemplateUtil.asString(QueriesGenerated.propertyMacro_GetPropertyValue_4279359955659612536(new PropertyMacroContext(context6, "0", propertyMacro_xgjiki_c0a0c0a0b0b0b0c0b0b0b0b0b0e0d0d0c0e)))); } finally { } tnode13.addChild(myAggregationLinks[2], tnode14); // TODO validate child } { final SNode tnode15 = environment.createOutputNode(myConcepts[1]); try { environment.resolveInTemplateLater(tnode15, myAssociationLinks[1], templateNode_xgjiki_c0a0a1a2a1a2a1a1a1a1a1a4a3a3a2a4, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4547736967710450024", "parameters", context6); } finally { } tnode13.addChild(myAggregationLinks[3], tnode15); // TODO validate child } } finally { } tnode10.addChild(myAggregationLinks[4], tnode13); // TODO validate child } } finally { } tnode9.addChild(myAggregationLinks[4], tnode10); // TODO validate child } { Collection<SNode> tlist16 = null; final SNode copySrcInput16 = QueriesGenerated.sourceNodeQuery_4279359955659760635(new SourceSubstituteMacroNodeContext(context4, copySrcMacro_xgjiki_b0a0c0c0b0b0b0e0d0d0c0e)); tlist16 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput16), copySrcMacro_xgjiki_b0a0c0c0b0b0b0e0d0d0c0e, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4279359955659612496", context4); for (SNode child17 : TemplateUtil.asNotNull(tlist16)) { tnode9.addChild(myAggregationLinks[1], child17); } // TODO validate child } } finally { } tnode8.addChild(myAggregationLinks[5], tnode9); // TODO validate child } } finally { } tlist7 = TemplateUtil.singletonList(tnode8); } else { final SNode tnode18 = environment.createOutputNode(myConcepts[3]); try { TemplateContext context7 = context2.subContext(); { Collection<SNode> tlist19 = null; final SNode copySrcInput19 = QueriesGenerated.sourceNodeQuery_4279359955659731408(new SourceSubstituteMacroNodeContext(context7, copySrcMacro_xgjiki_b0a0c0b0b0a4a3a3a2a4)); tlist19 = environment.copyNodes(TemplateUtil.singletonList(copySrcInput19), copySrcMacro_xgjiki_b0a0c0b0b0a4a3a3a2a4, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4279359955659731406", context7); for (SNode child20 : TemplateUtil.asNotNull(tlist19)) { tnode18.addChild(myAggregationLinks[1], child20); } // TODO validate child } { final SNode tnode21 = environment.createOutputNode(myConcepts[4]); try { TemplateContext context8 = context7.subContext(); { final SNode tnode22 = environment.createOutputNode(myConcepts[5]); try { SNodeAccessUtil.setProperty(tnode22, myProperties[0], TemplateUtil.asString(QueriesGenerated.propertyMacro_GetPropertyValue_4279359955659731444(new PropertyMacroContext(context8, "0", propertyMacro_xgjiki_c0a0c0a0b0b0b0c0b0a4a3a3a2a4)))); } finally { } tnode21.addChild(myAggregationLinks[2], tnode22); // TODO validate child } { final SNode tnode23 = environment.createOutputNode(myConcepts[1]); try { environment.resolveInTemplateLater(tnode23, myAssociationLinks[1], templateNode_xgjiki_c0a0a1a2a1a2a1a0e0d0d0c0e, "tpl/r:229ce18d-2bb0-4d5b-a7cd-cec65841e459/4547736967710450024", "parameters", context8); } finally { } tnode21.addChild(myAggregationLinks[3], tnode23); // TODO validate child } } finally { } tnode18.addChild(myAggregationLinks[4], tnode21); // TODO validate child } } finally { } tlist7 = TemplateUtil.singletonList(tnode18); } if (tlist7 != null) { tlist6.addAll(tlist7); } } for (SNode child24 : TemplateUtil.asNotNull(tlist6)) { tnode1.addChild(myAggregationLinks[0], child24); } // TODO validate child } } finally { } return tnode1; } @Override public Collection<SNode> apply(@NotNull TemplateExecutionEnvironment environment, @NotNull TemplateContext context) throws GenerationException { return TemplateUtil.singletonList(applyPart0(context)); } @Override public Collection<SNode> weave(@NotNull NodeWeaveFacility.WeaveContext weaveContext, @NotNull NodeWeaveFacility weaveSupport) throws GenerationException { final TemplateContext templateContext = weaveSupport.getTemplateContext(); SNode tnodepart0 = applyPart0(templateContext); weaveSupport.weaveNode(MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b213L, 0xf8cc56b214L, "expression"), tnodepart0); return TemplateUtil.singletonList(tnodepart0); } @Override protected SConcept[] initConcepts() { SConcept[] rv = new SConcept[6]; rv[0] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x6c6b6a1e379f9404L, "LocalMethodCall"); rv[1] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8c77f1e98L, "VariableReference"); rv[2] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xfb4ed32b7fL, "ParenthesizedExpression"); rv[3] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf940dabe4aL, "CastExpression"); rv[4] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0x11126b40c25L, "ArrayAccessExpression"); rv[5] = MetaAdapterFactory.getConcept(MetaAdapterFactory.getLanguage(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, "jetbrains.mps.baseLanguage"), 0xf8cc59b314L, "IntegerConstant"); return rv; } @Override protected SProperty[] initProperties() { SProperty[] rv = new SProperty[1]; rv[0] = MetaAdapterFactory.getProperty(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc59b314L, 0xf8cc59b315L, "value"); return rv; } @Override protected SReferenceLink[] initAssociationLinks() { SReferenceLink[] rv = new SReferenceLink[2]; rv[0] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301adL, "baseMethodDeclaration"); rv[1] = MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c77f1e98L, 0xf8cc6bf960L, "variableDeclaration"); return rv; } @Override protected SContainmentLink[] initAggregationLinks() { SContainmentLink[] rv = new SContainmentLink[6]; rv[0] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301aeL, "actualArgument"); rv[1] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf940dabe4aL, 0xf940dabe4bL, "type"); rv[2] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11126b40c25L, 0x11126b6ac89L, "index"); rv[3] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11126b40c25L, 0x11126b6de5aL, "array"); rv[4] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf940dabe4aL, 0xf940dabe4cL, "expression"); rv[5] = MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfb4ed32b7fL, 0xfb4ed32b80L, "expression"); return rv; } private static SNodePointer templateNode_xgjiki_c0a0a1a1a2a2a4 = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "391057745364429979"); private static SNodePointer ifMacroRef_xgjiki_b0a0b0c0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "391057745364429980"); private static SNodePointer templateNode_xgjiki_c0a0a1a0b0c0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "391057745364429989"); private static SNodePointer loopMacroRef_xgjiki_b0a0a1a3a2a4 = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659694566"); private static SNodePointer copySrcMacro_xgjiki_b0a0c0b0b0b0b0b0b0e0d0d0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659612499"); private static SNodePointer propertyMacro_xgjiki_c0a0c0a0b0b0b0c0b0b0b0b0b0e0d0d0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659612535"); private static SNodePointer templateNode_xgjiki_c0a0a1a2a1a2a1a1a1a1a1a4a3a3a2a4 = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659612542"); private static SNodePointer copySrcMacro_xgjiki_b0a0c0c0b0b0b0e0d0d0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659752680"); private static SNodePointer ifMacroRef_xgjiki_b0a0e0d0d0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659716959"); private static SNodePointer copySrcMacro_xgjiki_b0a0c0b0b0a4a3a3a2a4 = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659731407"); private static SNodePointer propertyMacro_xgjiki_c0a0c0a0b0b0b0c0b0a4a3a3a2a4 = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659731443"); private static SNodePointer templateNode_xgjiki_c0a0a1a2a1a2a1a0e0d0d0c0e = new SNodePointer("r:229ce18d-2bb0-4d5b-a7cd-cec65841e459(jetbrains.mps.lang.behavior.generator.template.main@generator)", "4279359955659731450"); }