isLineTerminator function

bool isLineTerminator(
  1. String chr
)

Line termination is a critical piece to parsing Traindown. Here we look for the explicit codepoints that indicate EOL.

Implementation

bool isLineTerminator(String chr) {
  List<int> codeUnits = chr.codeUnits;

  if (chr == Token.EOF ||
      // NOTE: This is a secondary test for EOF.
      (codeUnits.isNotEmpty && codeUnits[0] == 0) ||
      (codeUnits.isNotEmpty && codeUnits[0] == 59) ||
      (codeUnits.isNotEmpty && codeUnits[0] == 10) ||
      (codeUnits.isNotEmpty && codeUnits[0] == 13) ||
      (codeUnits.length == 2 && codeUnits[0] == 13 && codeUnits[1] == 10)) {
    return true;
  }

  return false;
}