public XPathLocationExpressionEvaluator(ILocationExpression locationExpression, XPathCompiledExpression compiledExpression) { _locationExpression = locationExpression; _compiledExpression = compiledExpression; if (_locationExpression.Is <XPathLocationExpression>(out var xPathLocationExpression)) { _assignType = xPathLocationExpression.AssignType; _attribute = xPathLocationExpression.Attribute; } else { _assignType = XPathAssignType.ReplaceChildren; } }
public EcmaScriptLocationExpressionEvaluator(ILocationExpression locationExpression, Program program, Expression?leftExpression) { _locationExpression = locationExpression; _program = program; _leftExpression = leftExpression; switch (leftExpression) { case null: break; case JintIdentifier identifier: _name = identifier.Name; _declare = CreateDeclareStatement(identifier); break; case MemberExpression memberExpression: _name = ((JintIdentifier)memberExpression.Property).Name; break; default: throw Infra.Unexpected <Exception>(leftExpression); } }
public void SetLocation(ILocationExpression location) => _location = location ?? throw new ArgumentNullException(nameof(location));
protected override void Visit(ref ILocationExpression expression) { expression = new Evaluator(expression.Expression); }
protected override void Visit(ref ILocationExpression expression) => AddErrorMessage(expression, Resources.ErrorMessage_LocationExpressionNotSupportedForNull);
public LocationExpressionNode(ILocationExpression locationExpression) { Infra.NotNull(locationExpression.Expression); _locationExpression = locationExpression; }