private static TakerResult TakeFloat(string input, int offset) { Match match = Regex.Match(input.Substring(offset), @"^\-?\d+(?:\.\d+)?"); CommandSegment segment = match.Success ? new CommandSegment(SegmentType.Float, match.Value) : null; return(new TakerResult(segment, offset + segment?.Text.Length ?? offset)); }
private static TakerResult TakeIdentifier(string input, int offset) { Match match = Regex.Match(input.Substring(offset), @"^\w+"); CommandSegment segment = match.Success ? new CommandSegment(SegmentType.Identifier, match.Value) : null; return(new TakerResult(segment, offset + segment?.Text.Length ?? offset)); }
public TakerResult(CommandSegment segment, int offset) : this(segment) { Segment = segment; Offset = offset; }
public TakerResult(CommandSegment segment) { Segment = segment; Offset = segment?.Text.Length ?? 0; }