Progettino

L'obiettivo del progettino è implementare una piccola libreria per manipolare le espressioni regolari.

Il progettino è individuale e dovrà essere consegnato prima di sostenere la prova scritta.

Le espressioni regolari sono un modo comodo per denotare un insieme di stringhe possibilmente infinito.

In Java, un'espressione regolare sarà rappresentata da una class astratta RegExpr. Le sotto-class di questa class sono:

Per esempio,
  RegExpr e = new Choice(new Times(new Concat(new Char('a'), new Char('b'))),
                         new Concat(new Char('a'), new Char('c')));
crea un'espressione regolare e che denota l'insieme infinito composto di "", "ab", "ac", "abab", "ababab", ...

Aggiungere nella class RegExpr:

Adesso, ci interessiamo ai generatori di stringhe definiti dall'interface:
interface StringGenerator {
  String next();
  boolean hasMoreElement();
}   
Il metodo next permette di ottenere una stringa. Il metodo hasMoreElement permette di sapere se il generatore è vuoto. In tal caso, il metodo next restituisce l'oggetto null. Definire le class seguenti che implementano l'interface StringGenerator:

Il progetto dovrà essere corredato di un insieme di esempi che ne illustra il corretto funzionamento.

Lo studente dovrebbe seguire le convenzioni di codifica date durante il corso. Per verificare la conformità del progetto, si può usare l'archivio checkstyle.jar. Eseguendo

java -jar checkstyle.jar File.java
si genera un file report che indica la conformità del codice.
Laurent Théry
Last modified: Thu Feb 19 12:54:05 MET 2004