Exemple #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));
 }
Exemple #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));
            }
Exemple #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));
            }
Exemple #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());
            }
Exemple #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)));
            }
Exemple #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());
            }
Exemple #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());
            }
Exemple #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--;
     }
 }
Exemple #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());
            }
Exemple #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());
            }
Exemple #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(", ")));
 }
Exemple #12
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}return {1};\n", Tabs(), Value.Output(parser)));
 }
Exemple #13
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}{1};\n", Tabs(), ExternalCall.Output(parser)));
 }
Exemple #14
0
 public override string Output(LinqParser parser)
 {
     return(Definition.Output(parser));
 }
Exemple #15
0
 public override string Output(LinqParser parser)
 {
     return(Target.Output(parser));
 }
Exemple #16
0
 public override string Output(LinqParser parser)
 {
     return(string.Format(Operator, Operand.Output(parser)));
 }
Exemple #17
0
 public override string Output(LinqParser parser)
 {
     return(base.Output(parser) + "\n" + Implementation.Output(parser));
 }
Exemple #18
0
 public abstract string Output(LinqParser parser);
Exemple #19
0
 public override string Output(LinqParser parser)
 {
     return(Value);
 }
Exemple #20
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("({0} ? {1} : {2})", Condition.Output(parser),
                          IfTrue.Output(parser), IfFalse.Output(parser)));
 }
Exemple #21
0
 public override string Output(LinqParser parser)
 {
     return(string.Format(FormatStr,
                          Arguments.Select(e => e.Output(parser)).SeparateWith(", ")));
 }
Exemple #22
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0} ({1})", FuncRef.Name,
                          Arguments.Select(e => e.Output(parser)).SeparateWith(", ")));
 }
Exemple #23
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("(" + Operator + ")",
                          LeftOperand.Output(parser), RightOperand.Output(parser)));
 }
Exemple #24
0
 public override string Output(LinqParser parser)
 {
     return(Text);
 }
Exemple #25
0
 public override string Output(LinqParser parser)
 {
     return(parser.MapType(Type));
 }
Exemple #26
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0} ({1})", Result,
                          Parameters.Select(v => v.Output(parser)).SeparateWith(", ")));
 }
Exemple #27
0
            public override string Output(LinqParser parser)
            {
                var decl = base.Output(parser);

                return(string.Format("{0} = {1}", decl, Value.Output(parser)));
            }
Exemple #28
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}.{1}", TargetExpr.Output(parser), TargetField.Name));
 }
Exemple #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));
        }
Exemple #30
0
 public override string Output(LinqParser parser)
 {
     return(string.Format("{0}[{1}]", Target.Name, Index.Output(parser)));
 }