ExpressionNode parseExpression(final String expression) throws ParseCancellationException {
final EquationGrammarParser parser = getParser(expression);
final EqContext eq = parser.eq();
final List<TerminalNode> equation1 = parseTree(eq);
final ExpressionopContext expressionop = parser.expressionop();
final List<TerminalNode> operatorTree = parseTree(expressionop);
final EqContext eq2 = parser.eq();
final List<TerminalNode> equation2 = parseTree(eq2);
return new ExpressionNode(getString(equation1), operatorTree.get(0), getString(equation2));
}