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); }
public override void EnterInverseAttribute(ExpressParser.InverseAttributeContext context) { var attr = new AttributeDeclaration(); TypeInfo typeInfo = null; var name = context.Identifier()[0].GetText(); //COLLECTION if (context.collection() != null) { typeInfo = new CollectionInfo(name); } // DEFINED TYPE else if (context.Identifier()[1] != null) { typeInfo = new DefinedTypeInfo(name); typeInfo.ValueType = TypeInfo.ToSystemType(context.Identifier()[1].GetText()); } attr.TypeInfo = typeInfo; currentTypeInfo = typeInfo; currentEntityInfo.Attributes.Add(attr); }