GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da...

26
GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti S E WIMMING VENT Realizzato da Isabella Gottardi

Transcript of GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da...

Page 1: GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da Isabella Gottardi.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Demo

Vai alla demo