Para implementar en Visual Basic se debe hacerse de la siguiente forma:
- En la línea 1 se recibe la cadena que almacena el código que se compilara almacenándolo en este caso en una variable llamada Source.
- En la línea 2 se carga el compilador.cgt que es el archivo que almacena la tabla de análisis, y se envía al Parser.
- Luego se le asigna el código al Parser en la línea 3.
- En la línea 5 se inicia un ciclo que evalué todas las reglas y estados que encuentre para la cadena de entrada.
- La línea 6 se realiza el parseo.
- La línea 7 se ejecuta si encuentra errores léxicos.
- La línea 10 si hay errores sintácticos.
- La línea 12 se ejecuta si hay reducciones, a partir de allí se ejecuta cada regla correspondiente.
- En la línea 20 es el estado de aceptación de las cadenas.
A continuacion se muestra la asociación de cada clase a cada regla de la gramatica:
En la siguiente imagen observamos la implementación de una clase que nos permitirá realizar el almacenamiento del segmento de código correspondiente a una instrucción IF.
La instrucción If trabajada en este caso es sencilla pues solo contiene el siguiente formato:
If (condicion)Then
‘Instrucciones a ejecutar
End If
If (condicion)Then
‘Instrucciones a ejecutar
Else
‘Instrucciones a ejecutar
End If
Como vemos se implementa un If en visual basic.
Se crean 3 variables que contengan la implementación del IContextMethod.
La función Execute debe verificar cual fragmento es el que debe ejecutar asi que revisara si esta activa como verdadera la condición del If y si no pasara a verificar si esta activa la implementación del else.
Se debe crear un formulario con un area de texto que reciba el código a ser analizado y un botón; en el método ejecutado al activar el evento clic del botón se debe colocar el siguiente codigo:
Parser.DoParse(New StringReader(txtCodigo.Text))
De esta forma se obtendra el codigo escrito en el text en este caso llamado “txtCodigo” y se enviara al parser a travez del método “DoParse(txtCodigo.text)” que fue analizado anteriormente.
muy buen aporte, una duda: ¿como me recupero de errores sintacticos?
ResponderEliminarHarrah's Hotel and Casino - MapYRO
ResponderEliminarHarrah's Hotel and Casino - 제주 출장안마 777 Harrah's Blvd, Las Vegas, NV 충청북도 출장샵 89109 - Use this 통영 출장샵 simple 제주 출장안마 form to find hotels, motels, and other 군포 출장안마 lodging near Harrah's Hotel and Casino.