'use strict'; var charProps = require('char-props'); const esprima = require('esprima'); const Expression = require('../ast/Expression'); var compiler = require('../'); function convert(node) { var builder = compiler.defaultBuilder; if (Array.isArray(node)) { let nodes = node; for (let i=0; i= 0) { var srcCharProps = charProps(src); errorIndex--; // Account for extra paren added to start let line = srcCharProps.lineAt(errorIndex)+1; let column = srcCharProps.columnAt(errorIndex)+1; errorMessage += ' [Line ' + line + ', Col: ' + column + ']'; } var wrappedError = new Error('Invalid JavaScript expression: ' + src + ' - ' + errorMessage); wrappedError.index = errorIndex; wrappedError.src = src; wrappedError.code = 'ERR_INVALID_JAVASCRIPT_EXPRESSION'; throw wrappedError; } var converted = convert(jsAST); if (converted == null) { converted = new Expression({value: src}); } return converted; } module.exports = parseExpression;