![Page 1: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/1.jpg)
GENERATORLinguaggi e Modelli Computazionali MProf. Enrico Denti
SEWIMMING
VENT
Realizzato daIsabella Gottardi
![Page 2: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/2.jpg)
Obiettivi del progetto
Si vuole progettare un sistema che permetta di generare eventi natatori.
Dovremo quindi:Realizzare un
linguaggio in grado di descrivere gli eventi natatori
• Ovvero realizzare una grammatica che ci permetta di definire univocamente quali sono le frasi che appartengono al linguaggio …
Definire un interprete per il
linguaggio
• … un sistema che accetti in ingresso una stringa di caratteri (programma), riconosca se la stringa è una frase del linguaggio (analisi sintattica) e se lo è esegua delle azioni altrimenti restituisca un errore di forma …
Ottenere un output grafico
![Page 3: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/3.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Organizzatore, luogo, data di inizio e di fine, data termine iscrizioni,
ecc
![Page 4: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/4.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Giudici di partenza, addetti ai concorrenti, alle false partenze e virate, ecc…
![Page 5: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/5.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Società dei cronometristi, tipo di cronometraggio, ecc.
![Page 6: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/6.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Speaker, medico, dirigente della società ospitante, ecc.
![Page 7: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/7.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Tutte le gare in programma.Ciascuna prevede nome,
data e ora, categoria atleti, ecc…
![Page 8: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/8.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Startlist degli atleti iscritti alle gare
![Page 9: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/9.jpg)
Struttura degli eventi
Ogni evento è costituito da Informazioni sull’evento stesso Giuria Cronometristi Altro personale Programma dell’evento Elenco di partenza degli atleti Note eventuali
Note
![Page 10: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/10.jpg)
Grammatica B.N.F
GrammarScope : <EVENT> <A_GR> Infocompetition Jurycronoother Programcomp Startlist Note <C_GR>
Scopo della Grammatica
INT : DIGIT+;FLOAT :DIGIT+ '.' DIGIT+;DATE :DIGIT DIGIT '/' DIGIT DIGIT '/' (DIGIT DIGIT | DIGIT DIGIT DIGIT DIGIT);HOUR : DIGIT DIGIT ':' DIGIT DIGIT;STRING : '"' ( ESC_SEQ | ~('\\'|'"') )* '“’;WS : ( ‘ ‘ | ‘\t’ | ‘\r‘ | ‘\n‘ ) {$channel=HIDDEN;};…
EVENT = 'event';INFOEVENT='infoevent';NAMEEVENT='nameevent';CATEGORY='cat';ORGANIZ='org';LOCATION='loc';TYPE='type'; …
TOKEN
![Page 11: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/11.jpg)
Grammatica B.N.F
GrammarScope : <EVENT>
<A_GR> Infocompetition Jurycronoother Programcomp Startlist Note <C_GR>
Informazioni dell’evento
<INFOEVENT><A_GR>nameeventcategoryorganizlocationtypestartendenddateregpoolbaselimittimereglanes <C_GR>
infoevent{nameevent :
"Memorial Elena Lago"cat : Agonistiorg : "Centro Nuoto
Tezze ASD" loc : "Tezze sul Brenta" type : "Evento ufficiale
organizzatoda Società
afferente al C.R.V." start : 06/11/2011end : 06/11/2011endreg : 04/11/2011poolbase : 25 mlimittime : "No" lanes : 6
}
PropagandaAgonistiMaster
![Page 12: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/12.jpg)
Grammatica B.N.F
GrammarScope : <EVENT>
<A_GR> Infocompetition Jurycronoother Programcomp Startlist Note <C_GR>
Giuria Cronometristi
<JURY><A_GR>
referee(coadjuctor)*depjudge(falsestartempl)*compempl<C_GR>
jury{referee : "Andrea Pozzato" coadjutor : "Sandra
Pavanello" depjudge : “Marco Tolomei" fsemployee : "Milena
Chiarello" competemployee: "Barbara
Tolomei" }
other{speaker: "Roberto
Magnagnini" doctor: "Leonardo Valenti" manager: "Antonio Baldetti"
}
<OTHER><A_GR>
speakdoctmang<C_GR>
<TIMING><A_GR>
cronotypecronoservcronosoc<C_GR>
timing{cronotype : "Manuale" cronoserv : "" cronosociety : "G.u.g
Veneto" }
![Page 13: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/13.jpg)
Grammatica B.N.F
GrammarScope : <EVENT>
<A_GR> Infocompetition Jurycronoother Programcomp Startlist Note <C_GR>
Programma dell’evento
<PROG><A_GR>
(<datecomp><A_GR>
(<A_Q>
hourcomp
categorycomp
speccompturncomp<C_Q>
)+<C_GR >)+<C_GR>
program{ date : 15/09/09 { [ hour : 12:00 category : Senior speciality : "50 rana" turn : heats ] [ hour : 12:15 category : Senior speciality : “100 stile" turn : heats ] }}
Esordienti A, Ragazzi, Juniores,
Master25, Master30,
ecc…
Serie, Semifinale,
Finale
![Page 14: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/14.jpg)
Grammatica B.N.F
GrammarScope : <EVENT>
<A_GR> Infocompetition Jurycronoother Programcomp Startlist Note <C_GR>
<STARTLIST><A_GR>
(<COMPNAME>
<A_GR>
(nameturn<A_GR>
(<A_Q>
LANE
acodeanameasurnameasocabirthatimeregatimeres
<C_Q>)+
<C_GR>)+<C_GR>)+
<C_GR>
StartList
Nel formato“AAA-000000”
startlist{ compname : "50 rana" { heats 1 {
[lane : 1acode :"VEN-000000"aname : “Isabella"asurname :“Gottardi"asociety: “Adria Nuoto"abirthday : 23/06/1987atimereg: 00:00:30:80atimeres: 00:00:00:00]
} }
![Page 15: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/15.jpg)
Considerazioni sulla grammatica (1/2)
Secondo la classificazione di Chomsky le grammatiche di tipo 2 (context free) presentano le produzioni vincolate alla forma:
… ma non sono presenti produzioni con self-embedding
… quindi il linguaggio è regolare
A → α con α є (VT U VN)* ed A є VN
A → α1 A α2con A є VN e α1, α2 є (VN U VT)+
TIPO 2
TIPO 3
![Page 16: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/16.jpg)
Considerazioni sulla grammatica (2/2)
La grammatica è LL(1)?
Per determinare se una data Grammatica è LL(1) condizione necessaria e sufficiente è che ciascuna produzione che presenta alternative nella sua parte destra abbia insiemi di Director Symbols (Starter Symbols) disgiunti e la stringa vuota (ε) sia assente!
Nella nostra grammatica le produzioni con alternative nella parte destra hanno gli insieme di Starter Symbols disgiunti e la stringa vuota (ε) è assente quindi…
… la grammatica è LL(1) !!!
![Page 17: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/17.jpg)
Diagramma delle classi - Package
pkg Domain Model
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
GUI
+ EditorForm
+ EditorForm
+ EventWizard
+ EventWizard
+ TreeViewASTForm
+ TreeViewASTForm
pkg Domain Model
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
AST
+ ABirthdayNode
+ ACode
+ ANameNode
+ ...
pkg Domain ModelEA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
Visitor
+ HTMLVisitor
+ TreeBuilderVisitor
+ IEventVisitor
pkg Domain Model
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
Grammar
+ SwimmingCompetitionGrammarLexer
+ SwimmingCompetitionGrammarParser
Contiene tutte le classi Lexer e Parser generate
automaticamente da Antlr
Contiene tutte le classi necessarie per la
costruzione dell’interfaccia grafica
Contiene tutte le classi che estendono Exceptions che
gestiscono le eccezioni sintattiche e semantiche
pkg Domain Model
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
Exceptions
+ ACodeException
+ ATimeException
+ ErrorNodeException
+ LaneOutOfBoundException
+ TimeOutOfBoundsException
![Page 18: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/18.jpg)
Antlr 3.0 non implementa il pattern Visitor per la valutazione dell’AST, è quindi necessario estendere la classe CommonTree e creare tutti i nodi necessari… (qui ne sono riportati solo alcuni)
Diagramma delle classi
class ASTEA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
CommonTree
ASTNode
+ Accept(SwimmingCompetition.Visitors.IEventVisitor) :void+ ASTNode(IToken)
Ev entNode
+ Accept(Visitors.IEventVisitor) :void+ EventNode(IToken)
FalseStartEmployeeNode
+ Accept(Visitors.IEventVisitor) :void+ FalseStartEmployeeNode(IToken)
HourNode
+ Accept(Visitors.IEventVisitor) :void+ HourNode(IToken)
InfoEv entNode
+ Accept(Visitors.IEventVisitor) :void+ InfoEventNode(IToken)
JuryNode
+ Accept(Visitors.IEventVisitor) :void+ JuryNode(IToken)
... ...
pkg Domain Model
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
AST
+ ABirthdayNode
+ ACode
+ ANameNode
+ ...
![Page 19: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/19.jpg)
Diagramma delle classi -Visitor pkg Domain ModelEA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version
Visitor
+ HTMLVisitor
+ TreeBuilderVisitor
+ IEventVisitor
Sono stati implementati due visitor, avendo così la possibilità di avere due viste differenti HTML Visitor, produce una
pagina HTML dell’evento natatorio
Tree Visitor, produce a video un albero della frase analizzata
![Page 20: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/20.jpg)
Errori lessicali e sintattici vengono rilevati direttamente da Lexer e da Parser tramite l’eccezione ErrorNodeException qualora venga inserito un nodo errore nell’AST, sono visualizzate a video all’utente mediante un messaggio nella console.
Errori semantici gestiti: pkg Domain Model
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
EA 9.1 Unregistered Trial Version EA 9.1 Unregistered Trial Version
Exceptions
+ ACodeException
+ ATimeException
+ ErrorNodeException
+ LaneOutOfBoundException
+ TimeOutOfBoundsException
Verifica semantica
Orario immesso sbagliato
Numero di corsia superiore
al numero di corsie
dell’impianto
Codice atleta errato, previsto
nel formato “VEN-000000”
Tempo di iscrizione e tempo risultato dell’atleta sbagliati
![Page 21: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/21.jpg)
Parser
Token
Lexer
Funzionamento del sistema (1/2)
AST
Sintax Error
![Page 22: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/22.jpg)
Funzionamento del sistema (2/2)
AST
HTML Visitor
Tree Viisitor
![Page 23: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/23.jpg)
Strumenti utilizzati
Linguaggio di programmazi
one
C#Strumento
per generazione automatica di Lexer e
Parser
IDE di sviluppo
![Page 24: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/24.jpg)
Limiti e sviluppi futuri
Per il momento è possibile creare eventi solo per categorie italiane Si può prevedere di leggere esternamente
oppure far introdurre all’avvio dall’utente le categorie che devono essere considerate valide
Creare nuovi output Estendere il sistema introducendo la
possibilità di creare file pdf del solo programma o della sola startlist per favorire la distribuzione ai tecnici
![Page 25: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/25.jpg)
Struttura dell’interfaccia grafica
Console
Editor
Comandi
Editor help
Apre un Wizard per la costruzione
semplificata di un’evento
![Page 26: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi](https://reader038.vdocuments.pub/reader038/viewer/2022103016/5542eb5c497959361e8cab04/html5/thumbnails/26.jpg)
Demo
Vai alla demo