private TypeInfo TypeInfoFromValueTypeContext(string name, ExpressParser.ValueTypeContext ctx)
        {
            TypeInfo typeInfo = null;

            // ENUMERATION
            if (ctx.enumeration() != null)
            {
                typeInfo = new EnumInfo(name);
            }
            //SELECT
            else if (ctx.select() != null)
            {
                typeInfo = new SelectInfo(name);
                Selects.Add((SelectInfo)typeInfo);
            }
            //COLLECTION
            else if (ctx.collection() != null)
            {
                typeInfo = new CollectionInfo(name);
            }
            // DEFINED TYPE
            else if (ctx.atomicType() != null)
            {
                typeInfo           = new DefinedTypeInfo(name);
                typeInfo.ValueType = TypeInfo.ToSystemType(ctx.atomicType().GetText());
            }
            return(typeInfo);
        }
 /// <summary>
 /// Exit a parse tree produced by <see cref="ExpressParser.valueType"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitValueType([NotNull] ExpressParser.ValueTypeContext context)
 {
 }