it.unibo.cs.labp.progetto2001.spec
Interface LanguageFactory


public interface LanguageFactory

Fornisce l'intefaccia per creare tutti gli oggetti che rappresentano le entità del linguaggio.

Ogni gruppo è tenuto a scrivere una classe chiamata ALanguageFactory che implementi questa interfaccia.

Version:
1.0
Author:
Riccardo Solmi
See Also:
Statement, Expression

Method Summary
 Expression createAddition(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione somma.
 Expression createAnd(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione and.
 Statement createAssignment(Expression var, Expression exp)
          Costruisce un oggetto che rappresenta una istruzione di assegnamento.
 Statement createBlock(Statement[] stm)
          Costruisce un oggetto che rappresenta una sequenza di istruzioni.
 Expression createDivision(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione divisione.
 Expression createEquals(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione uguale a.
 Expression createGreaterThan(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione maggiore di.
 Statement createIf(Expression exp, Statement stm)
          Costruisce un oggetto che rappresenta una istruzione if.
 Statement createIf(Expression exp, Statement thenStm, Statement elseStm)
          Costruisce un oggetto che rappresenta una istruzione if.
 Expression createLessThan(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione minore di.
 Expression createLiteral(boolean val)
          Costruisce un oggetto che rappresenta una costante booleana.
 Expression createLiteral(int val)
          Costruisce un oggetto che rappresenta una costante intera.
 Expression createMultiplication(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione moltiplicazione.
 Expression createNot(Expression exp)
          Costruisce un oggetto che rappresenta una espressione not.
 Expression createOr(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione or.
 Expression createSubtraction(Expression exp1, Expression exp2)
          Costruisce un oggetto che rappresenta una espressione sottrazione.
 Expression createVariable(java.lang.String name)
          Costruisce un oggetto che rappresenta una variabile.
 Statement createWhile(Expression exp, Statement stm)
          Costruisce un oggetto che rappresenta una istruzione while.
 

Method Detail

createWhile

public Statement createWhile(Expression exp,
                             Statement stm)
Costruisce un oggetto che rappresenta una istruzione while.

L'istruzione while si comporta come l'analoga Java.
Finché l'espressione è vera ripete l'esecuzione dell'istruzione.

L'esecuzione di una istruzione while che contiene una espressione non booleana deve provocare una eccezione di tipo IllegalArgumentException.

Parameters:
exp - Espressione da valutare.
stm - Istruzione da ripetere.
Returns:
Un oggetto che rappresenta una istruzione while.

createIf

public Statement createIf(Expression exp,
                          Statement stm)
Costruisce un oggetto che rappresenta una istruzione if.

L'istruzione if si comporta come l'analoga Java.
Se l'espressione è vera viene eseguita l'istruzione.

L'esecuzione di una istruzione if che contiene una espressione non booleana deve provocare una eccezione di tipo IllegalArgumentException.

Parameters:
exp - Espressione da valutare.
stm - Istruzione da eseguire se exp è vera.
Returns:
Un oggetto che rappresenta una istruzione if.

createIf

public Statement createIf(Expression exp,
                          Statement thenStm,
                          Statement elseStm)
Costruisce un oggetto che rappresenta una istruzione if.

L'istruzione if si comporta come l'analoga Java.
Se l'espressione è vera viene eseguito il ramo then altrimenti quello else.

L'esecuzione di una istruzione if che contiene una espressione non booleana deve provocare una eccezione di tipo IllegalArgumentException.

Parameters:
exp - Espressione da valutare.
thenStm - Istruzione da eseguire se exp è vera.
elseStm - Istruzione da eseguire se exp è falsa.
Returns:
Un oggetto che rappresenta una istruzione if.

createAssignment

public Statement createAssignment(Expression var,
                                  Expression exp)
Costruisce un oggetto che rappresenta una istruzione di assegnamento.

L'istruzione di assegnamento si comporta come l'analoga Java.
L'espressione viene valutata e il suo valore assegnato alla variabile indicata.

L'esecuzione di una istruzione di assegnamento su una var che non rappresenta una variabile deve provocare una eccezione di tipo IllegalArgumentException.

Parameters:
var - Variabile da modificare.
exp - Espressione da valutare.
Returns:
Un oggetto che rappresenta una istruzione di assegnamento.
See Also:
createVariable(String)

createBlock

public Statement createBlock(Statement[] stm)
Costruisce un oggetto che rappresenta una sequenza di istruzioni.

L'istruzione blocco si comporta come l'analoga Java.
Vengono eseguite in sequenza e nell'ordine passato tutte le istruzioni.

Parameters:
stm - Array di istruzioni.
Returns:
Un oggetto che rappresenta una sequenza di istruzioni.

createLiteral

public Expression createLiteral(boolean val)
Costruisce un oggetto che rappresenta una costante booleana.

Parameters:
val - Il valore della costante booleana.
Returns:
Un oggetto che rappresenta una costante booleana.

createLiteral

public Expression createLiteral(int val)
Costruisce un oggetto che rappresenta una costante intera.

Parameters:
val - Il valore della costante intera.
Returns:
Un oggetto che rappresenta una costante intera.

createVariable

public Expression createVariable(java.lang.String name)
Costruisce un oggetto che rappresenta una variabile.

Una variabile non ha tipo e può contenere un valore costante.
Ad una variabile può essere assegnato un valore usando una istruzione di assegnamento.

La valutazione di una variabile non inizializzata deve provocare una eccezione di tipo IllegalStateException.

Parameters:
name - Il nome della variabile.
Returns:
Un oggetto che rappresenta una variabile.
See Also:
createAssignment(Expression, Expression)

createAddition

public Expression createAddition(Expression exp1,
                                 Expression exp2)
Costruisce un oggetto che rappresenta una espressione somma.

La valutazione di una espressione somma su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione somma è di tipo intero.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione somma.

createSubtraction

public Expression createSubtraction(Expression exp1,
                                    Expression exp2)
Costruisce un oggetto che rappresenta una espressione sottrazione.

La valutazione di una espressione sottrazione su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione sottrazione è di tipo intero.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione sottrazione.

createMultiplication

public Expression createMultiplication(Expression exp1,
                                       Expression exp2)
Costruisce un oggetto che rappresenta una espressione moltiplicazione.

La valutazione di una espressione moltiplicazione su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione moltiplicazione è di tipo intero.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione moltiplicazione.

createDivision

public Expression createDivision(Expression exp1,
                                 Expression exp2)
Costruisce un oggetto che rappresenta una espressione divisione.

La valutazione di una espressione divisione su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione divisione è di tipo intero.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione divisione.

createAnd

public Expression createAnd(Expression exp1,
                            Expression exp2)
Costruisce un oggetto che rappresenta una espressione and.

La valutazione di una espressione and su operandi che non siano entrambi booleani deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione and è di tipo booleano.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione and.

createOr

public Expression createOr(Expression exp1,
                           Expression exp2)
Costruisce un oggetto che rappresenta una espressione or.

La valutazione di una espressione or su operandi che non siano entrambi booleani deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione or è di tipo booleano.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione or.

createNot

public Expression createNot(Expression exp)
Costruisce un oggetto che rappresenta una espressione not.

La valutazione di una espressione not su un operando che non sia booleano deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione not è di tipo booleano.

Parameters:
exp - Operando.
Returns:
Un oggetto che rappresenta una espressione not.

createEquals

public Expression createEquals(Expression exp1,
                               Expression exp2)
Costruisce un oggetto che rappresenta una espressione uguale a.

La valutazione di una espressione uguale a su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione uguale a è di tipo booleano.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione uguale a.

createLessThan

public Expression createLessThan(Expression exp1,
                                 Expression exp2)
Costruisce un oggetto che rappresenta una espressione minore di.

La valutazione di una espressione minore di su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione minore di è di tipo booleano.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione minore di.

createGreaterThan

public Expression createGreaterThan(Expression exp1,
                                    Expression exp2)
Costruisce un oggetto che rappresenta una espressione maggiore di.

La valutazione di una espressione maggiore di su operandi che non siano entrambi interi deve provocare una eccezione di tipo IllegalArgumentException.

Il risultato della valutazione di una espressione maggiore di è di tipo booleano.

Parameters:
exp1 - Primo operando.
exp2 - Secondo operando.
Returns:
Un oggetto che rappresenta una espressione maggiore di.


Copyright © 2001 Riccardo Solmi. All Rights Reserved.