AFD = Automate Fini Déterministe
		( DFA = Determinist Finite Automaton )
	
Un AFD reconnait un ou plusieurs tokens. Il est créé depuis un AFN ou par aggrégation d'AFD.
l'ε-Closure d'un état d'un AFN contient :
Les états ayant des lignes identiques dans la matrice sont regroupés en un état... enfin presque :
Π composé d'au moins deux groupes :
				Πnew = Π PourChaque( groupe G de Πnew ) partagé groupe G en sous-groupe de façon à ce que deux états sont dans le même sous-groupe si et seulement si pour tous les symboles, ces états pointent vers le même groupe de Π replacé G dans Πnew par l'ensemble des sous-groupes formé
Πnew est différent de Π  AFD avant et après réduction du nombre d'état:
| \Symbole | a | b | c | d | 
|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 
| 2 | 1 | 0 | 0 | 0 | 
| 3 | 1 | 0 | 0 | 0 | 
| 4 | 1 | 0 | 0 | 0 | 
| 5 | 1 | 0 | 0 | 0 | 
| \Symbole | a | b | c | d | 
|---|---|---|---|---|
| 1 | 2 | 2 | 2 | 2 | 
| 2 | 1 | 0 | 0 | 0 | 
Les symboles ayant des colonnes identiques dans la matrice sont regroupés dans un ensemble de caractères.
AFD avant et après réduction de l'alphabet:
| \Symbole | a | b | c | d | 
|---|---|---|---|---|
| 1 | 2 | 2 | 2 | 4 | 
| 2 | 2 | 2 | 2 | 3 | 
| 3 | 2 | 2 | 2 | 4 | 
| 4 | 2 | 2 | 2 | 4 | 
| \Symbole | [abc] | d | 
|---|---|---|
| 1 | 2 | 4 | 
| 2 | 2 | 3 | 
| 3 | 2 | 4 | 
| 4 | 2 | 4 | 
Résolution des ambiguïtés:
Exemple d'implémentation recherchant la plus grande chaîne pouvant être trouvée:
	function match( oDFA, sText, nIndex ){
		var nState = oDFA.I, nStartIndex, nCurrentIndex, oMatched
		nStartIndex = nCurrentIndex = nIndex || 0
		while( nState = oDFA.nextState( nState,  sText.charAt( nCurrentIndex++ ))){
			if( oDFA.haveFinalState( nState )){
				oMatched={ start:nStartIndex, end:nCurrentIndex }
				}
			}
		return oMatched
		}
	
	Premier arrivé...
	function searchToken( aTokens, sText, nIndex ){
		var oMatched
		for(var i=0; aTokens[i]; i++ )
			if( oMatched = match( aTokens[i], sText, nIndex ))
				return oMatched // ...first found
		}