process method

TagserResult? process(
  1. ProcessMessage msg,
  2. TagserContext context
)

Implementation

TagserResult? process(ProcessMessage msg, TagserContext context) {
  final charCode = msg.charCode;

  if (charCode == charEos) {
    return TagserResult(
      err: TagserError(
          code: errorUnexpectedEos, text: getError(errorUnexpectedEos, null)),
    );
  } else if (isFirstChar) {
    isFirstChar = false;

    if (charCode == charQuote || charCode == charSingleQuote) {
      _quote = charCode!;
    } else {
      return TagserResult(
        err: TagserError(
          code: errorAttrValueMalformed,
          text: getError(errorAttrValueMalformed, {}),
        ),
      );
    }
  } else {
    if (charCode == _quote) {
      return TagserResult(
        pop: true,
        message: NotifyMessage(
            type: notifyAttrValueResult, value: _value, charCode: charCode),
      );
    } else {
      _value += String.fromCharCode(charCode!);
    }
  }

  return null;
}