scan method

  1. @override
bool scan(
  1. GrammarContext<S> context
)
override

Implementation

@override
bool scan(GrammarContext<S> context) {
  final begin = this.begin;
  if (begin != null) {
    if ((!begin.scan(context) && begin.isRequired) ||
        context.scanner.isDone) {
      return false;
    }
  }

  out:
  while (!context.scanner.isDone) {
    if (end?.scan(context) == true) {
      break out;
    }

    for (final include in includes) {
      if (include.scan(context)) {
        continue out;
      }
    }

    end?.scan(context);
    break out;
  }

  return check(context);
}