示例#1
0
        public override QsiParameter FindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
        {
            if (node.Type == QsiParameterType.Index && node.Index.HasValue)
            {
                return(parameters[node.Index.Value - 1]);
            }

            return(base.FindParameter(parameters, node));
        }
示例#2
0
        public virtual QsiParameter FindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
        {
            if (parameters == null)
            {
                return(null);
            }

            if (node.Type == QsiParameterType.Index)
            {
                if (!node.Index.HasValue)
                {
                    throw new QsiException(QsiError.Syntax);
                }

                if (node.Index < 0 || node.Index >= parameters.Length)
                {
                    throw new QsiException(QsiError.ParameterIndexOutOfRange, node.Index);
                }

                return(parameters[node.Index.Value]);
            }

            if (string.IsNullOrEmpty(node.Name))
            {
                throw new QsiException(QsiError.Syntax);
            }

            var parameter = parameters.FirstOrDefault(p => p.Name == node.Name);

            if (parameter == null)
            {
                throw new QsiException(QsiError.ParameterNotFound, node.Name);
            }

            return(parameter);
        }
示例#3
0
 public override QsiParameter FindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
 {
     return(VendorDebugger.HookFindParameter(parameters, node));
 }
示例#4
0
 public QsiParameter FindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
 {
     return(parameters[0]);
 }
示例#5
0
 internal static QsiParameter HookFindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
 {
     return(new(node.Type, node.Name ?? node.Index?.ToString() ?? "DBG", "Hooked"));
 }
示例#6
0
 public QsiParameter FindParameter(QsiParameter[] parameters, IQsiBindParameterExpressionNode node)
 {
     return(_service.FindParameter(parameters, node));
 }