상속: IAstNode
예제 #1
0
        public void Visit(fieldType node)
        {
            if (node.type == typeType.nestedMessage || node.type == typeType.referenceMessage)
                _strm.WriteLine("  //{0}", FormatField(node, node.messageType + "Header"));

            _strm.WriteLine("    {0}", FormatField(node, ProtoTypeString(node)));
        }
예제 #2
0
        public void Visit(fieldType node)
        {
            if (node.type == typeType.nestedMessage || node.type == typeType.referenceMessage)
            {
                _strm.WriteLine("  //{0}", FormatField(node, node.messageType + "Header"));
            }

            _strm.WriteLine("    {0}", FormatField(node, ProtoTypeString(node)));
        }
예제 #3
0
 private static string ProtoTypeString(fieldType node)
 {
     switch (node.type)
     {
         case typeType.nestedMessage:
             return "uint32";
         case typeType.referenceMessage:
             return "LocalMessageDescriptor";
         case typeType.@enum:
             return node.enumType;
         default:
             return node.type.ToString();
     }
 }
예제 #4
0
        private static string FormatField(fieldType node, string type)
        {
            var isRepeatedPrimitive = node.modifier == modifierType.repeated &&
                                      (node.@type != typeType.referenceMessage && node.@type != typeType.@string && node.@type != typeType.bytes);

            var val = string.Format("{0} {1} {2}= {3}{4}{5};"
                                    , node.modifier
                                    , type
                                    , node.name
                                    , node.id
                                    , (node.@default != null) ? string.Format(" [default={0}]", node.@default) : ""
                                    , isRepeatedPrimitive ? " [packed=true]" : "");

            return(val);
        }
예제 #5
0
        private static string ProtoTypeString(fieldType node)
        {
            switch (node.type)
            {
            case typeType.nestedMessage:
                return("uint32");

            case typeType.referenceMessage:
                return("LocalMessageDescriptor");

            case typeType.@enum:
                return(node.enumType);

            default:
                return(node.type.ToString());
            }
        }
예제 #6
0
        private static string FormatField(fieldType node, string type)
        {
            var isRepeatedPrimitive = node.modifier == modifierType.repeated 
                && (node.@type != typeType.referenceMessage && node.@type != typeType.@string && node.@type != typeType.bytes);

            var val = string.Format("{0} {1} {2}= {3}{4}{5};"
                , node.modifier
                , type
                , node.name
                , node.id
                , (node.@default != null) ? string.Format(" [default={0}]", node.@default) : ""
                , isRepeatedPrimitive ? " [packed=true]" : "");
            return val;
        }