@@ -139,7 +139,7 @@ private Result<InfixExpression> ParseFilterStatement()
139139
140140 var statement = new InfixExpression ( _currentToken , identifier , _currentToken . Literal ) ;
141141
142- if ( ! PeekTokenIn ( TokenType . STRING , TokenType . INT ) )
142+ if ( ! PeekTokenIn ( TokenType . STRING , TokenType . INT , TokenType . GUID ) )
143143 {
144144 return Result . Fail ( "Invalid value type within filter" ) ;
145145 }
@@ -153,13 +153,19 @@ private Result<InfixExpression> ParseFilterStatement()
153153
154154 switch ( _currentToken . Type )
155155 {
156+ case TokenType . GUID :
157+ if ( Guid . TryParse ( _currentToken . Literal , out var guidValue ) )
158+ {
159+ statement . Right = new GuidLiteral ( _currentToken , guidValue ) ;
160+ }
161+ break ;
156162 case TokenType . STRING :
157163 statement . Right = new StringLiteral ( _currentToken , _currentToken . Literal ) ;
158164 break ;
159165 case TokenType . INT :
160- if ( int . TryParse ( _currentToken . Literal , out var value ) )
166+ if ( int . TryParse ( _currentToken . Literal , out var intValue ) )
161167 {
162- statement . Right = new IntegerLiteral ( _currentToken , value ) ;
168+ statement . Right = new IntegerLiteral ( _currentToken , intValue ) ;
163169 }
164170 break ;
165171 }
@@ -185,11 +191,6 @@ private bool CurrentTokenIs(TokenType token)
185191 return _currentToken . Type == token ;
186192 }
187193
188- private bool PeekTokenIs ( TokenType token )
189- {
190- return _peekToken . Type == token ;
191- }
192-
193194 private bool PeekTokenIn ( params TokenType [ ] token )
194195 {
195196 return token . Contains ( _peekToken . Type ) ;
0 commit comments