Ejemplo n.º 1
0
    // Literal := ''' [^'\n\r]* ''' S
    private State DoParseLiteral1Rule(State _state, List <Result> _outResults)
    {
        State         _start  = _state;
        List <Result> results = new List <Result>();

        _state = DoSequence(_state, results,
                            delegate(State s, List <Result> r) { return(DoParseLiteral(s, r, "'")); },
                            delegate(State s, List <Result> r) { return(DoRepetition(s, r, 0, 2147483647,
                                                                                     delegate(State s2, List <Result> r2) { return DoParseRange(s2, r2, true, "'\n\r", string.Empty, null, "[^'\n\r]"); })); },
                            delegate(State s, List <Result> r) { return(DoParseLiteral(s, r, "'")); },
                            delegate(State s, List <Result> r) { return(DoParse(s, r, "S")); });

        if (_state.Parsed)
        {
            Predicate value = results.Count > 0 ? results[0].Value : default(Predicate);
            string    text  = m_input.Substring(_start.Index, _state.Index - _start.Index);
            value = new StringPredicate(text.Trim());
            if (text != null)
            {
                _outResults.Add(new Result(this, _start.Index, _state.Index - _start.Index, m_input, value));
            }
        }
        else
        {
            string expected;
            expected = "string literal";
            if (expected != null)
            {
                _state = new State(_start.Index, false, ErrorSet.Combine(_start.Errors, new ErrorSet(_state.Errors.Index, expected)));
            }
        }

        return(_state);
    }
Ejemplo n.º 2
0
 public void SetUp()
 {
     _value     = "ab";
     _rows      = new List <Row>();
     _column    = new ColumnBuilder().Build();
     _predicate = new StringPredicate();
 }
Ejemplo n.º 3
0
        public IEnumerable <Vehicle> GetVehicles(string regNum, StringPredicate regPred, string color,
                                                 StringPredicate colorPred, int wheels, string manufacturer, StringPredicate manufacturerPred)
        {
            IEnumerable <Vehicle> result = Garage;

            if (regPred != null)
            {
                result = result.Where(c => regPred(c.RegistrationNumber, regNum.ToUpper()));
            }
            if (colorPred != null)
            {
                result = result.Where(c => colorPred(c.Color, color.ToUpper()));
            }
            if (wheels > 0)
            {
                result = result.Where(c => c.Wheels == wheels);
            }
            if (manufacturerPred != null)
            {
                result = result.Where(c => manufacturerPred(c.Manufacturer, manufacturer.ToUpper()));
            }
            return(result);
        }
Ejemplo n.º 4
0
 public IEnumerable <Vehicle> GetVehiclesByManufacturer(string manufact, StringPredicate pred)
 {
     return(Garage.Where(c => pred(c.Manufacturer, manufact)));
 }
Ejemplo n.º 5
0
 public IEnumerable <Vehicle> GetVehiclesByColor(string color, StringPredicate pred)
 {
     return(Garage.Where(c => pred(c.Color, color)));
 }