pascalinterpreter
Class BinaryOperator
java.lang.Object
pascalinterpreter.Operator
pascalinterpreter.BinaryOperator
- Direct Known Subclasses:
- Arithmetic, Assign, Relational
- public abstract class BinaryOperator
- extends Operator
Method Summary |
protected Variable[] |
execInitialize(Variable operandL,
Variable operandR)
Metoda pomocnicza - sprawdza typy, oraz wykonuje konwersję do wspólnego typu dla obu operandów. |
abstract void |
execute(Variable operandL,
Variable operandR)
|
boolean |
isPossible(DataType type1,
DataType type2)
Sprawdza, czy operacja jest możliwa z użyciem tego typu operandów. |
protected Variable[] |
makeConversion(Variable operand0,
Variable operand1)
Metoda wykonuje, jeżeli jest możliwa, konwersje operandów do wspólnego typu. |
protected double[] |
parseDouble(Variable[] operands)
Wykonuje, jeżeli to możliwe, parsowanie wartości operandów (które są reprezentowane przez typ String) do liczb typu double. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BinaryOperator
public BinaryOperator()
execute
public abstract void execute(Variable operandL,
Variable operandR)
throws RuntimeException,
InternalException
- Throws:
RuntimeException
InternalException
isPossible
public boolean isPossible(DataType type1,
DataType type2)
- Sprawdza, czy operacja jest możliwa z użyciem tego typu operandów.
- Parameters:
type1
- - typ operandu L.type2
- - typ operandu R.
- Returns:
- True, jeżeli operacja jest możliwa. W przeciwnym wypadku false.
makeConversion
protected Variable[] makeConversion(Variable operand0,
Variable operand1)
throws InternalException,
RuntimeException
- Metoda wykonuje, jeżeli jest możliwa, konwersje operandów do wspólnego typu.
- Parameters:
operand0
- - operand pierwszy.operand1
- - operand drugi.
- Returns:
- Zwraca dwuelementową tablicę z dwoma operandami po konwersji do wspólnego typu.
- Throws:
InternalException
- - Wyjątek generowany, jeżeli konwersja nie mogła zostać wykonana.
RuntimeException
parseDouble
protected double[] parseDouble(Variable[] operands)
throws InternalException
- Wykonuje, jeżeli to możliwe, parsowanie wartości operandów (które są reprezentowane przez typ String) do liczb typu double.
- Parameters:
operands
- - tablica dwuelementowa, zawierająca operandy.
- Returns:
- Zwraca tablicę dwuelementową liczb typu double z wartościami odpowiadającymi wartościom przekazanych do metody operanndów.
- Throws:
InternalException
- - Wyjątek generowany, gdy parsowanie nie jest możliwe (niepoprawny format danych - niedający się przekształcić do liczb typu double)
execInitialize
protected Variable[] execInitialize(Variable operandL,
Variable operandR)
throws InternalException,
RuntimeException
- Metoda pomocnicza - sprawdza typy, oraz wykonuje konwersję do wspólnego typu dla obu operandów.
- Parameters:
operandL
- - operand lewy.operandR
- - operand prawy.
- Returns:
- Tablica dwuelementowa, zawierająca operandy po konwersji.
- Throws:
InternalException
- Wyjątek generowany, jeżeli operacja nie może zostać wykonana.
RuntimeException