示例#1
0
        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);
        }
示例#2
0
 public BaseOperationBuilder(ExecutableMachine machine)
 {
     Machine = machine;
 }