@@ -18,11 +18,8 @@ private string ReadIdentifier(ISourceText stream)
1818 }
1919 else
2020 {
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 ) ;
2623 }
2724
2825 while ( stream . Current != identifierTerminator )
@@ -34,23 +31,22 @@ private string ReadIdentifier(ISourceText stream)
3431 }
3532 else
3633 {
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 ) ;
4236 }
4337 }
4438
4539 builder . Append ( stream . Current ) ;
4640 stream . MoveNext ( ) ;
4741 string text = builder . ToString ( ) ;
4842
49- return text . Length == 2 ? throw LangException . UnexpectedToken ( new Token
43+ if ( text . Length == 2 )
5044 {
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 ;
5450 }
5551
5652 private string ReadOperator ( ISourceText stream )
@@ -84,11 +80,8 @@ private string ReadNumber(ISourceText stream)
8480 }
8581 else
8682 {
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 ) ;
9285 }
9386 }
9487 else if ( char . IsDigit ( stream . Current ) )
@@ -103,11 +96,14 @@ private string ReadNumber(ISourceText stream)
10396 }
10497
10598 char peeked = stream . Peek ( - 1 ) ;
106- return peeked == '.' ? throw LangException . UnexpectedToken ( new Token
99+
100+ if ( peeked == '.' )
107101 {
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 ( ) ;
111107 }
112108
113109 private void ReadWhiteSpace ( ISourceText stream )
0 commit comments