Class Parser

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 Summary

    Fields
    Modifier and Type
    Field
    Description
    private 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

    Constructors
    Modifier
    Constructor
    Description
    private
    Costruttore privato per impedire l'istanziazione di questa classe.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    èMatrice(String operando)
    Decide se un operando è una matrice.
    static boolean
    èScalare(String operando)
    Decide se un operando è uno scalare.
    static boolean
    èVettore(String operando)
    Decide se un operando è un vettore.
    static String[]
    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
    Restituisce un intero corrispondente allo scalare contenuto nell'operando.
    static int[][]
    Restituisce un array bidimensionale di interi contenente i valori nella matrice contenuta nell'operando.
    static int[]
    Restituisce un array di interi contenente i valori nel vettore contenuto nell'operando.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • OPERAZIONE

      private static final Pattern OPERAZIONE
      Pattern per il riconoscimento di un'operazione binaria.
    • MATRICE

      private static final Pattern MATRICE
      Pattern per il riconoscimento di una matrice.
    • RIGA

      private static final Pattern RIGA
      Pattern per il riconoscimento di una riga di matrice.
    • VETTORE

      private static final Pattern VETTORE
      Pattern per il riconoscimento di un vettore.
    • SCALARE

      private static final Pattern 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

      public static String[] partiOperazione(String linea)
      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 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'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

      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.