Start of action system re-write
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import resolve, { toString } from '/imports/parser/resolve.js';
|
||||
|
||||
export default function evaluateCalculation(calculation, scope){
|
||||
const parseNode = calculation.parseNode;
|
||||
const fn = calculation._parseLevel;
|
||||
const calculationScope = {...calculation._localScope, ...scope};
|
||||
const {result: resultNode, context} = resolve(fn, parseNode, calculationScope);
|
||||
calculation.errors = context.errors;
|
||||
if (resultNode?.parseType === 'constant'){
|
||||
calculation.value = resultNode.value;
|
||||
} else if (resultNode?.parseType === 'error'){
|
||||
calculation.value = null;
|
||||
} else {
|
||||
calculation.value = toString(resultNode);
|
||||
}
|
||||
// remove the working fields
|
||||
delete calculation._parseLevel;
|
||||
delete calculation._localScope;
|
||||
}
|
||||
Reference in New Issue
Block a user