Class Parser
java.lang.Object
it.unimi.di.prog2.temisvolti.algebretta.Parser
Classe contenitore di metodi statici per il parsing dell'input.
-
Field Summary
Fields -
Constructor Summary
Constructors -
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 corridpondente ad una operazione binaria nelle sue parti.static char
tipoMatrice
(String operando) Restituisce il tipo di matrice contenuta nell'opearndo.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
-
MATRICE
-
RIGA
-
VETTORE
-
SCALARE
-
-
Constructor Details
-
Parser
private Parser()
-
-
Method Details
-
partiOperazione
Divide una linea corridpondente 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'opertore (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'opearndo.- 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, diagnoali 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.
-