simple method

  1. @override
Parser<Filter> simple()
override

Implementation

@override
Parser<Filter> simple() => super.simple().map((each) {
      var token = each[1] as Token;
      var operator = token.value as String;
      var attrName = each[0];
      var val = each[2];
      switch (operator) {
        case '=':
          return Filter.equals(attrName, val);
        case '~=':
          return Filter.approx(attrName, val);
        case '>=':
          return Filter.greaterOrEquals(attrName, val);
        case '<=':
          return Filter.lessOrEquals(attrName, val);
        default:
          throw Exception('Parser error (bad grammar spec). Report this bug');
      }
    });