cambiar System.in

Iniciado por kamsky, 27 Mayo 2008, 09:58 AM

0 Miembros y 1 Visitante están viendo este tema.

kamsky

hola estoy haciendo un analizador léxico y sintáctico en lex y cup, bueno pues en el cup necesito cambiar la entrada por defecto por un archivo, en la sección de código ingreso esto:

parser code {:
      

   

   public static void main (String argv[]) throws Exception

   {      

      if (argv.length!=1){System.out.println("Número de argumentos incorrecto!");System.exit(0);}
           else
          {
         parser analizador;
         System.in =new java.io.FileInputStream(argv[0]);
         analizador = new parser(new Scan(System.in));      
         analizador.parse();
      }

   }   

:};


pero no me deja,me dice que la variable .in es una variable final..alguien sabe como se hace?? gracias
----NO HAY ARMA MÁS MORTÍFERA QUE UNA PALABRA BROTADA DE UN CORAZÓN NOBLE, Y UN PAR DE HUEVOS QUE LA RESPALDEN---

                       hack 4 free!!

tongoxcore

buenas...
si el archivo de entrada es de texto, lo bueno es usar la clase Scanner, del paquete java.util

Scanner sc = new Scanner( new File(argv[0])  );
Vive como si hoy fuera el última día de tu vida y
Aprende como si tuvieras una vida eterna...

newtonton

Yo esque lo que haria directamente seria:

         parser analizador;
         analizador = new parser(new Scan(new java.io.FileInputStream(argv[0])));     
         analizador.parse();

Y que parsee el fichero que sea argv[0] o incluso
         analizador = new parser(new Scan(new File(argv[0])));     

Si no entiendo mal yo creo que lo resuelves asi...

Contestame si me equivoco.

Saludos