com.ssv.test.airbase.contest
Class Expression

java.lang.Object
  extended by com.ssv.utils.tree.Tree<Leaf>
      extended by com.ssv.utils.tree.BinaryTree<Expression>
          extended by com.ssv.test.airbase.contest.Expression
All Implemented Interfaces:
com.ssv.utils.CompoundName<com.ssv.utils.tree.Tree<Expression>>, java.io.Serializable
Direct Known Subclasses:
AssignableVariable, ExpressionConstant, ExpressionFunction, ExpressionOperation

public abstract class Expression
extends com.ssv.utils.tree.BinaryTree<Expression>

Данный класс представляет абстрактный узел дерева разбора арифметического выражения.

Author:
Sergey.Siryk
See Also:
com.ssv.test.airbase.contest.expressions, Serialized Form

Field Summary
 
Fields inherited from interface com.ssv.utils.CompoundName
DOT, SLASH
 
Constructor Summary
Expression(Expression left, Expression right, Parser.ParserContext ctx)
           
 
Method Summary
 Parser.ParserContext ctx()
          Возвращает ссылку на контекст исходной программы.
abstract  double evaluate()
          Пересчитывает данный узел, и возвращает результат.
 
Methods inherited from class com.ssv.utils.tree.BinaryTree
getLeft, getNode, getRight, infix, infixInverted, main, print, setLeft, setRight, size
 
Methods inherited from class com.ssv.utils.tree.Tree
add, format, format, format, getLastToken, getParent, getPrefix, getToken, isTerminal, iterator, numTokens, postfix, postfix, prefix, prefix, printPostfix, printPrefix, remove, toArray
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Expression

public Expression(Expression left,
                  Expression right,
                  Parser.ParserContext ctx)
Method Detail

evaluate

public abstract double evaluate()
                         throws ParserException
Пересчитывает данный узел, и возвращает результат.

Throws:
ParserException

ctx

public Parser.ParserContext ctx()
Возвращает ссылку на контекст исходной программы. Если будут какие-нибудь проблемы - все равно, на этапе "компиляции" или при выполнении - мы покажем пользователю, где ошибка.

Returns:
контекст исполнения