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. |
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.