@@ -58,13 +58,10 @@ public static Expression Parse(ParserContext context)
5858 expression = Expression . Parse ( context ) ;
5959 break ;
6060 case Operator { Character : '-' } :
61- context . MoveNextRequired ( ) ;
62- expression = Parse ( context ) ;
63- expression = new Subtract ( new Value ( new DataValue ( 0 , DataType . BuiltInDbInt32 ) ) , expression ) ;
61+ expression = new Subtract ( new Value ( new DataValue ( 0 , DataType . BuiltInDbInt32 ) ) , context ) ;
6462 break ;
6563 case Operator { Character : '(' } :
66- context . MoveNextRequired ( ) ;
67- expression = new Parenthesized ( Parse ( context ) ) ;
64+ expression = new Parenthesized ( context ) ;
6865 break ;
6966 default :
7067 throw SimulatedSqlException . SyntaxErrorNear ( context ) ;
@@ -75,36 +72,28 @@ public static Expression Parse(ParserContext context)
7572 switch ( context . GetNextOptional ( ) )
7673 {
7774 case Operator { Character : '+' } :
78- context . MoveNextRequired ( ) ;
79- expression = new Add ( expression , Parse ( context ) ) ;
75+ expression = new Add ( expression , context ) ;
8076 break ;
8177 case Operator { Character : '-' } :
82- context . MoveNextRequired ( ) ;
83- expression = new Subtract ( expression , Parse ( context ) ) ;
78+ expression = new Subtract ( expression , context ) ;
8479 break ;
8580 case Operator { Character : '*' } :
86- context . MoveNextRequired ( ) ;
87- expression = new Multiply ( expression , Parse ( context ) ) ;
81+ expression = new Multiply ( expression , context ) ;
8882 break ;
8983 case Operator { Character : '/' } :
90- context . MoveNextRequired ( ) ;
91- expression = new Divide ( expression , Parse ( context ) ) ;
84+ expression = new Divide ( expression , context ) ;
9285 break ;
9386 case Operator { Character : '%' } :
94- context . MoveNextRequired ( ) ;
95- expression = new Modulus ( expression , Parse ( context ) ) ;
87+ expression = new Modulus ( expression , context ) ;
9688 break ;
9789 case Operator { Character : '&' } :
98- context . MoveNextRequired ( ) ;
99- expression = new BitwiseAnd ( expression , Parse ( context ) ) ;
90+ expression = new BitwiseAnd ( expression , context ) ;
10091 break ;
10192 case Operator { Character : '|' } :
102- context . MoveNextRequired ( ) ;
103- expression = new BitwiseOr ( expression , Parse ( context ) ) ;
93+ expression = new BitwiseOr ( expression , context ) ;
10494 break ;
10595 case Operator { Character : '^' } :
106- context . MoveNextRequired ( ) ;
107- expression = new BitwiseExclusiveOr ( expression , Parse ( context ) ) ;
96+ expression = new BitwiseExclusiveOr ( expression , context ) ;
10897 break ;
10998
11099 case Operator { Character : '.' } :
@@ -120,10 +109,7 @@ public static Expression Parse(ParserContext context)
120109 case Operator { Character : '(' } :
121110 {
122111 if ( expression is not Reference reference )
123- {
124- expression = new Parenthesized ( Parse ( context ) ) ;
125112 break ;
126- }
127113
128114 context . MoveNextRequired ( ) ; // Move past (
129115 expression = ResolveBuiltIn ( reference . Name , context ) ;
0 commit comments