private PrimitiveTypeNode PrimitiveType(boolean constancy)
            throws SyntaxException {
        
        PrimitiveTypeNode type = null;
        Position pos = iterator.current().coordinates().starting();
        
        switch (iterator.current().type()) {
            case INT:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.INT, 
                        constancy,
                        pos);
                break;
            case LONG:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.LONG, 
                        constancy,
                        pos);
                break;
            case DOUBLE:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.DOUBLE, 
                        constancy,
                        pos);
                break;
            case FLOAT:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.FLOAT, 
                        constancy,
                        pos);
                break;
            case BOOL:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.BOOL, 
                        constancy,
                        pos);
                break;
            case CHAR:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.CHAR, 
                        constancy,
                        pos);
                break;
            case VOID:
                type = new PrimitiveTypeNode(
                        PrimitiveTypeNode.Type.VOID, 
                        constancy,
                        pos);
                break;
            default:
                throw (InvalidTokenException)new InvalidTokenException(
                        iterator.current(), 
                        Token.Type.PrimitiveType
                    )
                    .initPosition(iterator.current().coordinates().starting())
                    .Log("ru.bmstu.iu9.compiler.syntax");
        }
        nextToken();
        return type;
    }