{a:0,b:1} ).
i de M est un nom détat.
j du tableau M[i] est un index de symbole de l'alphabet.{1:10} est plus court que [,10,,,,,,,,,,,,,][,10] est encore plus court.
h(15,0,1,10).
Ces fonctions servent à compresser la taille des automates, c'est pour cela que leur nom est si court !
f Renvoie une fonction ayant comme arguments symb et state.
state si le symb ∈ sCharSet et bIn == true sinon -1state si le symb ∉ sCharSet et bIn == false sinon -1
var f =function( sCharSet, bIn ){
var cache = {}
for(var i=0, ni=sCharSet.length; i < ni; i++ ) cache[ sCharSet[i]] = -1
return bIn
? function(symb,state){ return cache[symb] ? state : -1 }
: function(symb,state){ return cache[symb] || state }
}
gRenvoie un objet ayant comme clé les symboles et comme valeur un index.
var g =function( sSymb1 /*, sSymb2, ... */ ){
var o = {}
for(var i=0, ni=arguments.length; i < ni; i++ ) o[ arguments[i]] = i
return o
}
hRenvoie un tableau :
nLengthnDefaultValuenValue1 à l'index nIndex1
var h =function( nLength, nDefaultValue, nIndex1, nValue1 /*, nIndex2, nValue2, ...*/ ){
var a = []
var o = {}
for(var i=2, ni=arguments.length; i < ni; i=i+2 ) o[ arguments[i]] = arguments[i+1]
for(var i=0; i < nLength; i++ ) a[i] = o[i] || nDefaultValue
return a
}