예제 #1
0
 public override void Do(RamMachineCommand command, IRamMachine ram)
 {
     RamMachineHelper.DoWithDeepLv(command.Argument, (ramEl, val) =>
     {
         ramEl.Set(0, func(ramEl.Get(0), val));
     }, ram);
 }
예제 #2
0
            public override void Do(RamMachineCommand command, IRamMachine ram)
            {
                var splited = RamMachineHelper.SplitToPreArgument(command.Argument);
                int val     = int.Parse(splited.argument);

                switch (splited.pre)
                {
                case null: ram.Set(val, ram.Get(0)); break;

                case '*': ram.Set((int)ram.Get((int)val), ram.Get(0)); break;
                }
            }
예제 #3
0
 public override bool IsArgumentCorrect(string argument)
 {
     return(RamMachineHelper.CheckPreArgument(argument, new char?[] { '*', null }));
 }
예제 #4
0
 public override void Do(RamMachineCommand command, IRamMachine ram)
 {
     RamMachineHelper.DoWithDeepLv(command.Argument, (ramEl, val) => ramEl.Write(val), ram);
 }
예제 #5
0
 public override bool IsArgumentCorrect(string argument)
 {
     return(RamMachineHelper.CheckPreArgument(argument));
 }