public override void Do(RamMachineCommand command, IRamMachine ram) { RamMachineHelper.DoWithDeepLv(command.Argument, (ramEl, val) => { ramEl.Set(0, func(ramEl.Get(0), val)); }, ram); }
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; } }
public override bool IsArgumentCorrect(string argument) { return(RamMachineHelper.CheckPreArgument(argument, new char?[] { '*', null })); }
public override void Do(RamMachineCommand command, IRamMachine ram) { RamMachineHelper.DoWithDeepLv(command.Argument, (ramEl, val) => ramEl.Write(val), ram); }
public override bool IsArgumentCorrect(string argument) { return(RamMachineHelper.CheckPreArgument(argument)); }