/// <exception cref="CommandSyntaxException"></exception> public override float Parse(IStringReader reader) { var start = reader.Cursor; var result = reader.ReadFloat(); if (result < _minimum) { reader.Cursor = start; throw CommandSyntaxException.BuiltInExceptions.FloatTooLow().CreateWithContext(reader, result, _minimum); } if (result > _maximum) { reader.Cursor = start; throw CommandSyntaxException.BuiltInExceptions.FloatTooHigh().CreateWithContext(reader, result, _maximum); } return(result); }
public ReadResults Parse(IStringReader reader, DispatcherResources resources, out float result) { int start = reader.GetCursor(); ReadResults readResults = reader.ReadFloat(out result); if (readResults.Successful) { if (result < Minimum) { reader.SetCursor(start); return(ReadResults.Failure(CommandError.FloatTooLow(result, Minimum).WithContext(reader))); } if (result > Maximum) { reader.SetCursor(start); return(ReadResults.Failure(CommandError.FloatTooHigh(result, Maximum).WithContext(reader))); } } return(readResults); }