Exemple #1
0
        private static IActionCode GenerateActionCode(IActionCode code, ForeignAction action)
        {
            bool first = true;

            foreach (var binding in action.Joint.All <CilProduction>())
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    // Result of this rule supersedes result of the prvious one
                    code = code.Emit(il => il.Pop());
                }

                code = code
                       .Do(binding.Context.Load)
                       .Do(binding.ActionBuilder)
                ;
            }

            return(code);
        }
        private static IActionCode GenerateActionCode(IActionCode code, ForeignAction action)
        {
            bool first = true;
            foreach (var binding in action.Joint.All<CilProduction>())
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    // Result of this rule supersedes result of the prvious one
                    code = code.Emit(il => il.Pop());
                }

                code = code
                    .Do(binding.Context.Load)
                    .Do(binding.ActionBuilder)
                    ;
            }

            return code;
        }
 public abstract IActionCode Load(IActionCode code);
 public override IActionCode Load(IActionCode code)
 {
     return code.LdContext(UniqueName);
 }
 public override IActionCode Load(IActionCode code)
 {
     return code;
 }
 public override IActionCode Load(IActionCode code)
 {
     return(code.LdContext(UniqueName));
 }
 public override IActionCode Load(IActionCode code)
 {
     return(code);
 }
 public abstract IActionCode Load(IActionCode code);
 public static IActionCode Do(this IActionCode self, Pipe <IActionCode> builder)
 {
     return(builder(self));
 }