{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 -1var 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 } }
g
Renvoie 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 }
h
Renvoie un tableau :
nLength
nDefaultValue
nValue1
à 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 }