private ExpressionNode CExpression() throws SyntaxException {
        try {
            if (iterator.current().type() == Token.Type.LEFT_ANGLE_BRACKET) {
                nextToken();
                BaseTypeNode type = Type();
                RightAngleBracket();
                Position pos = iterator.current().coordinates().starting();

                return new CastNode(type, DExpression(), pos);
            } else {
                return DExpression();
            }
        } catch(SyntaxException ex) {
            throw ex;
        } catch(Exception ex) {
            throw (NonAnalysisException)new NonAnalysisException(ex)
                    .initPosition(iterator.current().coordinates().starting())
                    .Log("ru.bmstu.iu9.compiler.syntax");
        }
    }