Skip to content

Commit 2c75fd2

Browse files
committed
Preserve ws
1 parent 99fc99d commit 2c75fd2

1 file changed

Lines changed: 91 additions & 91 deletions

File tree

src/main/java/com/dashjoin/jsonata/Jsonata.java

Lines changed: 91 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)