java.lang.Object
it.unimi.di.prog2.temisvolti.algebretta.Parser

public class Parser extends Object
Classe contenitore di metodi statici per il parsing dell'input.
  • Field Details

    • OPERAZIONE

      private static final Pattern OPERAZIONE
    • MATRICE

      private static final Pattern MATRICE
    • RIGA

      private static final Pattern RIGA
    • VETTORE

      private static final Pattern VETTORE
    • SCALARE

      private static final Pattern SCALARE
  • Constructor Details

    • Parser

      private Parser()
  • Method Details

    • partiOperazione

      public static String[] partiOperazione(String linea)
      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 forma operando (+|*) operando.
    • èMatrice

      public static boolean èMatrice(String operando)
      Decide se un operando è una matrice.
      Parameters:
      operando - la stringa contenente l'operando da analizzare.
      Returns:
      true sse l'operando è una matrice.
    • tipoMatrice

      public static char tipoMatrice(String operando)
      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

      public static int[][] valoriMatrice(String operando)
      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'array new 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

      public static boolean èVettore(String operando)
      Decide se un operando è un vettore.
      Parameters:
      operando - la stringa contenente l'operando da analizzare.
      Returns:
      true sse l'operando è una vettore.
    • valoriVettore

      public static int[] valoriVettore(String operando)
      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

      public static boolean èScalare(String operando)
      Decide se un operando è uno scalare.
      Parameters:
      operando - la stringa contenente l'operando da analizzare.
      Returns:
      true sse la stringa è uno scalare.
    • valoreScalare

      public static int valoreScalare(String operando)
      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.