mirror of
https://github.com/DanilaFe/abacus
synced 2025-05-14 19:22:38 -07:00
58 lines
1.3 KiB
Java
58 lines
1.3 KiB
Java
package org.nwapw.abacus.function;
|
|
|
|
/**
|
|
* A class that represents a single infix operator.
|
|
*/
|
|
public abstract class Operator {
|
|
|
|
/**
|
|
* The associativity of the operator.
|
|
*/
|
|
private OperatorAssociativity associativity;
|
|
/**
|
|
* The precedence of the operator.
|
|
*/
|
|
private int precedence;
|
|
/**
|
|
* The function that is called by this operator.
|
|
*/
|
|
private Function function;
|
|
|
|
/**
|
|
* Creates a new operator with the given parameters.
|
|
* @param associativity the associativity of the operator.
|
|
* @param precedence the precedence of the operator.
|
|
* @param function the function that the operator calls.
|
|
*/
|
|
public Operator(OperatorAssociativity associativity, int precedence, Function function){
|
|
this.associativity = associativity;
|
|
this.precedence = precedence;
|
|
this.function = function;
|
|
}
|
|
|
|
/**
|
|
* Gets the operator's associativity.
|
|
* @return the associativity.
|
|
*/
|
|
public OperatorAssociativity getAssociativity() {
|
|
return associativity;
|
|
}
|
|
|
|
/**
|
|
* Gets the operator's precedence.
|
|
* @return the precedence.
|
|
*/
|
|
public int getPrecedence() {
|
|
return precedence;
|
|
}
|
|
|
|
/**
|
|
* Gets the operator's function.
|
|
* @return the function.
|
|
*/
|
|
public Function getFunction() {
|
|
return function;
|
|
}
|
|
|
|
}
|