Class Parser
java.lang.Object
it.unimi.di.prog2.temisvolti.algebretta.Parser
Classe contenitore di metodi statici per il parsing dell'input.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Pattern
Pattern per il riconoscimento di una matrice.private static final Pattern
Pattern per il riconoscimento di un'operazione binaria.private static final Pattern
Pattern per il riconoscimento di una riga di matrice.private static final Pattern
Pattern per il riconoscimento di uno scalare.private static final Pattern
Pattern per il riconoscimento di un vettore. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Parser()
Costruttore privato per impedire l'istanziazione di questa classe. -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Decide se un operando è una matrice.static boolean
Decide se un operando è uno scalare.static boolean
Decide se un operando è un vettore.static String[]
partiOperazione
(String linea) Divide una linea corrispondente ad una operazione binaria nelle sue parti.static char
tipoMatrice
(String operando) Restituisce il tipo di matrice contenuta nell'operando.static int
valoreScalare
(String operando) Restituisce un intero corrispondente allo scalare contenuto nell'operando.static int[][]
valoriMatrice
(String operando) Restituisce un array bidimensionale di interi contenente i valori nella matrice contenuta nell'operando.static int[]
valoriVettore
(String operando) Restituisce un array di interi contenente i valori nel vettore contenuto nell'operando.
-
Field Details
-
OPERAZIONE
Pattern per il riconoscimento di un'operazione binaria. -
MATRICE
Pattern per il riconoscimento di una matrice. -
RIGA
Pattern per il riconoscimento di una riga di matrice. -
VETTORE
Pattern per il riconoscimento di un vettore. -
SCALARE
Pattern per il riconoscimento di uno scalare.
-
-
Constructor Details
-
Parser
private Parser()Costruttore privato per impedire l'istanziazione di questa classe.
-
-
Method Details
-
partiOperazione
Divide una linea corrispondente ad una operazione binaria nelle sue parti.- Parameters:
linea
- la linea da considerare.- Returns:
- un array di tre
String
la prima ed ultima delle quali sono i due operandi e quella di posto 1 è l'operatore (ossia'+''
o'*'
). - Throws:
IllegalArgumentException
- se la linea non ha la formaoperando (+|*) operando
.
-
èMatrice
Decide se un operando è una matrice.- Parameters:
operando
- la stringa contenente l'operando da analizzare.- Returns:
- true sse l'operando è una matrice.
-
tipoMatrice
Restituisce il tipo di matrice contenuta nell'operando.- Parameters:
operando
- la stringa contenente la matrice da analizzare.- Returns:
- un carattere che indica il tipo di matrice,
' '
per matrici generiche, oppure'Z'
,'D'
o'I'
rispettivamente per le matrici nulla, diagonali o identità. - Throws:
IllegalArgumentException
- se l'operando non corrisponde ad una matrice.
-
valoriMatrice
Restituisce un array bidimensionale di interi contenente i valori nella matrice contenuta nell'operando.Si osservi che il formato della matrice (righe racchiuse tra quadre e separate da punti e virgola con ciascuna riga data da interi separati da virgola) non garantisce che l'array bidimensionale sia "quadrato" (ossia abbia ciascuna riga della stessa dimensione del numero di righe). Ad esempio se il parametro è
[1; 2, 3]
, questo metodo restituirà l'arraynew int[][] {{1}, {2, 3}}
.- Parameters:
operando
- la stringa contenente la matrice da analizzare.- Returns:
- un array bidimensionale (non necessariamente quadrato) di interi contenente i valori della matrice.
- Throws:
IllegalArgumentException
- se l'operando non corrisponde ad una matrice.
-
èVettore
Decide se un operando è un vettore.- Parameters:
operando
- la stringa contenente l'operando da analizzare.- Returns:
- true sse l'operando è una vettore.
-
valoriVettore
Restituisce un array di interi contenente i valori nel vettore contenuto nell'operando.- Parameters:
operando
- la stringa contenente il vettore da analizzare.- Returns:
- un array bidimensionale di interi contenente i valori del vettore.
- Throws:
IllegalArgumentException
- se l'operando non corrisponde ad un vettore.
-
èScalare
Decide se un operando è uno scalare.- Parameters:
operando
- la stringa contenente l'operando da analizzare.- Returns:
- true sse la stringa è uno scalare.
-
valoreScalare
Restituisce un intero corrispondente allo scalare contenuto nell'operando.- Parameters:
operando
- la stringa contenente lo scalare da analizzare.- Returns:
- un intero corrispondente allo scalare.
- Throws:
IllegalArgumentException
- se l'operando non corrisponde ad uno scalare.
-