GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da...
-
Upload
carlotta-mosca -
Category
Documents
-
view
217 -
download
2
Transcript of GENERATOR Linguaggi e Modelli Computazionali M Prof. Enrico Denti WIMMING VENT Realizzato da...
GENERATORLinguaggi e Modelli Computazionali MProf. Enrico Denti
SEWIMMING
VENT
Realizzato daIsabella 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
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
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…
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.
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.
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…
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
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
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
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
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" }
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
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]
} }
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
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) !!!
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
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
+ ...
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
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
Parser
Token
Lexer
Funzionamento del sistema (1/2)
AST
Sintax Error
Funzionamento del sistema (2/2)
AST
HTML Visitor
Tree Viisitor
Strumenti utilizzati
Linguaggio di programmazi
one
C#Strumento
per generazione automatica di Lexer e
Parser
IDE di sviluppo
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
Struttura dell’interfaccia grafica
Console
Editor
Comandi
Editor help
Apre un Wizard per la costruzione
semplificata di un’evento
Demo
Vai alla demo