make numeric tokenizer threadsafe by removing cache

This commit is contained in:
Eliot Jones
2019-12-24 12:05:10 +00:00
parent 3bef786d5c
commit 9c9a08c6a7
3 changed files with 64 additions and 54 deletions

View File

@@ -9,15 +9,15 @@
internal class CoreTokenScanner : ISeekableTokenScanner
{
private static readonly HexTokenizer HexTokenizer = new HexTokenizer();
private static readonly StringTokenizer StringTokenizer = new StringTokenizer();
private static readonly NameTokenizer NameTokenizer = new NameTokenizer();
private static readonly PlainTokenizer PlainTokenizer = new PlainTokenizer();
private static readonly ArrayTokenizer ArrayTokenizer = new ArrayTokenizer();
private static readonly DictionaryTokenizer DictionaryTokenizer = new DictionaryTokenizer();
private static readonly CommentTokenizer CommentTokenizer = new CommentTokenizer();
private static readonly DictionaryTokenizer DictionaryTokenizer = new DictionaryTokenizer();
private static readonly HexTokenizer HexTokenizer = new HexTokenizer();
private static readonly NameTokenizer NameTokenizer = new NameTokenizer();
private static readonly NumericTokenizer NumericTokenizer = new NumericTokenizer();
private static readonly PlainTokenizer PlainTokenizer = new PlainTokenizer();
private static readonly StringTokenizer StringTokenizer = new StringTokenizer();
private readonly NumericTokenizer numericTokenizer = new NumericTokenizer();
private readonly ScannerScope scope;
private readonly IInputBytes inputBytes;
private readonly List<(byte firstByte, ITokenizer tokenizer)> customTokenizers = new List<(byte, ITokenizer)>();
@@ -143,7 +143,7 @@
case '-':
case '+':
case '.':
tokenizer = numericTokenizer;
tokenizer = NumericTokenizer;
break;
default:
tokenizer = PlainTokenizer;