public void Apply(TacNode node) { var assignmentNode = (node as TacAssignmentNode); assignmentNode.Operation = null; assignmentNode.FirstOperand = "false"; assignmentNode.SecondOperand = null; }
public bool IsThisRule(TacNode node) { if (node is TacAssignmentNode assignmentNode) { return(assignmentNode != null && (assignmentNode.FirstOperand == "false" || assignmentNode.SecondOperand == "false") && assignmentNode.Operation == "&&"); } return(false); }
private void ChangeByVariable(TacNode node, TacAssignmentNode replacingNode) { switch (node) { case TacAssignmentNode assNode: if (assNode.FirstOperand.Equals(replacingNode.LeftPartIdentifier)) { assNode.FirstOperand = replacingNode.FirstOperand; } if (assNode.SecondOperand != null && assNode.SecondOperand.Equals(replacingNode.LeftPartIdentifier)) { assNode.SecondOperand = replacingNode.FirstOperand; } break; case TacIfGotoNode ifGotoNode: //ifGotoNode.Condition = replacingNode.FirstOperand; break; } }
protected bool Equals(TacNode other) { return(string.Equals(Label, other.Label)); }
public void AddToSecondSet(TacNode line) { def.Add(line as TacNodeVarDecorator); }
public void AddToFirstSet(TacNode line) { use.Add(line as TacNodeVarDecorator); }
public HashSet <TacNode> GetLineKill(TacNode tacNode) { return(lineGenKill[basicBlock].GetFirstSet()); }
public HashSet <TacNode> GetLineGen(TacNode tacNode) { return(lineGenKill[basicBlock].GetSecondSet()); }
public void AddToFirstSet(TacNode line) { e_gen.Add(line); }
public void AddToSecondSet(TacNode line) { e_kill.Add(line); }