private Node sumExpression() {
		// term ((PLUS^|MINUS^) term)*
		Node termExpression = term();
		while (lookAhead(1) == TokenType.PLUS ||
				lookAhead(1) == TokenType.MINUS) {
			if (lookAhead(1) == TokenType.PLUS) {
				termExpression = new AddOpNode(match(TokenType.PLUS).getPosition(),
						termExpression, term());
			} else if (lookAhead(1) == TokenType.MINUS) {
				termExpression = new SubtractOpNode(match(TokenType.MINUS).getPosition(),
						termExpression, term());
			}
		}
		return termExpression;
	}