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);
        }
Beispiel #3
0
        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);
        }