Ejemplo n.º 1
0
        public override void EnterAttribute(ExpressParser.AttributeContext context)
        {
            var    attr = new AttributeDeclaration();
            string name = null;

            if (context.Identifier() != null)
            {
                name = context.Identifier().GetText();
            }
            else
            {
                name = context.path().GetText();
            }
            attr.IsOptional = context.OPTIONAL() != null;
            attr.TypeInfo   = TypeInfoFromValueTypeContext(name, context.valueType());

            if (context.Parent is ExpressParser.DeriveDeclarationContext)
            {
                attr.IsDerived = true;
            }
            currentTypeInfo = attr.TypeInfo;

            currentEntityInfo.Attributes.Add(attr);
        }
Ejemplo n.º 2
0
 public override void ExitAttribute(ExpressParser.AttributeContext context)
 {
     currentTypeInfo = null;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="ExpressParser.attribute"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitAttribute([NotNull] ExpressParser.AttributeContext context)
 {
 }