/// </summary>
public class SeekableStreamReader : IDisposable
{
- public const int DefaultReadAheadSize = 2048;
+ public const int DefaultReadAheadSize =
+#if FULL_AST
+ 65536 / 2; // Large buffer because of ReadChars of large literal string
+#else
+ 4096 / 2;
+#endif
StreamReader reader;
Stream stream;
}
}
}
+
+ struct TypeNameParser
+ {
+ internal static string Escape(string name)
+ {
+ if (name == null) {
+ return null;
+ }
+ StringBuilder sb = null;
+ for (int pos = 0; pos < name.Length; pos++) {
+ char c = name[pos];
+ switch (c) {
+ case '\\':
+ case '+':
+ case ',':
+ case '[':
+ case ']':
+ case '*':
+ case '&':
+ if (sb == null) {
+ sb = new StringBuilder(name, 0, pos, name.Length + 3);
+ }
+ sb.Append("\\").Append(c);
+ break;
+ default:
+ if (sb != null) {
+ sb.Append(c);
+ }
+ break;
+ }
+ }
+ return sb != null ? sb.ToString() : name;
+ }
+ }
}