Esempio n. 1
0
 protected static void CreateFunction(LinqParser parser, MemberInfo member, LambdaExpression expr)
 {
     parser.Function(ConstructFunctionName(member), expr);
     parser._program.Functions.Add(Macro.InstantiateAllMacros(parser._function));
     Compiler.Function.Add(member, new Function(parser._program, parser._function,
                                                parser._typesDefined));
 }
Esempio n. 2
0
            public override string Output(LinqParser parser)
            {
                var arrayDecl = ArrayLength > 0 ?
                                string.Format("[{0}]", ArrayLength) : "";

                return(string.Format("{0} {1}{2}", parser.MapType(Type), Name, arrayDecl));
            }
Esempio n. 3
0
            public override string Output(LinqParser parser)
            {
                var def = Definition.Output(parser);

                return(Value != null?
                       string.Format("{0}{1} = {2};\n", Tabs(), def, Value.Output(parser)) :
                           string.Format("{0}{1};\n", Tabs(), def));
            }
Esempio n. 4
0
            public override string Output(LinqParser parser)
            {
                var result = new StringBuilder();

                EmitLine(result, "while ({0})", Condition.Output(parser));
                EmitIntended(result, Body, parser);
                return(result.ToString());
            }
Esempio n. 5
0
            public override string Output(LinqParser parser)
            {
                var retType = ReturnType == null ? "void" : parser.MapType(ReturnType);

                return(string.Format("{0} {1} ({2})\n{3}", retType, Name,
                                     Arguments.Select(v => v.Output(parser)).SeparateWith(", "),
                                     Body.Output(parser)));
            }
Esempio n. 6
0
            public override string Output(LinqParser parser)
            {
                var result = new StringBuilder();

                EmitLine(result, "for ({0} = {1}; {2}; {3})", LoopVar.Output(parser),
                         InitialValue.Output(parser), Condition.Output(parser), Increment.Output(parser));
                EmitIntended(result, Body, parser);
                return(result.ToString());
            }
Esempio n. 7
0
            public override string Output(LinqParser parser)
            {
                var result = new StringBuilder();

                BeginScope(result);
                foreach (var statement in Statements)
                {
                    result.Append(statement.Output(parser));
                }
                EndScope(result);
                return(result.ToString());
            }
Esempio n. 8
0
 protected void EmitIntended(StringBuilder sb, Statement statement, LinqParser parser)
 {
     if (statement is Block)
     {
         sb.Append(statement.Output(parser));
     }
     else
     {
         _tabLevel++;
         sb.Append(statement.Output(parser));
         _tabLevel--;
     }
 }
Esempio n. 9
0
            public override string Output(LinqParser parser)
            {
                var result = new StringBuilder();

                EmitLine(result, "if ({0})\n", Condition.Output(parser));
                EmitIntended(result, IfTrue, parser);
                if (IfFalse != null)
                {
                    EmitLine(result, "else");
                    EmitIntended(result, IfFalse, parser);
                }
                return(result.ToString());
            }
Esempio n. 10
0
            public override string Output(LinqParser parser)
            {
                var functions = new StringBuilder();

                foreach (var func in Functions)
                {
                    functions.Append(func.Output(parser));
                    functions.AppendLine();
                }
                var globals = new StringBuilder();

                foreach (var glob in Globals)
                {
                    globals.Append(glob.Output(parser));
                    globals.AppendLine();
                }
                return(globals.ToString() + "\n" + functions.ToString());
            }
Esempio n. 11
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0} = {1} ({2})",
                          ResultVar.Output(parser), Target.Result.Name,
                          Parameters.Select(p => p.Output(parser)).SeparateWith(", ")));
 }
Esempio n. 12
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}return {1};\n", Tabs(), Value.Output(parser)));
 }
Esempio n. 13
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}{1};\n", Tabs(), ExternalCall.Output(parser)));
 }
Esempio n. 14
0
 public override string Output(LinqParser parser)
 {
     return(Definition.Output(parser));
 }
Esempio n. 15
0
 public override string Output(LinqParser parser)
 {
     return(Target.Output(parser));
 }
Esempio n. 16
0
 public override string Output(LinqParser parser)
 {
     return(string.Format(Operator, Operand.Output(parser)));
 }
Esempio n. 17
0
 public override string Output(LinqParser parser)
 {
     return(base.Output(parser) + "\n" + Implementation.Output(parser));
 }
Esempio n. 18
0
 public abstract string Output(LinqParser parser);
Esempio n. 19
0
 public override string Output(LinqParser parser)
 {
     return(Value);
 }
Esempio n. 20
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("({0} ? {1} : {2})", Condition.Output(parser),
                          IfTrue.Output(parser), IfFalse.Output(parser)));
 }
Esempio n. 21
0
 public override string Output(LinqParser parser)
 {
     return(string.Format(FormatStr,
                          Arguments.Select(e => e.Output(parser)).SeparateWith(", ")));
 }
Esempio n. 22
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0} ({1})", FuncRef.Name,
                          Arguments.Select(e => e.Output(parser)).SeparateWith(", ")));
 }
Esempio n. 23
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("(" + Operator + ")",
                          LeftOperand.Output(parser), RightOperand.Output(parser)));
 }
Esempio n. 24
0
 public override string Output(LinqParser parser)
 {
     return(Text);
 }
Esempio n. 25
0
 public override string Output(LinqParser parser)
 {
     return(parser.MapType(Type));
 }
Esempio n. 26
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0} ({1})", Result,
                          Parameters.Select(v => v.Output(parser)).SeparateWith(", ")));
 }
Esempio n. 27
0
            public override string Output(LinqParser parser)
            {
                var decl = base.Output(parser);

                return(string.Format("{0} = {1}", decl, Value.Output(parser)));
            }
Esempio n. 28
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}.{1}", TargetExpr.Output(parser), TargetField.Name));
 }
Esempio n. 29
0
        protected static void CreateMacro(LinqParser parser, MemberInfo member, LambdaExpression expr)
        {
            var macro = parser.ParseMacro(expr);

            Macro.Add(member, new Macro(macro, parser._program, parser._typesDefined));
        }
Esempio n. 30
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}[{1}]", Target.Name, Index.Output(parser)));
 }