Las técnicas de análisis están bien descritas en la literatura de CS. Pero los algoritmos que conozco requieren que la fuente sea sintácticamente correcta. Si se encuentra un error de sintaxis, el análisis se anula inmediatamente.Código de análisis con errores de sintaxis
Pero los IDE (como Visual Studio) suelen ser capaces de proporcionar una terminación de código significativa y otras sugerencias al escribir, lo que significa que la sintaxis a menudo no está en un estado válido. P.ej. escribe un paréntesis de apertura en una llamada de función y el IDE proporciona sugerencias de parámetros para la función, aunque la sintaxis no sea válida hasta que se escriba el paréntesis de cierre.
Me parece que esto debe basarse en algún tipo de adivinador o analizador tolerante a errores. ¿Alguien sabe qué técnicas o algoritmos se utilizan para esto?