parse method

  1. @override
ParseResult parse(
  1. String source
)
override

Attempts to parse the source string matching this element.

Returns a ParseResult containing the parsed lexeme and remaining string on success. On failure, returns a failed ParseResult.

Implementation

@override
ParseResult parse(String source) {
  final result = entryRule.parse(source);
  if (result.remaining.isNotEmpty) {
    // The full source was not consumed so the parsing has failed
    return ParseResult(
      false,
      result.remaining,
      lexeme: result.lexeme,
      ruleName: name,
      element: toString(),
      stack: Stack<ParseResult>()..push(result),
    );
  }
  return ParseResult(
    result.success,
    result.remaining,
    lexeme: result.lexeme,
    ruleName: name,
    element: toString(),
    stack: Stack<ParseResult>()..push(result),
  );
}