public static ExecutableMachine Create() { var machine = new ExecutableMachine(); machine.RegisterOperation <RetOperation>(new BaseOperationBuilder <RetOperation>(machine)); machine.RegisterOperation <GetValueOperation>(new BaseOperationBuilder <GetValueOperation>(machine)); machine.RegisterOperation <SetValueOperation>(new BaseOperationBuilder <SetValueOperation>(machine)); machine.RegisterOperation <ValueOperation>(new BaseOperationBuilder <ValueOperation>(machine)); machine.RegisterOperation <JmpOperation>(new BaseOperationBuilder <JmpOperation>(machine)); machine.RegisterOperation <JmpIfOperation>(new BaseOperationBuilder <JmpIfOperation>(machine)); machine.RegisterOperation <JmpIfFalseOperation>(new BaseOperationBuilder <JmpIfFalseOperation>(machine)); machine.RegisterOperation <ClearFlagOperation>(new BaseOperationBuilder <ClearFlagOperation>(machine)); machine.RegisterOperation <SetFlagOperation>(new BaseOperationBuilder <SetFlagOperation>(machine)); machine.RegisterOperation <RegisterOperation>(new BaseOperationBuilder <RegisterOperation>(machine)); machine.RegisterOperation <CmpOperation>(new BaseOperationBuilder <CmpOperation>(machine)); machine.RegisterOperation <PushOperation>(new BaseOperationBuilder <PushOperation>(machine)); machine.RegisterOperation <PopOperation>(new BaseOperationBuilder <PopOperation>(machine)); machine.RegisterOperation <PeekOperation>(new BaseOperationBuilder <PeekOperation>(machine)); machine.RegisterOperation <ObjectMemberOperation>(new BaseOperationBuilder <ObjectMemberOperation>(machine)); machine.RegisterOperation <AddOperation>(new BaseOperationBuilder <AddOperation>(machine)); machine.RegisterOperation <SubOperation>(new BaseOperationBuilder <SubOperation>(machine)); machine.RegisterOperation <MulOperation>(new BaseOperationBuilder <MulOperation>(machine)); machine.RegisterOperation <DivOperation>(new BaseOperationBuilder <DivOperation>(machine)); machine.RegisterOperation <ModOperation>(new BaseOperationBuilder <ModOperation>(machine)); machine.RegisterOperation <GenericOperation>(new BaseOperationBuilder <GenericOperation>(machine)); machine.RegisterOperation <IncOperation>(new BaseOperationBuilder <IncOperation>(machine)); machine.RegisterOperation <DecOperation>(new BaseOperationBuilder <DecOperation>(machine)); return(machine); }
public BaseOperationBuilder(ExecutableMachine machine) { Machine = machine; }