public override void VisitLayoutIdQualifier(LayoutIdQualifier node, CloningAstVisitorContext context)
 {
     context.Result = new LayoutIdQualifier()
     {
         Identifier = this.CloneNode(node.Identifier, context),
         Order      = this.CloneNode(node.Order, context)
     };
 }
 public override void VisitLayoutIdQualifier(LayoutIdQualifier node, AstPrinterContext context)
 {
     this.Visit(node.Identifier, context);
     if (node.Order != null)
     {
         context.Write(" = ");
         this.Visit(node.Order, context);
     }
 }
        public override AstNode VisitType_qualifier(GLSL_ES300Parser.Type_qualifierContext context)
        {
            TypeQualifier result = new TypeQualifier();

            if (context.invariant_qualifier() != null)
            {
                result.Invariant = true;
            }

            if (context.interpolation_qualifier() != null)
            {
                var interp = context.interpolation_qualifier();
                result.Interpolation = (InterpolationQualifier)Enum.Parse(typeof(InterpolationQualifier), interp.GetText(), true);
            }

            if (context.storage_qualifier() != null)
            {
                var stor = context.storage_qualifier();
                result.Storage = (StorageQualifier)Enum.Parse(typeof(StorageQualifier), stor.GetText(), true);
            }

            if (context.layout_qualifier() != null)
            {
                var layoutIdList = context.layout_qualifier().layout_qualifier_idlist();
                while (layoutIdList != null)
                {
                    if (layoutIdList.layout_qualifier_id() != null)
                    {
                        var idQualifier = new LayoutIdQualifier();
                        var layoutId    = layoutIdList.layout_qualifier_id();
                        idQualifier.Identifier = new Identifier()
                        {
                            Name = layoutId.Identifier().Symbol.Text
                        };

                        if (layoutId.IntegerLiteral() != null)
                        {
                            idQualifier.Order = new IntegerLiteral()
                            {
                                LiteralValue = layoutId.IntegerLiteral().GetText()
                            };
                        }

                        result.Layout.Add(idQualifier);
                    }

                    layoutIdList = layoutIdList.layout_qualifier_idlist();
                }
            }

            return(result);
        }
 public virtual void VisitLayoutIdQualifier(LayoutIdQualifier node, TContext context)
 {
     this.Visit(node.Identifier, context);
     this.Visit(node.Order, context);
 }
示例#5
0
 public override void VisitLayoutIdQualifier(LayoutIdQualifier node, SemanticModelBuilderContext context)
 {
     this.SafeAddSymbolReference(node.Identifier, node, context);
     base.VisitLayoutIdQualifier(node, context);
 }