@@ -150,102 +150,102 @@ Object _evaluate(Symbol expr, Object input, Frame environment) {
150150 this .input = input ;
151151 this .environment = environment ;
152152
153- if (parser .dbg ) System .out .println ("eval expr=" +expr +" type=" +expr .type );//+" input="+input);
153+ if (parser .dbg ) System .out .println ("eval expr=" +expr +" type=" +expr .type );//+" input="+input);
154154
155- var entryCallback = environment .lookup ("__evaluate_entry" );
156- if (entryCallback !=null ) {
157- ((EntryCallback )entryCallback ).callback (expr , input , environment );
158- }
159-
160- if (expr .type !=null )
161- switch (expr .type ) {
162- case "path" :
163- result = /* await */ evaluatePath (expr , input , environment );
164- break ;
165- case "binary" :
166- result = /* await */ evaluateBinary (expr , input , environment );
167- break ;
168- case "unary" :
169- result = /* await */ evaluateUnary (expr , input , environment );
170- break ;
171- case "name" :
172- result = evaluateName (expr , input , environment );
173- if (parser .dbg ) System .out .println ("evalName " +result );
174- break ;
175- case "string" :
176- case "number" :
177- case "value" :
178- result = evaluateLiteral (expr ); //, input, environment);
179- break ;
180- case "wildcard" :
181- result = evaluateWildcard (expr , input ); //, environment);
182- break ;
183- case "descendant" :
184- result = evaluateDescendants (expr , input ); //, environment);
185- break ;
186- case "parent" :
187- result = environment .lookup (expr .slot .label );
188- break ;
189- case "condition" :
190- result = /* await */ evaluateCondition (expr , input , environment );
191- break ;
192- case "block" :
193- result = /* await */ evaluateBlock (expr , input , environment );
194- break ;
195- case "bind" :
196- result = /* await */ evaluateBindExpression (expr , input , environment );
197- break ;
198- case "regex" :
199- result = evaluateRegex (expr ); //, input, environment);
200- break ;
201- case "function" :
202- result = /* await */ evaluateFunction (expr , input , environment , Utils .NONE );
203- break ;
204- case "variable" :
205- result = evaluateVariable (expr , input , environment );
206- break ;
207- case "lambda" :
208- result = evaluateLambda (expr , input , environment );
209- break ;
210- case "partial" :
211- result = /* await */ evaluatePartialApplication (expr , input , environment );
212- break ;
213- case "apply" :
214- result = /* await */ evaluateApplyExpression (expr , input , environment );
215- break ;
216- case "transform" :
217- result = evaluateTransformExpression (expr , input , environment );
218- break ;
219- }
220-
221- if (expr .predicate !=null )
222- for (var ii = 0 ; ii < expr .predicate .size (); ii ++) {
223- result = /* await */ evaluateFilter (expr .predicate .get (ii ).expr , result , environment );
224- }
225-
226- if (!expr .type .equals ("path" ) && expr .group !=null ) {
227- result = /* await */ evaluateGroupExpression (expr .group , result , environment );
155+ var entryCallback = environment .lookup ("__evaluate_entry" );
156+ if (entryCallback !=null ) {
157+ ((EntryCallback )entryCallback ).callback (expr , input , environment );
158+ }
159+
160+ if (expr .type !=null )
161+ switch (expr .type ) {
162+ case "path" :
163+ result = /* await */ evaluatePath (expr , input , environment );
164+ break ;
165+ case "binary" :
166+ result = /* await */ evaluateBinary (expr , input , environment );
167+ break ;
168+ case "unary" :
169+ result = /* await */ evaluateUnary (expr , input , environment );
170+ break ;
171+ case "name" :
172+ result = evaluateName (expr , input , environment );
173+ if (parser .dbg ) System .out .println ("evalName " +result );
174+ break ;
175+ case "string" :
176+ case "number" :
177+ case "value" :
178+ result = evaluateLiteral (expr ); //, input, environment);
179+ break ;
180+ case "wildcard" :
181+ result = evaluateWildcard (expr , input ); //, environment);
182+ break ;
183+ case "descendant" :
184+ result = evaluateDescendants (expr , input ); //, environment);
185+ break ;
186+ case "parent" :
187+ result = environment .lookup (expr .slot .label );
188+ break ;
189+ case "condition" :
190+ result = /* await */ evaluateCondition (expr , input , environment );
191+ break ;
192+ case "block" :
193+ result = /* await */ evaluateBlock (expr , input , environment );
194+ break ;
195+ case "bind" :
196+ result = /* await */ evaluateBindExpression (expr , input , environment );
197+ break ;
198+ case "regex" :
199+ result = evaluateRegex (expr ); //, input, environment);
200+ break ;
201+ case "function" :
202+ result = /* await */ evaluateFunction (expr , input , environment , Utils .NONE );
203+ break ;
204+ case "variable" :
205+ result = evaluateVariable (expr , input , environment );
206+ break ;
207+ case "lambda" :
208+ result = evaluateLambda (expr , input , environment );
209+ break ;
210+ case "partial" :
211+ result = /* await */ evaluatePartialApplication (expr , input , environment );
212+ break ;
213+ case "apply" :
214+ result = /* await */ evaluateApplyExpression (expr , input , environment );
215+ break ;
216+ case "transform" :
217+ result = evaluateTransformExpression (expr , input , environment );
218+ break ;
219+ }
220+
221+ if (expr .predicate !=null )
222+ for (var ii = 0 ; ii < expr .predicate .size (); ii ++) {
223+ result = /* await */ evaluateFilter (expr .predicate .get (ii ).expr , result , environment );
228224 }
229-
230- var exitCallback = environment .lookup ("__evaluate_exit" );
231- if (exitCallback !=null ) {
232- ((ExitCallback )exitCallback ).callback (expr , input , environment , result );
225+
226+ if (!expr .type .equals ("path" ) && expr .group !=null ) {
227+ result = /* await */ evaluateGroupExpression (expr .group , result , environment );
228+ }
229+
230+ var exitCallback = environment .lookup ("__evaluate_exit" );
231+ if (exitCallback !=null ) {
232+ ((ExitCallback )exitCallback ).callback (expr , input , environment , result );
233+ }
234+
235+ // mangle result (list of 1 element -> 1 element, empty list -> null)
236+ if (result !=null && Utils .isSequence (result ) && !((JList )result ).tupleStream ) {
237+ JList _result = (JList )result ;
238+ if (expr .keepArray ) {
239+ _result .keepSingleton = true ;
233240 }
234-
235- // mangle result (list of 1 element -> 1 element, empty list -> null)
236- if (result !=null && Utils .isSequence (result ) && !((JList )result ).tupleStream ) {
237- JList _result = (JList )result ;
238- if (expr .keepArray ) {
239- _result .keepSingleton = true ;
240- }
241- if (_result .isEmpty ()) {
242- result = null ;
243- } else if (_result .size () == 1 ) {
244- result = _result .keepSingleton ? _result : _result .get (0 );
245- }
241+ if (_result .isEmpty ()) {
242+ result = null ;
243+ } else if (_result .size () == 1 ) {
244+ result = _result .keepSingleton ? _result : _result .get (0 );
246245 }
246+ }
247247
248- return result ;
248+ return result ;
249249 }
250250
251251 /**
0 commit comments