public override FA VisitRegexpStatement(CASTElement currentNode) { CRegexpStatement curNode = currentNode as CRegexpStatement; m_currentRegularExpression = curNode; // Generate the FA for the current regular expression FA fa = base.VisitRegexpStatement(currentNode); fa.UpdateAlphabet(); m_currentNFA = fa; m_currentLine = curNode.M_Line; m_ReportingServices.ExctractThompsonStep(fa, "merge" + m_currentLine + ".dot", this.GetHashCode(), true); // Record the derived NFA to the RERecords m_reRecords[curNode.M_Line].M_Nfa = fa; // Name the nodes of current branch of the FA with the name of the current regular expression fa.SetFANodePrefix(curNode.M_StatementID); fa.SetFANodesLineDependency(curNode.M_Line); m_currentRegularExpression = null; fa.EmmitToFile("merge" + m_currentLine + ".txt", new object[1] { FA.m_FAINFOKEY }); return(fa); }
public override FA VisitRegexpStatement(CASTElement currentNode) { CRegexpStatement curNode = currentNode as CRegexpStatement; m_currentRegularExpression = curNode; // Generate the FA for the current regular expression FA fa = base.VisitRegexpStatement(currentNode); m_currentNFA = fa; m_currentLine = curNode.M_Line; m_ReportingServices.ExctractThompsonStep(fa, "merge" + m_currentLine + ".dot"); // Record the derived NFA to the RERecords m_reRecords[curNode.M_Line].M_Nfa = fa; // Name the nodes of current branch of the FA with the name of the current regular expression fa.SetFANodePrefix(curNode.M_StatementID); fa.SetFANodesLineDependency(curNode.M_Line); m_currentRegularExpression = null; return(fa); }
public override FA VisitRegexpStatement(CASTElement currentNode) { CRegexpStatement curNode = currentNode as CRegexpStatement; m_currentRegularExpression = curNode; // Generate the FA for the current regular expression FA fa = base.VisitRegexpStatement(currentNode); // Name the nodes of current branch of the FA with the name of the current regular expression fa.SetFANodePrefix(curNode.M_StatementID); fa.SetFANodesLineDependency(curNode.M_Line); m_currentRegularExpression = null; return(fa); }