Пример #1
0
        public override void Print(FieldNode node, StringBuilder sb, PrintOption opt, params object[] values)
        {
            var maxNameLength = (int)values[0];
            var maxTypeLength = (int)values[1];

            sb.Append(opt.MakeIndentSpace());

            {
                sb.AppendFormat("{0} ", node.PBLabel.ToString().ToLower());
            }

            // 类型
            {
                sb.Append(node.TypeName.PadRight(maxTypeLength + 1));
            }

            // 字段名
            {
                sb.Append(node.Name.PadRight(maxNameLength + 1));
            }


            // 序号
            {
                sb.AppendFormat("= {0}", node.Number);
            }

            // Option
            if (node.HasOption)
            {
                sb.Append("[");

                if (node.DefaultValue != "")
                {
                    switch (node.Type)
                    {
                    case FieldType.String:
                        sb.AppendFormat("default=\"{0}\"", node.DefaultValue);
                        break;

                    default:
                        sb.AppendFormat("default={0}", node.DefaultValue);
                        break;
                    }
                }

                sb.Append("]");
            }

            sb.Append(";");


            // 注释
            if (!string.IsNullOrEmpty(node.TrailingComment))
            {
                sb.AppendFormat(" //{0}", node.TrailingComment);
            }

            sb.Append("\n");
        }
Пример #2
0
        public override void Print(EnumValueNode node, StringBuilder sb, PrintOption opt, params object[] values)
        {
            var maxNameLength = (int)values[0];

            sb.Append(opt.MakeIndentSpace());

            sb.Append(node.Name.PadRight(maxNameLength));

            sb.AppendFormat(" = {0}", node.Number);

            sb.Append(";");

            var commentSpace = " ".PadLeft(3 - node.Number.ToString().Length);

            sb.Append(commentSpace);

            if (!string.IsNullOrEmpty(node.TrailingComment))
            {
                sb.AppendFormat("//{0}", node.TrailingComment);
            }

            sb.Append("\n");
        }