Пример #1
0
        public string SqlText(BuilkInsert insertCommand)
        {
            System.Text.StringBuilder Res = null;

            foreach (Insert Cmd in insertCommand.InsertCommands)
            {
                if (Res == null)
                {
                    Res = new System.Text.StringBuilder();
                    Res.AppendLine(this.SqlText(Cmd));
                }
                else
                {
                    Res.Append(", ");
                    Res.AppendLine(this.SqlText(Cmd, true));
                }
            }
            if (Res == null)
            {
                return("");
            }
            else
            {
                return(Res.ToString());
            }
        }
Пример #2
0
        public string SqlText(BuilkInsert bulkInsertCommand)
        {
            System.Text.StringBuilder Res = null;

            int Line = 0;

            foreach (Insert Cmd in bulkInsertCommand.InsertCommands)
            {
                if (Line == 0)
                {
                    Res = new System.Text.StringBuilder();
                    Res.Append(this.SqlText(Cmd));
                }
                else
                {
                    Res.AppendLine(", ");
                    Res.Append(this.SqlText(Cmd.ColumnValues, ColumnValueFormatStyles.InsertStyleValuesOnly, false, Line));
                }
                ++Line;
            }

            if (bulkInsertCommand.WhereClause != null)
            {
                Res.Append(" WHERE " + this.SqlText(bulkInsertCommand.WhereClause));
            }

            if (Res == null)
            {
                return("");
            }
            else
            {
                return(Res.ToString());
            }
        }
Пример #3
0
 public override string ToString()
 {
     System.Text.StringBuilder Res = null;
     foreach (Insert Cmd in this.InsertCommands)
     {
         if (Res == null)
         {
             Res = new System.Text.StringBuilder();
             Res.AppendLine(Cmd.ToString());
         }
         else
         {
             Res.Append(", ");
             Res.AppendLine(Cmd.ToString(true));
         }
     }
     if (Res == null)
     {
         return("");
     }
     else
     {
         return(Res.ToString());
     }
 }
Пример #4
0
        private void OutputField(Definition.FieldDef f)
        {
            //Summary(f.Brief);
            MakeIndent();

            if (f.Argument == null)
            {
                Res.AppendFormat("{2} {3}{0} {1}", GetTypeSpecifier(f.Type), f.Name, GetAccessLevel(f.AccessLevel), f.IsStatic ? "static " : "");

                if (f.Initializer != null)
                {
                    Res.AppendFormat(" = {0};\r\n", GetExpression(f.Initializer));
                }
                else
                {
                    Res.AppendLine(";");
                }
            }
            else
            {
                // 無理やりfixedArrayを再現
                var atype = (Definition.ArrayType)f.Type;

                Res.AppendFormat("{0} {1}{2} {3} = new {4}[{5}];\r\n",
                                 GetAccessLevel(f.AccessLevel),
                                 f.IsStatic ? "static " : "",
                                 GetTypeSpecifier(f.Type), f.Name,
                                 GetTypeSpecifier(atype.BaseType),
                                 f.Argument);
            }
        }
Пример #5
0
        private void OutputMethod(Definition.MethodDef m)
        {
            Func <string> generics = () =>
            {
                if (m.TypeParameters.Count == 0)
                {
                    return(string.Empty);
                }
                return("<" + string.Join(",", m.TypeParameters.Select(_ => _.Name).ToArray()) + ">");
            };

            Summary(m.Summary);

            List <string> strs = new List <string>();

            strs.Add(GetAccessLevel(m.AccessLevel));
            strs.Add(m.IsStatic ? "static " : "");
            strs.Add(GetGenericsTypeParameters(m.TypeParameters));
            strs.Add(m.IsAbstract ? "abstract " : "");
            strs.Add(GetTypeSpecifier(m.ReturnType));
            strs.Add(m.Name);

            var strs_ = string.Join(" ", strs.Where(_ => !string.IsNullOrEmpty(_)).ToArray());

            WriteLine("{0}({1})", strs_, GetParamStr(m.Parameters));

            if (m.IsAbstract)
            {
                Res.AppendLine(";");
            }
            else
            {
                WriteLine("{{");
                IndentDepth++;

                OutputStatements(m.Body);

                IndentDepth--;
                WriteLine("}}");
            }
        }
Пример #6
0
        private void OutputEnum(Definition.EnumDef es)
        {
            Summary(es.Summary);
            WriteLine("public enum {0} {{", es.Name);
            IndentDepth++;

            int count = 0;

            foreach (var e in es.Members)
            {
                Summary(e.Summary);
                MakeIndent();
                Res.Append(e.Name);
                if (e.Value != null)
                {
                    var expression = GetExpression(e.Value);
                    var suffix     = string.Empty;
                    if (expression.Contains("swig"))
                    {
                        suffix = ".swigValue()";
                    }

                    if (count != es.Members.Count - 1)
                    {
                        Res.AppendFormat("({0}{1}),\r\n", expression, suffix);
                    }
                    else
                    {
                        Res.AppendFormat("({0}{1});\r\n", expression, suffix);
                    }
                }
                else
                {
                    Res.AppendLine(",");
                }

                count++;
            }

            // 定型文
            var idText = @"
	private final int id;
	
	private {0}(final int id)
	{
		this.id = id;
	}
	
	public int swigValue()
	{
		return id;
	}
	
	public static {0} swigToEnum(int id)
	{
		for ({0} e : values() )
		{
			if (e.swigValue() == id)
			{
				return e;
			}
		}
	
		throw new IllegalArgumentException(""Not found : "" + id);
	}
";

            idText = idText.Replace("{0}", es.Name);

            Res.AppendLine("");
            Res.Append(idText);
            Res.AppendLine("");

            IndentDepth--;
            WriteLine("}}");
        }
Пример #7
0
        private void OutputStatement(Definition.Statement s)
        {
            if (s == null)
            {
                WriteLine("/* debug: null statement */");
            }
            else if (s is Definition.BlockStatement)
            {
                var s2 = (Definition.BlockStatement)s;
                OutputStatements(s2.Statements);
            }
            else if (s is Definition.ContinueStatement)
            {
                WriteLine("continue;");
            }
            else if (s is Definition.BreakStatement)
            {
                WriteLine("break;");
            }
            else if (s is Definition.ExpressionStatement)
            {
                var s2 = (Definition.ExpressionStatement)s;
                WriteLine("{0};", GetExpression(s2.Expression));
            }
            else if (s is Definition.ForeachStatement)
            {
                var s2 = (Definition.ForeachStatement)s;
                WriteLine("for({0} {1}: {2})", GetTypeSpecifier(s2.Type), s2.Name, GetExpression(s2.Value));
                WriteLine("{{");
                IndentDepth++;
                OutputStatement(s2.Statement);
                IndentDepth--;
                WriteLine("}}");
            }
            else if (s is Definition.ForStatement)
            {
                var s2 = (Definition.ForStatement)s;
                WriteLine("for({0} {1} = {2}; {3}; {4})", GetTypeSpecifier(s2.Declaration.Type), s2.Declaration.Name, GetExpression(s2.Declaration.Value), GetExpression(s2.Condition), GetExpression(s2.Incrementor));
                WriteLine("{{");
                IndentDepth++;
                OutputStatement(s2.Statement);
                IndentDepth--;
                WriteLine("}}");
            }
            else if (s is Definition.WhileStatement)
            {
                var s2 = (Definition.WhileStatement)s;
                WriteLine("while({0})", GetExpression(s2.Condition));
                WriteLine("{{");

                IndentDepth++;
                OutputStatement(s2.Statement);
                IndentDepth--;

                WriteLine("}}");
                WriteLine("");
            }
            else if (s is Definition.IfStatement)
            {
                var s2 = (Definition.IfStatement)s;
                WriteLine("if({0})", GetExpression(s2.Condition));
                WriteLine("{{");

                IndentDepth++;
                OutputStatement(s2.TrueStatement);
                IndentDepth--;

                if (s2.FalseStatement != null)
                {
                    WriteLine("}}");
                    WriteLine("else");
                    WriteLine("{{");

                    IndentDepth++;
                    OutputStatement(s2.FalseStatement);
                    IndentDepth--;

                    WriteLine("}}");
                }
                else
                {
                    WriteLine("}}");
                }
            }
            else if (s is Definition.ReturnStatement)
            {
                var s2 = (Definition.ReturnStatement)s;
                WriteLine("return {0};", GetExpression(s2.Return));
            }
            else if (s is Definition.VariableDeclarationStatement)
            {
                MakeIndent();
                var s2 = (Definition.VariableDeclarationStatement)s;
                Res.AppendFormat("{0} {1}", GetTypeSpecifier(s2.Type), s2.Name);
                if (s2.Value != null)
                {
                    Res.AppendFormat(" = {0};\r\n", GetExpression(s2.Value));
                }
                else
                {
                    Res.AppendLine(";");
                }
            }
            else if (s is Definition.LockStatement)
            {
                var s2 = (Definition.LockStatement)s;

                WriteLine("synchronized({0})", GetExpression(s2.Expression));
                WriteLine("{{");

                IndentDepth++;
                OutputStatement(s2.Statement);
                IndentDepth--;

                WriteLine("}}");
            }
            else if (s is Definition.CommentStatement)
            {
                var s2 = (Definition.CommentStatement)s;
                WriteLine("// {0}", s2.Text);
            }
            else
            {
                throw new NotImplementedException("unknown statement " + s.GetType().ToString());
            }
        }