call method

  1. @override
Object? call(
  1. Interpreter interpreter,
  2. List<Object?> arguments,
  3. Map<Symbol, Object?> namedArguments
)
override

Implementation

@override
Object? call(Interpreter interpreter, List<Object?> arguments,
    Map<Symbol, Object?> namedArguments) {
  if (arguments.isEmpty) {
    throw "Argument must be at least 1.";
  }
  var pattern = arguments[0] as String;
  bool unicode = false;
  var unicodeParsed = namedArguments[const Symbol('unicode')];
  if (unicodeParsed != null) {
    unicode = unicodeParsed as bool;
  }
  bool multiLine = false;
  var multiLineParsed = namedArguments[const Symbol('multiLine')];
  if (multiLineParsed != null) {
    multiLine = multiLineParsed as bool;
  }
  bool caseSensitive = true;
  var caseSensitiveParsed = namedArguments[const Symbol('caseSensitive')];
  if (caseSensitiveParsed != null) {
    caseSensitive = caseSensitiveParsed as bool;
  }
  bool dotAll = false;
  var dotAllParsed = namedArguments[const Symbol('dotAll')];
  if (dotAllParsed != null) {
    dotAll = dotAllParsed as bool;
  }
  return RegExpIns(RegExp(pattern,
      multiLine: multiLine,
      unicode: unicode,
      caseSensitive: caseSensitive,
      dotAll: dotAll));
}