public EnumExceptForgeEval( EnumExceptForge forge, ExprEnumerationEval evaluator) { _forge = forge; _evaluator = evaluator; }
public static CodegenExpression Codegen( EnumExceptForge forge, EnumForgeCodegenParams args, CodegenMethodScope codegenMethodScope, CodegenClassScope codegenClassScope) { var namedParams = EnumForgeCodegenNames.PARAMS; var returnType = typeof(FlexCollection); var scope = new ExprForgeCodegenSymbol(false, null); var methodNode = codegenMethodScope.MakeChildWithScope( returnType, typeof(EnumIntersectForgeEval), scope, codegenClassScope) .AddParam(namedParams); var block = methodNode.Block; if (forge.scalar) { block.DeclareVar<FlexCollection>( "other", forge.evaluatorForge.EvaluateGetROCollectionScalarCodegen(methodNode, scope, codegenClassScope)); } else { block.DeclareVar<FlexCollection>( "other", forge.evaluatorForge.EvaluateGetROCollectionEventsCodegen(methodNode, scope, codegenClassScope)); } block.MethodReturn( StaticMethod( typeof(EnumExceptForgeEval), "EnumExceptForgeEvalSet", Ref("other"), EnumForgeCodegenNames.REF_ENUMCOLL)); return LocalMethod(methodNode, args.Eps, args.Enumcoll, args.IsNewData, args.ExprCtx); }