JavaCC problema java.io.FileNotFoundException

di il
4 risposte

JavaCC problema java.io.FileNotFoundException

Salve a tutti sto lavorando con Javacc per la creazione di un parser. Per il momento mi sto occupando dell'analisi lessicale quindi del token manager. Quindi ho creato la mia lista di token con i rispettivi pattern in più ho aggiunto lo skip dei commenti dello spazio e dell'andare a capo. Inoltre con eclipse atraverso Refactor-->Rename ho rinominato le classi java che inziavano con EG1 con Prova avendo quindi Prova.java, ProvaConstants e ProvaTokenManager. In parser begin ho inserito il seguente codice:

PARSER_BEGIN(Prova)
package parser;

import java.io.*;

public class Prova
{
  public static void main(String args []) throws ParseException
  {
    Token t;
    FileInputStream in;
    ProvaTokenManager tm;
    
    
    try {

          
        in = new FileInputStream(args[0]);
        System.out.println("QUI");
        tm  = new ProvaTokenManager(new SimpleCharStream(in));
        t = tm.getNextToken();

        while(t.kind != ProvaConstants.EOF)
        {
            t = tm.getNextToken();

        }
    } catch (FileNotFoundException e) {
        
        e.printStackTrace();
    }
  }        
}

PARSER_END(Prova)
In args[0] c'è la stringa $TBOO che (rappresenta il pattern di un mio token), ora quando faccio run mi esce il seguente errore:

java.io.FileNotFoundException: $TBOO (Impossibile trovare il file specificato)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at parser.Prova.main(Prova.java:17)
Qualcuno mi può spiegare il perchè di questo errore?

4 Risposte

  • Re: JavaCC problema java.io.FileNotFoundException

    E' banale, te lo dice: non e' in grado di trovare il file con il nome $TBOO
  • Re: JavaCC problema java.io.FileNotFoundException

    Questo l'ho capito il problema che io in args ho scritto $TBOO come mai non lo trova? Oppure non lo trova tra la lista dei token che ho specificato?
  • Re: JavaCC problema java.io.FileNotFoundException

    E' evidente, allora, che non e' chiaro che cosa vorresti ottenere:

    tu hai fornito come argomento il nome di un file (nota: nome abbastanza strano visto che contiene il carattere $ e non ha estensione, ma se cosi' hai deciso ...).

    il programma ti dice che quel file non esiste

    nulla di complicato.

    Tu ha effettivamente su disco un file con nome $TBOO?
    Prova a passare il path completo.

    Ora, non leggendo nella mente, e non essendo chiaro nemmeno su che s.o. stai lavorando, posso fare delle ipotesi:

    sei su windows e stai utilizzando un qualche script pensato per linux. Tale script contiene la variabile TBOO usata in un ciclo e tale variabile, scritta come $TBOO viene passata come argomento all'applicazione in Java.

    Solo che in Linux, la variabile viene risolta nel path di un file, mentre in Windows, che ha regole diverse, viene passata cosi' come e'.
  • Re: JavaCC problema java.io.FileNotFoundException

    migliorabile ha scritto:


    E' evidente, allora, che non e' chiaro che cosa vorresti ottenere:

    tu hai fornito come argomento il nome di un file (nota: nome abbastanza strano visto che contiene il carattere $ e non ha estensione, ma se cosi' hai deciso ...).

    il programma ti dice che quel file non esiste

    nulla di complicato.

    Tu ha effettivamente su disco un file con nome $TBOO?
    Prova a passare il path completo.

    Ora, non leggendo nella mente, e non essendo chiaro nemmeno su che s.o. stai lavorando, posso fare delle ipotesi:

    sei su windows e stai utilizzando un qualche script pensato per linux. Tale script contiene la variabile TBOO usata in un ciclo e tale variabile, scritta come $TBOO viene passata come argomento all'applicazione in Java.

    Solo che in Linux, la variabile viene risolta nel path di un file, mentre in Windows, che ha regole diverse, viene passata cosi' come e'.
    Chiedo Venia ho risolto ieri un mio amico mi ha spiegato tutto.....il problema e che non sapevo che in args si deve specificare il nome di un file (nel mio caso ho creato un file txt) e che poi nel file si scrivano i lessemi che devono essere analizzati dal tokenmanager, io pensavo che in args si mettessero direttamente le stringhe che si vogliono controllare. Comunque grazie mille.
Devi accedere o registrarti per scrivere nel forum
4 risposte