Grammar constructor

Grammar(
  1. Map<String, Object?> rawGrammar, {
  2. required RegexEngine engine,
  3. GrammarLookup? lookup,
  4. InjectionLookup? injections,
  5. int maxLineLength = 20000,
})

Compiles rawGrammar for engine. lookup finds grammars it includes by scope name and injections the grammars injected into it. Highlighter.grammar sets these up; create a Grammar directly only to manage grammars yourself.

Implementation

Grammar(
  Map<String, Object?> rawGrammar, {
  required RegexEngine engine,
  GrammarLookup? lookup,
  InjectionLookup? injections,
  this.maxLineLength = 20000,
}) : _engine = engine,
     _lookup = lookup,
     _injectionLookup = injections,
     _source = rawGrammar,
     scopeName = _scopeNameOf(rawGrammar) {
  _raw = _initGrammar(rawGrammar, null);
  _factory = RuleFactory(_RuleTable(this));
}