| Autore |
Discussione  |
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 15/06/2005 : 08:39:08
|
Citazione: Messaggio inserito da falco_85
se in automa non c'è nessuno stato finale il return alla fine della procedura scan non si mette oppure si mette return(current_state == NULL) ??
Forse non ho capito cosa intendi dire, però che io sappia gli automi devono avere uno stato finale altrimenti lo scanner andrebbe in loop...mi sembra chiaro... Poi non so...
 |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
falco_85
Utente giovane

Regione: Puglia
Prov.: Bari
|
|
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 15/06/2005 : 10:57:24
|
| Sicuramente c'è un errore di stampa. Probabilmente il professore l'avrà detto durante la prova di laboratorio. Non ha nessun senso un automa senza stato finale. Andrebbe in loop... |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 15/06/2005 : 20:08:23
|
ragazzi scusate, ho saputo che il prof. boccia all'esame se si verifica il fatto che, posto un'automa che riconosce stringhe ad esempio del tipo " /*ciao*/ "la stringa " /*ciaociao*/sss " viene considerata valida. Come faccio a fare in modo che l'analizzatore consideri come non validi e caratteri posti dopo la stringa valida?? penso di essermi spiegato bene e spero che qualcuno lo sappia fare.... ciao e grazie!
allego l'automa per una più facile correzione e relativo post...ciao!
Allegato: 23072002_.zip 1,26 KB |
 |
|
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 16/06/2005 : 09:10:37
|
Citazione: Messaggio inserito da gym83s
ragazzi scusate, ho saputo che il prof. boccia all'esame se si verifica il fatto che, posto un'automa che riconosce stringhe ad esempio del tipo " /*ciao*/ "la stringa " /*ciaociao*/sss " viene considerata valida. Come faccio a fare in modo che l'analizzatore consideri come non validi e caratteri posti dopo la stringa valida?? penso di essermi spiegato bene e spero che qualcuno lo sappia fare.... ciao e grazie!
allego l'automa per una più facile correzione e relativo post...ciao!
Allegato: 23072002_.zip 1,26 KB
Penso che questo automa possa funzionare. Ovviamente non considera i ritorni a capo (dovrebbe essere l'automa del commento c):
Allegato: Immagine.zip 7,7 KB |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 09:53:52
|
mrluglio forse non ho spiegato bene io il problema, io volevo sapere se c'è un comando o un ciclo particolare che mi faccia considerare come non valide le stringhe che hanno la parte valida dell'automa più altre lettere aggiunte; non penso che si debba in quei casi ridisegnare l'automa o altro...poi non so.... fammi sapere.CIAO
|
 |
|
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 16/06/2005 : 10:25:51
|
Citazione: Messaggio inserito da gym83s
mrluglio forse non ho spiegato bene io il problema, io volevo sapere se c'è un comando o un ciclo particolare che mi faccia considerare come non valide le stringhe che hanno la parte valida dell'automa più altre lettere aggiunte; non penso che si debba in quei casi ridisegnare l'automa o altro...poi non so.... fammi sapere.CIAO
Nessun comando! Per considerare come non valide le stringhe in più alla parte valida devi imporre il giusto stato finale. Punto. L'automa che ti ho disegnato fa esattamente questo. legge tutto fino a */. Ciò che viene dopo è errato. Se nn ti ho risposto...allora non ho capito cosa cerchi!
 |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 10:55:51
|
capisco ma allora, il vettore che ho postato precedentemente... quello 23072002, come va modificato?(parlo del codice). potresti dargli un'occhiata?? please...
e poi...un'altra cosa,come ci si comporta nei confronti dei blank? bisogna considerarli validi o no? ad esempio: /*cia o*/ è valido o no?? grazie
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 11:22:32
|
ho risolto mrluglio, basta mettere nello stato finale if (s[i] == '\0') current_state = F; cmq il problema dei blank non l'ho ancora capito...come mi devo comportare???
|
 |
|
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 16/06/2005 : 12:24:05
|
Citazione: Messaggio inserito da gym83s
ho risolto mrluglio, basta mettere nello stato finale if (s[i] == '\0') current_state = F; cmq il problema dei blank non l'ho ancora capito...come mi devo comportare???
allora: la cosa dello stato finale = '\0' non mi è troppo chiara... secondo me dovresti rifare il programma seguendo passo passo quell'automa... cmq se ti funziona...meglio così. per il blank: se quello è l'automa riconoscitore del commento allora lo spazio va trattato come un normale carattere... poi...dipende dalla traccia.... se nella traccia dice che i possibili caratteri sono alfanumerici allora gli spazi nn sono ammessi... se posti la traccia posso darti conferma. ciao. |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 14:03:02
|
ad esempio nella traccia dell' 11012005 l'automa va bene così com'è? te lo posto (la traccia è già postata sopra) così mi dici se va bene così oppure no
Allegato: 11012005_.rar 1,32 KB |
 |
|
|
mrluglio
Utente Sempre in Vacanza
  

Regione: Puglia
Prov.: Bari
Città: Terlizzi
|
Inserito il - 16/06/2005 : 15:29:42
|
| postami di nuovo la traccia....ce ne sono un pò sopra e nn so a quale ti riferisci. |
Spazio agli inventori : "Questa cosa non funziona...funzionerebbe però se usassimo il RETROMOUSE" by Anonimo
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
|
|
rel
Utente assiduo
  

|
Inserito il - 16/06/2005 : 17:27:46
|
ragazzi scusate, ho saputo che il prof. boccia all'esame se si verifica il fatto che, posto un'automa che riconosce stringhe ad esempio del tipo " /*ciao*/ "la stringa " /*ciaociao*/sss " viene considerata valida. Come faccio a fare in modo che l'analizzatore consideri come non validi e caratteri posti dopo la stringa valida?? penso di essermi spiegato bene e spero che qualcuno lo sappia fare.... ciao e grazie!
Ciao gym! Se leggevi un po' le discussioni del gruppo di linguaggi avresti già risolto.
ho risolto mrluglio, basta mettere nello stato finale if (s[i] == '\0') current_state = F;
Non è necessario mettere if (s[i] == '\0')! Semplicemente [ammettendo che lo stato q3 ad esempio sia quello finale] fai:
case q3: current_state = ERROR;
in modo che, qualsiasi simbolo viene letto oltre */, la stringa non è considerata valida! Saluti |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 20:34:20
|
mmm in effetti....hai ragione....grazie tante!!!
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 16/06/2005 : 20:41:24
|
ragà scusate anke se non è questo il posto giusto, nel grammar reader come faccio a poter controllare che il simbolo iniziale sia "S"?? scusate se lo chiedo qui ma non mi risponde nessuno nell'apposito spazio...siate magnanimi qui....

|
 |
|
|
rel
Utente assiduo
  

|
Inserito il - 16/06/2005 : 23:16:49
|
Qualcosa del genere:
int is_initsym(Grammar* g) { int i=0; if (g->productions[0].left.word[0] == 'S') return 1; else return 0; } |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 17/06/2005 : 11:26:12
|
come faccio a saperlo con precisione??? dove sta scritto???
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 17/06/2005 : 11:44:59
|
ok ok ho fatto.... thanks
sapete se per caso nel grammar reader, c'è la possibilità che esca oltre cercare il simbolo iniziale,stabilire se libera o dipendente da contesto e lineare destra, qualcosa riguardo alle produzioni monotone o trasformazioni di produzioni monotone in contestuali o operazioni di concatenazione unione ecc???
se nel caso qualcuno sa come si fanno??
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 17/06/2005 : 20:08:08
|
anche per quanto riguarda l'implementazione della funzione per stabilire se la grammatica è dipendente da contesto, se qualcuno le ha queste che ho elencato, le posti sul forum per favore... thanks
|
 |
|
Discussione  |
|