No, no. Es que estamos mezclando conceptos. El tema del "le" no lo he implementado en absoluto, ni con parser robusto ni sin él. Y no lo he implementado por el motivo que ya hemos hablado varias veces: que no hay manera de distinguir el "le" enfático del "le" no enfático sin conocer el contexto. Para que nos aclaremos:
Con parser robusto actual sin arreglo:
> atacar a Jorge
Atacas a Jorge.
> escupirle -> no lo reconoce como verbo -> prueba con el verbo "atacar"
Atacas a Jorge.
Con parser robusto + arreglo:
> atacar a Jorge
Atacas a Jorge.
> escupirle -> lo reconoce como verbo así que no prueba el verbo anterior, pero no sabe qué tiene que hacer ante ese verbo porque el programador no lo ha implementado con "le"
No entiendo...
Desactivando por completo el parser robusto:
> atacar a Jorge
Atacas a Jorge.
> escupirle -> no sabe lo que es porque el programador no lo ha implementado con "le"
No entiendo...
Como ves, el problema de que adivine el verbo y ataque a Jorge sólo existe con el parser robusto sin arreglo. Pero arreglar eso no hace "mágicamente" que el parser entienda el "le". Eso lo tiene que hacer el programador, tal como está el AGE ahora. Para conseguir el comportamiento realmente deseado, que sería
> atacar a Jorge
Atacas a Jorge.
> escupirle
Le lanzas un escupitajo a Jorge en toda la cara.
Necesitarías hacer algo así en el preprocessCommand:
Código:
cadenaCompleta = cadenaCompleta.replace("escupirle","escupirlo");
cadenaCompleta = cadenaCompleta.replace("escupele","escupirlo");
//...
cadenaCompleta = cadenaCompleta.replace("darle","dar");
cadenaCompleta = cadenaCompleta.replace("dale","dar");
//...
Para reflejar que por ejemplo en tu aventura el le de escupir no es enfático (sino que es de complemento indirecto), mientras que el le de dar sí lo es.
Pero esta última solución funcionaría tanto con parser robusto como sin él. Y si no haces esto, el "le" no va a funcionar ni con parser robusto ni sin él. La única diferencia que mete ahí el parser robusto es que al no reconocer el "le" adivina otro verbo, y eso es lo que puedo arreglar.
Espero que ahora me haya explicado mejor.