functionsParser function

Parser<Expression<Object>> functionsParser({
  1. required ParserContext context,
  2. required SettableParser loopback,
  3. required bool verboseErrors,
})

Implementation

Parser<Expression> functionsParser({
  required ParserContext context,
  required SettableParser loopback,
  required bool verboseErrors,
}) {
  var functions = context.engine.functionGroups
      .expand((function) => function)
      .toList();
  var parser = ChoiceParser<Expression>(
    functions.map(
      (function) => functionParser(
        context: context,
        function: function,
        loopbackParser: loopback,
      ),
    ),
    failureJoiner: selectFarthest,
  );
  if (verboseErrors) {
    return parser;
  } else {
    return OverrideMessageParser(parser, 'function expected');
  }
}