package jetbrains.mps.baseLanguage.dataFlow;
/*Generated by MPS */
import jetbrains.mps.lang.pattern.GeneratedMatcher;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.lang.pattern.NodeMatcher;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.lang.dataFlow.framework.Program;
import jetbrains.mps.lang.dataFlow.framework.instructions.Instruction;
/*package*/ class Pattern_i6ycer8nigq6 extends GeneratedMatcher {
public Pattern_i6ycer8nigq6(SNode patternNode, SNode orClause0, SNode orClause1) {
super(patternNode, false);
NodeMatcher disjunct0 = new NodeMatcher(myValues);
NodeMatcher disjunct1 = new NodeMatcher(myValues);
disjunct0.child(MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfbdeb6fecfL, 0xfbdeb7a11cL, "leftExpression")).at(0).capture("p");
disjunct1.child(MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfbdeb6fecfL, 0xfbdeb7a11bL, "rightExpression")).at(0).capture("p");
myTopMatcher.child(MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x10e50ecba3dL, 0x10e50ed44ceL, "condition")).at(0).capture("action_var_2394615668041443703");
myTopMatcher.child(MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x10e50ecba3dL, 0x10e50ed44ceL, "condition")).at(0).disjunct(orClause0, disjunct0).disjunct(orClause1, disjunct1);
}
@Override
public void performActions(Object o) {
{
Object object = getFieldValue("patternVar_action_var_2394615668041443703");
if (((Program) o).contains(object)) {
boolean before = false;
int position;
if (before) {
position = ((Program) (o)).getStart(object);
} else {
position = ((Program) (o)).getEnd(object);
}
Instruction instruction = new notNullInstruction((SNode) getFieldValue("patternVar_p"));
instruction.setRuleReference("r:00000000-0000-4000-0000-011c895902c2(jetbrains.mps.baseLanguage.dataFlow)/2394615668041444403");
instruction.setSource(getFieldValue("patternVar_action_var_2394615668041443703"));
((Program) (o)).insert(instruction, position, true, before);
}
}
}
}