Ejemplo n.º 1
0
bool Syntaxer::ParseSyntax(SyntaxTree* tree, FileScanner* fileScanner) {
	SyntaxNode* root = nullptr;
	if (!CreateSyntaxTree(root, fileScanner)) {
		return false;
	}

	tree->SetRoot(root);
	Debug::Log("\n" + Utility::Heading("Accept"));
	return true;
}
BOOL CDFA::ConstructDFA()
{
    BOOL bRet = FALSE;
    CHECK_BOOL ( CreateSyntaxTree() );
    CHECK_BOOL ( m_pSyntaxNode->CalculateAllFunction() );
    m_pSyntaxNode->ShowAllFunction(m_pSyntaxNode);
    CHECK_BOOL ( CreateDFA(m_pSyntaxNode) );
    CHECK_BOOL ( MinimizeDFA(m_lstSet.size(), m_lstNodeRelation, 
                             m_setAcceptingIdx, m_lstFinalSet) );

    assert(m_lstFinalSet.size() <= m_lstSet.size());

    bRet = TRUE;
Exit0:
    return bRet;
}