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;
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 public void SetLocation(ILocationExpression location) => _location = location ?? throw new ArgumentNullException(nameof(location));
Exemplo n.º 4
0
 protected override void Visit(ref ILocationExpression expression)
 {
     expression = new Evaluator(expression.Expression);
 }
Exemplo n.º 5
0
 protected override void Visit(ref ILocationExpression expression) => AddErrorMessage(expression, Resources.ErrorMessage_LocationExpressionNotSupportedForNull);
Exemplo n.º 6
0
        public LocationExpressionNode(ILocationExpression locationExpression)
        {
            Infra.NotNull(locationExpression.Expression);

            _locationExpression = locationExpression;
        }