Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 Ma viene accettato un compilatore che necessita...
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 03/07/2003 : 17:11:13  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Viene accettato un compilatore che necessita i token separati da spazi? Per mancanza di tempo (e sopratutto per le risposte non ricevute da Ferilli) non riesco a trovare una soluzione per non far separare i token dagli spazi.. Qualcuno di voi ha qualche idea?


Grazie

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/

paioner
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 03/07/2003 : 20:58:25  Mostra Profilo  Visita l'Homepage di paioner Invia a paioner un Messaggio Privato  Rispondi Quotando
Credo ke il problema sia:
come faccio a riconoscere a:=10+b;
in: a := 10 + b ;
se sono tutti attaccati?

la risposta è:
inizio la scansione e trovo a, siccome è un carattere o è una keyword oppure in identif (in breve KEY o ID). Quindi continuo per leggere tutta la parola.
Poi trovo : allora capisco ke la parola è finita e setto lookahead a true perchè ho letto i : ma non li ho usati e restituisco la stringa "a" che devo decidere se è una key o un id.
a questo punto leggo i : e lo scanner dovrebbe procedere leggendo = e riconoscendo l'operatore := si ferma restituendo appunto :=
Poi lo scanner legge 1 e deve continuare a leggere tutti i numeri, cosi dopo aver letto lo 0 trova il +
Adesso si ferma, setta lookahead a true (per lostesso motivo di prima) e restituisce 10 dicendo che è un intero.
Poi legge e riconosce il + come operatore.
Poi legge b, trova ; e capisce che la stringa è finita e restituisce la parola b dovendo poi decidere se è key o id.
infine legge e riconosce ;


come vedi non sono necessari gli spazi tra i token, perchè se devo riconoscere un intero, quando trovo qualcosa ke non è una cifra mi posso fermare. Se sto riconoscendo un id, quando trovo un operatore, o generalmente qualcosa che non fa parte della struttura di un id mi fermo, mentre + - * e altri operatori sono riconosciuti immediatamente.

Spero di essere stato chiaro.
Ciao
Torna all'inizio della Pagina

paioner
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 03/07/2003 : 21:00:57  Mostra Profilo  Visita l'Homepage di paioner Invia a paioner un Messaggio Privato  Rispondi Quotando
Comunque Ferilli ha detto che possiamo prendere qualsiasi decisione purchè sia motivata e DOCUMENTATA!
Quindi tocca a te decidere!
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 04/07/2003 : 00:47:07  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Non è un problema legato alla risoluzione degli spazi è che Ferilli ci ha dato delle dispense sulle quali la funzione Gettoken mette in un vettore di caratteri tutti i token separati da spazio. Se faccio carattereper carattere, non ho problemi, ma oramai ho deciso di seguire il filo delle dispense e non posso buttare nel cesso tutto quello che ho fatto fino ad ora. Del resto il compilatore funziona perfettamente, con l'unico problema che accetta solo token separati da spazio.. Non vorrei che per questa piccola cazzata non mi accetti il progetto. Io documento tutto, è chiaro...

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

Dreamhell
Utente Cool

kurt

Città: o__O Bari O__o


Inserito il - 04/07/2003 : 02:07:49  Mostra Profilo  Visita l'Homepage di Dreamhell  Clicca per vedere l'indirizzo MSN di Dreamhell Invia a Dreamhell un Messaggio Privato  Rispondi Quotando
mi sà che non te lo accetta!
Paioneer ha ragione a dire che la scansione dovrebbe essere fatta carattere per carattere settando la variabile lookahead.
forse ti può servire questa funzione che si ferma non solo quando trova gli spazi, ma anche la punteggiatura in generale:


void leggi_stringa(FILE *f, char s[MAX])
{
int i=0;
char caract;

caract=fgetc(f);
while(!isspace(caract) && i <= 255 && caract != EOF){
s[i] = caract;
i++;
caract = fgetc(f);
}

s[i] = '\0';
}


Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 04/07/2003 : 12:24:35  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
Ho mandato una email a ferilli.. speriamo risponda.. Io potrei pure implementarla, mi SONO ROTTO LA BALLE di sto cazz di compilatore.. Voglio solo documentare.. E poi dai, è una cavolata il fatto degli spazi, manco fosse quello il fulcro del compilatore -_- .

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina

Tano
Utente assiduo

snake


Regione: Puglia
Prov.: FG
Città: CERIGNOLA


Inserito il - 04/07/2003 : 12:35:34  Mostra Profilo  Visita l'Homepage di Tano  Invia a Tano un messaggio ICQ  Clicca per vedere l'indirizzo MSN di Tano Invia a Tano un Messaggio Privato  Rispondi Quotando
E poi scusa quella funzione che mi hai dato non si ferma quando trova un carattere diverso da "a..Z", si ferma solo quando trova uno spazio o quando i raggiunge 255 ..

E' praticamente la stessa funzione che ho implementato io.. UFF a me non importa se mi abbassa il voto, l'importante è che me lo accetti e mando a fare in culo sto esame..

"I Giorni e le Notti suonano in questi miei nervi d'arpa. Vivo di questa gioia malata d'universo e soffro per non saperla accendere nelle mie parole"

Ungaretti

Tutorial DirectX 9 in Italiano: http://wtano.wordpress.com/
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,24 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000