scanAfterElementDecoratorValue method

  1. @override
RecoverySolution scanAfterElementDecoratorValue(
  1. NgSimpleToken current,
  2. NgTokenReversibleReader<Object> reader
)
override

Implementation

@override
RecoverySolution scanAfterElementDecoratorValue(
    NgSimpleToken current, NgTokenReversibleReader<Object> reader) {
  NgScannerState? returnState;
  NgToken? returnToken;
  var type = current.type;
  var offset = current.offset;

  if (type == NgSimpleTokenType.openBracket ||
      type == NgSimpleTokenType.openParen ||
      type == NgSimpleTokenType.openBanana ||
      type == NgSimpleTokenType.hash ||
      type == NgSimpleTokenType.star ||
      type == NgSimpleTokenType.atSign ||
      type == NgSimpleTokenType.identifier ||
      type == NgSimpleTokenType.closeBracket ||
      type == NgSimpleTokenType.closeParen ||
      type == NgSimpleTokenType.closeBanana ||
      type == NgSimpleTokenType.equalSign ||
      type == NgSimpleTokenType.doubleQuote ||
      type == NgSimpleTokenType.singleQuote) {
    reader.putBack(current);
    returnState = NgScannerState.scanElementDecorator;
    returnToken = NgToken.generateErrorSynthetic(
        offset, NgTokenType.beforeElementDecorator,
        lexeme: ' ');
  } else if (type == NgSimpleTokenType.eof ||
      type == NgSimpleTokenType.commentBegin ||
      type == NgSimpleTokenType.openTagStart ||
      type == NgSimpleTokenType.closeTagStart) {
    reader.putBack(current);
    returnToken =
        NgToken.generateErrorSynthetic(offset, NgTokenType.openElementEnd);
    returnState = NgScannerState.scanStart;
  }

  return RecoverySolution(returnState, returnToken);
}