Exemplo n.º 1
0
 protected Schema.Node FindParent(Schema.Node node)
 {
     if (!node.IsValid() || node.id == 0)
     {
         return(default(Node));
     }
     if (node.scopeId != 0 && node.scopeId != node.id)
     {
         var tmp = Lookup(node.scopeId);
         if (tmp.IsValid())
         {
             return(tmp);
         }
     }
     foreach (var pair in map)
     {
         var nested = pair.Value.nestedNodes;
         if (nested.IsValid())
         {
             foreach (var x in nested)
             {
                 if (x.id == node.id)
                 {
                     return(pair.Value);
                 }
             }
         }
     }
     return(default(Node));
 }
Exemplo n.º 2
0
        public virtual CodeWriter WriteNode(Schema.Node node, Stack <UnionStub> union)
        {
            if (node.IsValid())
            {
                switch (node.Union)
                {
                case Schema.Node.Unions.@struct:
                    WriteStruct(node, union);
                    break;

                case Schema.Node.Unions.@enum:
                    WriteEnum(node);
                    break;

                case Schema.Node.Unions.@const:
                    WriteConst(node);
                    break;

                case Schema.Node.Unions.annotation:
                default:
                    WriteLine().WriteComment(string.Format("Not implemented: {0} ({1}))", node.displayName, node.Union));
                    break;
                }
            }
            return(this);
        }
Exemplo n.º 3
0
        public override CodeWriter WriteConst(Schema.Node node)
        {
            if (!node.IsValid() || node.Union != Schema.Node.Unions.@const)
            {
                return(this);
            }
            var @const = node.@const;

            return(WriteLine().Write("public const ").Write(@const.type).Write(" ").Write(LocalName(node)).Write(" = ").Write(@const.type, @const.value).Write(";"));
        }
Exemplo n.º 4
0
        public override CodeWriter WriteConst(Schema.Node node)
        {
            if (!node.IsValid() || node.Union != Schema.Node.Unions.@const)
            {
                return(this);
            }
            var    @const    = node.@const;
            string localName = LocalName(node);

            return(WriteLine().Write("public static class C_" + localName + "{").WriteLine().Write("  public const ").Write(@const.type).Write(" ").Write(localName).Write(" = ").Write(@const.type, @const.value).Write(";").WriteLine().Write("}"));
        }