abstract class AbstractEvaluator[R] extends Evaluator[R]
A skeletal implementation of the Evaluator class to avoid duplication of common logic.
This class is applicable if, and only if, for each character it is unambiguous whether it is part of a word or special character. That is, every character can be either a special character, or part of a word, but not both. Furthermore, neither special characters not words can contain whitespace.
A 'special character' here is a standalone character that has a special meaning. Special characters cannot be part
of values or words. For example, +
would be a special character.
A 'word' here is a meaningful string of characters that do not contain any whitespace or special characters.
For example, the constant pi
is a word, as are functions such as sin
. Words cannot contain special characters
or they could be mistaken for two words - the word a+b
would be split into a
, +
, and b
.
- R
The type that the string input should be evaluated to
- Source
- AbstractEvaluator.scala
- Alphabetic
- By Inheritance
- AbstractEvaluator
- Evaluator
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new AbstractEvaluator()
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
evaluate(expression: String): R
Parses a string.
Parses a string.
First of all, this tokenizes the string using the abstract
tokenizer
method, which must be overridden by the user. This returns a Tokenizer which breaks the string down into a Seq of Tokens, representing the principle parts of the string.Then, this evaluates the provided array of tokens as the user defines, producing a result of type
R
. For more information on how this happens, see Token.- expression
The input string to parse
- returns
The result of parsing the input
- Definition Classes
- AbstractEvaluator → Evaluator
- Exceptions thrown
net.totietje.evaluator.EvaluationException
If there is a syntax error in the expression
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
This is the documentation for the Evaluator project (see GitHub).
The main package net.totietje.evaluator. The net.totietje.complex package contains an example usage of this package, which may also be useful.