@@ -18,11 +18,8 @@ private string ReadIdentifier(ISourceText stream)
18
18
}
19
19
else
20
20
{
21
- throw LangException . UnexpectedToken ( new Token
22
- {
23
- Position = stream . Position ,
24
- Text = stream . Current . ToString ( )
25
- } , TokenType . Identifier ) ;
21
+ Token token = new Token ( TokenType . Unknown , stream . Current . ToString ( ) , stream . Position ) ;
22
+ throw LangException . UnexpectedToken ( token , TokenType . Identifier ) ;
26
23
}
27
24
28
25
while ( stream . Current != identifierTerminator )
@@ -34,23 +31,22 @@ private string ReadIdentifier(ISourceText stream)
34
31
}
35
32
else
36
33
{
37
- throw LangException . UnexpectedToken ( new Token
38
- {
39
- Position = stream . Position ,
40
- Text = stream . Current . ToString ( )
41
- } , identifierTerminator ) ;
34
+ Token token = new Token ( TokenType . Unknown , stream . Current . ToString ( ) , stream . Position ) ;
35
+ throw LangException . UnexpectedToken ( token , identifierTerminator ) ;
42
36
}
43
37
}
44
38
45
39
builder . Append ( stream . Current ) ;
46
40
stream . MoveNext ( ) ;
47
41
string text = builder . ToString ( ) ;
48
42
49
- return text . Length == 2 ? throw LangException . UnexpectedToken ( new Token
43
+ if ( text . Length == 2 )
50
44
{
51
- Position = stream . Position - 1 ,
52
- Text = identifierTerminator . ToString ( )
53
- } , identifierTerminator ) : text ;
45
+ Token token = new Token ( TokenType . Unknown , identifierTerminator . ToString ( ) , stream . Position - 1 ) ;
46
+ throw LangException . UnexpectedToken ( token , identifierTerminator ) ;
47
+ }
48
+
49
+ return text ;
54
50
}
55
51
56
52
private string ReadOperator ( ISourceText stream )
@@ -84,11 +80,8 @@ private string ReadNumber(ISourceText stream)
84
80
}
85
81
else
86
82
{
87
- throw LangException . UnexpectedToken ( new Token
88
- {
89
- Position = stream . Position ,
90
- Text = stream . Current . ToString ( )
91
- } , TokenType . Number ) ;
83
+ Token token = new Token ( TokenType . Unknown , stream . Current . ToString ( ) , stream . Position ) ;
84
+ throw LangException . UnexpectedToken ( token , TokenType . Number ) ;
92
85
}
93
86
}
94
87
else if ( char . IsDigit ( stream . Current ) )
@@ -103,11 +96,14 @@ private string ReadNumber(ISourceText stream)
103
96
}
104
97
105
98
char peeked = stream . Peek ( - 1 ) ;
106
- return peeked == '.' ? throw LangException . UnexpectedToken ( new Token
99
+
100
+ if ( peeked == '.' )
107
101
{
108
- Position = stream . Position ,
109
- Text = peeked . ToString ( )
110
- } , TokenType . Number ) : builder . ToString ( ) ;
102
+ Token token = new Token ( TokenType . Unknown , peeked . ToString ( ) , stream . Position ) ;
103
+ throw LangException . UnexpectedToken ( token , TokenType . Number ) ;
104
+ }
105
+
106
+ return builder . ToString ( ) ;
111
107
}
112
108
113
109
private void ReadWhiteSpace ( ISourceText stream )
0 commit comments