Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [CompilationArgumentCounts(new int[] {1, 1})]
- internal static a processLoopEnd<a>(
- Builder.BuilderContext context,
- FSharpFunc<Builder.BuilderContext, a> processNextTokensFn)
- {
- Builder.LoopInfo head = context.LoopInfos\u0040.Head;
- context.IlGenerator\u0040.MarkLabel(head.ConditionLabel\u0040);
- Builder.processGetMemory(context);
- Builder.prorcessGetPtr(context);
- context.IlGenerator\u0040.Emit(OpCodes.Ldelem_U1);
- context.IlGenerator\u0040.Emit(OpCodes.Brtrue, head.BodyLabel\u0040);
- FSharpFunc<Builder.BuilderContext, a> fsharpFunc = processNextTokensFn;
- Builder.BuilderContext builderContext = context;
- Builder.BuilderContext func = new Builder.BuilderContext(builderContext.IlGenerator\u0040, builderContext.MemoryFI\u0040, builderContext.PtrFI\u0040, context.LoopInfos\u0040.Tail);
- return fsharpFunc.Invoke(func);
- }
- [CompilationArgumentCounts(new int[] {1, 1, 1})]
- internal static void processToken(
- Token token,
- Builder.BuilderContext context,
- FSharpList<Token> nextTokens)
- {
- switch (token.get_Tag())
- {
- case 1:
- Builder.processDecrementPtr<Unit>(context).Invoke((FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004092\u002D1(nextTokens));
- break;
- case 2:
- Builder.processIncrementData<Unit>(context).Invoke((FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004093\u002D2(nextTokens));
- break;
- case 3:
- Builder.processDecrementData<Unit>(context).Invoke((FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004094\u002D3(nextTokens));
- break;
- case 4:
- Builder.processOutputData<Unit>(context, (FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004096\u002D5(nextTokens));
- break;
- case 5:
- Builder.processInputData<Unit>(context, (FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004095\u002D4(nextTokens));
- break;
- case 6:
- Builder.processLoopStart<Unit>(context, (FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004097\u002D6(nextTokens));
- break;
- case 7:
- Builder.processLoopEnd<Unit>(context, (FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004098\u002D7(nextTokens));
- break;
- case 8:
- Builder.processNextToken(nextTokens, context);
- break;
- default:
- Builder.processIncrementPtr<Unit>(context).Invoke((FSharpFunc<Builder.BuilderContext, Unit>) new Builder.processToken\u004091(nextTokens));
- break;
- }
- }
- [CompilationArgumentCounts(new int[] {1, 1})]
- internal static void processNextToken(FSharpList<Token> tokens, Builder.BuilderContext context)
- {
- FSharpList<Token> fsharpList1 = tokens;
- if (fsharpList1.get_TailOrNull() == null)
- return;
- FSharpList<Token> fsharpList2 = fsharpList1;
- FSharpList<Token> tailOrNull = fsharpList2.get_TailOrNull();
- Builder.processToken(fsharpList2.get_HeadOrDefault(), context, tailOrNull);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement