private HaystackNumber ConsumeNum() { Verify(HaystackToken.num); HaystackNumber num = (HaystackNumber)_currentValue; Consume(HaystackToken.num); return(num); }
private HaystackCoordinate ParseCoordinate(string id) { if ("C".CompareTo(id) != 0) { throw GetException("Expecting 'C' for coord, not " + id); } Consume(HaystackToken.lparen); HaystackNumber lat = ConsumeNum(); Consume(HaystackToken.comma); HaystackNumber lng = ConsumeNum(); Consume(HaystackToken.rparen); return(new HaystackCoordinate((decimal)lat.Value, (decimal)lng.Value)); }
/// <summary> /// Write to a given level of a writable point, and return the current status /// of a writable point's priority array <see cref="pointWriteArray"/>. /// </summary> /// <param name="id">Reference of a writable point.</param> /// <param name="level">Number for level to write [1-17].</param> /// <param name="who">Username performing the write, defaults to user dis.</param> /// <param name="val">Value to write or null to auto the level.</param> /// <param name="dur">Number with duration unit if setting level 8.</param> /// <returns>Result grid.</returns> public Task <HaystackGrid> PointWriteAsync(HaystackReference id, int level, string who, HaystackValue val, HaystackNumber dur) { var req = new HaystackGrid() .AddColumn("id") .AddColumn("level") .AddColumn("who") .AddColumn("val") .AddColumn("duration") .AddRow(id, new HaystackNumber(level), new HaystackString(who), val, dur); return(CallAsync("pointWrite", req)); }