@@ -77,18 +77,7 @@ public bool IsProjection()
7777 #region Expressions
7878
7979 public void OnSubExpression ( )
80- {
81- Prolog ( ) ;
82-
83- System . Diagnostics . Debug . Assert ( expressions_ . Count >= 2 ) ;
84-
85- var right = expressions_ . Pop ( ) ;
86- var left = expressions_ . Pop ( ) ;
87-
88- var expression = new JmesPathSubExpression ( left , right ) ;
89-
90- expressions_ . Push ( expression ) ;
91- }
80+ => PopPush ( ( left , right ) => new JmesPathSubExpression ( left , right ) ) ;
9281
9382 #region index_expression
9483
@@ -128,18 +117,7 @@ public void OnListWildcardProjection()
128117 }
129118
130119 public void OnIndexExpression ( )
131- {
132- Prolog ( ) ;
133-
134- System . Diagnostics . Debug . Assert ( expressions_ . Count >= 2 ) ;
135-
136- var right = expressions_ . Pop ( ) ;
137- var left = expressions_ . Pop ( ) ;
138-
139- var expression = new JmesPathIndexExpression ( left , right ) ;
140-
141- expressions_ . Push ( expression ) ;
142- }
120+ => PopPush ( ( left , right ) => new JmesPathIndexExpression ( left , right ) ) ;
143121
144122 public void OnSliceExpression ( int ? start , int ? stop , int ? step )
145123 {
@@ -273,18 +251,7 @@ public void OnLiteralString(string literal)
273251 }
274252
275253 public void OnPipeExpression ( )
276- {
277- Prolog ( ) ;
278-
279- System . Diagnostics . Debug . Assert ( expressions_ . Count >= 2 ) ;
280-
281- var right = expressions_ . Pop ( ) ;
282- var left = expressions_ . Pop ( ) ;
283-
284- var expression = new JmesPathPipeExpression ( left , right ) ;
285-
286- expressions_ . Push ( expression ) ;
287- }
254+ => PopPush ( ( left , right ) => new JmesPathPipeExpression ( left , right ) ) ;
288255
289256 #region function_expression
290257
0 commit comments