evaluate(source) {
		const ast = JavascriptParser._parse(`(${source})`, {
			sourceType: this.sourceType,
			locations: false
		});
		if (ast.body.length !== 1 || ast.body[0].type !== "ExpressionStatement") {
			throw new Error("evaluate: Source is not a expression");
		}
		return this.evaluateExpression(ast.body[0].expression);
	}
@param {string} source source code
@returns {BasicEvaluatedExpression} evaluation result