public StateHolder(TextNavigator navigator) : this() { _navigator = navigator; _column = navigator._column; _line = navigator._line; Position = navigator._position; }
public static string Decode ( [CanBeNull] string text ) { if (ReferenceEquals(text, null) || text.Length == 0) { return(text); } int length = text.Length; StringBuilder result = new StringBuilder(length); TextNavigator navigator = new TextNavigator(text); while (!navigator.IsEOF) { string chunk = navigator.ReadUntil('\\'); result.Append(chunk); char prefix = navigator.ReadChar(); if (prefix != '\\') { break; } char c = navigator.ReadChar(); if (c == '\0') { result.Append(prefix); break; } if (c != 'u') { result.Append(prefix); result.Append(c); continue; } StringBuilder buffer = new StringBuilder(); while (!navigator.IsEOF) { c = navigator.ReadChar(); if (!char.IsDigit(c)) { break; } buffer.Append(c); } if (buffer.Length != 0) { c = (char)int.Parse(buffer.ToString()); result.Append(c); } } return(result.ToString()); }
public TextNavigator Clone() { var result = new TextNavigator(_text) { _column = _column, _line = _line, _position = _position }; return(result); }
/// <summary> /// Constructor. /// </summary> public TextPosition ( [NotNull] TextNavigator navigator ) { Sure.NotNull(navigator, nameof(navigator)); Column = navigator.Column; Line = navigator.Line; Position = navigator.Position; }
public static TextNavigator FromFile ( [NotNull] string fileName ) { Sure.FileExists(fileName, nameof(fileName)); string text = File.ReadAllText(fileName, Encoding.UTF8); TextNavigator result = new TextNavigator(text); return(result); }
public static TextNavigator FromFile ( string fileName, Encoding?encoding = default ) { // Sure.FileExists(fileName, nameof(fileName)); encoding ??= Encoding.UTF8; var text = File.ReadAllText(fileName, encoding); var result = new TextNavigator(text); return(result); }