1 import java.io.FileInputStream;
\r
2 import java.io.FileNotFoundException;
\r
3 import java.util.LinkedList;
\r
4 import java.util.List;
\r
6 import antlr.CommonToken;
\r
8 import antlr.TokenStreamException;
\r
11 * Ejemplo de la estructura del método main para comenzar el procesado de una serie de archivos
\r
12 * en el lenguaje L-1
\r
16 public class EjemploMain {
\r
19 * Pre: 'nombre_prog' es el nombre de un fichero conteniendo un programa L-1.
\r
20 * Ej. "programa.cfg"
\r
21 * c:\PL2\Laboratorio\SEMANTICA\sem2\m.mod;
\r
22 * c:\PL2\Laboratorio\SEMANTICA\sem2\n.mod;
\r
23 * c:\PL2\Laboratorio\SEMANTICA\sem2\p.mod;
\r
25 * Cada elemento en 'lista_nombre_modulos' contiene el nombre de un módulo
\r
26 * del programa 'nombre_prog'.
\r
28 private static List<String> extraer_modulos(String nombre_prog) {
\r
29 List<String> lista_nombres_modulos = new LinkedList<String>();
\r
31 FileInputStream f = new FileInputStream(nombre_prog);
\r
32 Conflex conflex = new Conflex(f);
\r
33 CommonToken tok = (CommonToken) conflex.nextToken();
\r
35 // Análisis léxico del archivo "*.cfg". Cada token 'tok' representa el nombre de un módulo.
\r
36 while (tok.getType() != Token.EOF_TYPE) {
\r
37 String s = new String(tok.getText());
\r
38 lista_nombres_modulos.add(s);
\r
39 tok = (CommonToken) conflex.nextToken();
\r
41 } catch (FileNotFoundException e) {
\r
42 System.out.println("Excepcion: " + e);
\r
43 } catch (TokenStreamException e) {
\r
44 System.out.println("Excepcion: " + e);
\r
46 return lista_nombres_modulos;
\r
50 * @param args Como único argumento a la aplicación se le pasará un archivo *.cfg con
\r
51 * las rutas de los archivos *.mod que queramos procesar.
\r
53 public static void main(String[] args) {
\r
54 List<String> nombres_modulos = extraer_modulos(args[0]);
\r
56 //TODO Realizar análisis léxico, sintáctico y semántico de cada módulo
\r