Newsgroup: it.comp.java
Titolo: PARSER

Ciao a tutti,
c'è qualcuno che ha scritto un parser in Java?
Ho alcune informazioni da chiedere!
Per me è molto importante!
Grazie!
puellula

 
Jack982

Ciao e Grazie per l'attenzione.
Io devo scrivere un parser in Java per Ruby!
Per il momento ho fatto questo: ho scritto la grammatica e l'ho data in
pasto a ANTLR (generatore di parser). ANTLR mi ha restituito dei files
che io ho aggiunto al mio progetto e ho scritto un main dove richiamo
questi files, e fino qui tutto ok. Il problema è che però il parser
deve dirmi se ciò che scrivo è esatto o meno... e come faccio? Adesso
il mio problema è andare avanti. Poi a questo parser devo aggiungere
un editor. Questo però me lo vedo dopo come ho finito con il parser.
Per qualsiasi informazione io sono qui.
Grazie mille per l'aiuto.
ciao
puellula

puel...@gmail.com
 ha scritto:

non so se hai già letto questa intro ma al seguente link ci sono alcune 
spiegazioni su come testare in runtime la correttezza del file letto
http://www.cs.usfca.edu/~parrt/course/652/lectures/antlr.html

Ciao Matatu,
intanto grazie per avermi risposto.
Si, quella pagina l'avevo già letta, diciamo che prima di scrivere qui
ho fatto abbastanza ricerche su Google, ma non ancora trovo niente che
possa aiutarmi, forse non sono riuscita ancora bene ad inquadrare il
mio problema :(
Ho letto da parecchie parti che un passo da fare ora è quello di
costruirsi un albero, ma, a parte che ho trovato delle difficoltà nel
variare la mia grammatica Ruby per costruirlo, non ho ben capito a cosa
mi possa servire se non per vederlo in output.
Gli esempi che trovo sulla rete per la costruzione dell'albero sono
molto semplici e non mi hanno ancora aiutato a capire bene come devo,
invece, modificare la mia grammatica.
Spero di aver spiegato chiaramente quello che ho in mente.
Grazie,
puellula

Io in passato - per un corso universitario e poi per la tesi - ho avuto
occasione di utilizzare Flex e BYaccJ per generare analizzatore
lessicale e sintattico di diversi tipi di grammatica... poi quello che
facevo era costruire (mediante il parser) un albero sintattico, che poi
elaboravo nel corso dell'applicazione...
Non conosco antlr ma immagino che in qualche modo i concetti in gioco
siano i medesimi... una volta "parsato" il file Ruby che cosa ne
dovresti fare ? Qual è l'output che ci si aspetta dal tuo programma ?
amicofragile

ciao,
quello che devo realizzare, anche io per un esame universitario, è un
Editor per Ruby con all'interno un parser (ovviamente tutto scritto in
Java).
Immagino, visto che il Professore da questo punto di vista ci ha
lasciato carta bianca, che l'output sarà semplimente "SI, il codice
inserito è sintatticamente corretto" o "NO, il codice inserito è
sintatticamente scorretto".
ciao e Grazie
puellula

puel...@gmail.com
 ha scritto:

se lanci l'applicazione e non vengono generate eccezioni vuol dire che 
il file Ruby soddisfa le regole sintattiche del linguaggio
"
Testing the lexer/parser
To actually use the resulting parser, in ExprParser.java, use a main() 
such as the following:
import antlr.*;
public class Main {
     public static void main(String[] args) throws Exception {
         ExprLexer lexer = new ExprLexer(System.in);
         ExprParser parser = new ExprParser(lexer);
         parser.expr();
     }
}
$ java Main
3+(4*5)
$
Or for bad input:
$ java Main
3++
line 1:3: unexpected token: +
$
or
$ java Main
3+(4
line 1:6: expecting RPAREN, found 'null'
$
"

grazie :)
io avevo già provato a fare qualcosa di simile.
Ho riprovato anche in questo momento, ma il risultato è sempre lo
stesso.
A questo punto penso che i problemi sono nella grammatica :(
Grazie Mille,
puellula