tree-sitter-markdown-updated 0.1.0

Markdown grammar for tree-sitter
Documentation
#include "./predicate.h"

#include "./predicate_util.generated.h"

namespace tree_sitter_markdown {

bool is_wsp_chr(const LexedCharacter c) { return c == ' ' || c == '\t'; }
bool is_lbk_chr(const LexedCharacter c) { return c == '\n' || c == '\r'; }
bool is_eof_chr(const LexedCharacter c) { return c == 0; }
bool is_eol_chr(const LexedCharacter c) { return is_lbk_chr(c) || is_eof_chr(c); }
bool is_wht_chr(const LexedCharacter c) { return is_wsp_chr(c) || is_eol_chr(c); }
bool is_non_wht_chr(const LexedCharacter c) { return !is_wht_chr(c); }
bool is_num_chr(const LexedCharacter c) { return c >= '0' && c <= '9'; }
bool is_hex_chr(const LexedCharacter c) { return is_num_chr(c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); }
bool is_asc_ltr_chr(const LexedCharacter c) { return is_low_asc_ltr_chr(c) || is_upp_asc_ltr_chr(c); }
bool is_low_asc_ltr_chr(const LexedCharacter c) { return c >= 'a' && c <= 'z'; }
bool is_upp_asc_ltr_chr(const LexedCharacter c) { return c >= 'A' && c <= 'Z'; }
bool is_asc_pun_chr(const LexedCharacter c) {
  return c == '!' || c == '"' || c == '#' || c == '$' || c == '%' || c == '&'
      || c == '\'' || c == '(' || c == ')' || c == '*' || c == '+' || c == ','
      || c == '-' || c == '.' || c == '/' || c == ':' || c == ';' || c == '<'
      || c == '=' || c == '>' || c == '?' || c == '@' || c == '[' || c == '\\'
      || c == ']' || c == '^' || c == '_' || c == '`' || c == '{' || c == '|'
      || c == '}' || c == '~';
}
bool is_uni_pun_chr(const LexedCharacter c) {
  return is_asc_pun_chr(c) || is_unicode_Pc_Pd_Pe_Pf_Pi_Po_Ps(c);
}
bool is_asc_wht_chr(const LexedCharacter c) {
  return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r';
}
bool is_uni_wht_chr(const LexedCharacter c) {
  return is_unicode_Zs(c) || c == '\t' || c == '\r' || c == '\n' || c == '\f';
}
bool is_lfk_dlm_run(const LexedCharacter left, const LexedCharacter right) {
  return is_uni_pun_chr(right)
    ? (left == 0 || is_uni_wht_chr(left)) || is_uni_pun_chr(left)
    : !(right == 0 || is_uni_wht_chr(right));
}
bool is_rfk_dlm_run(const LexedCharacter left, const LexedCharacter right) {
  return is_uni_pun_chr(left)
    ? (right == 0 || is_uni_wht_chr(right)) || is_uni_pun_chr(right)
    : !(left == 0 || is_uni_wht_chr(left));
}
bool can_opn_asr(const LexedCharacter left, const LexedCharacter right) {
  return is_lfk_dlm_run(left, right);
}
bool can_cls_asr(const LexedCharacter left, const LexedCharacter right) {
  return is_rfk_dlm_run(left, right);
}
bool can_opn_usc(const LexedCharacter left, const LexedCharacter right) {
  return is_lfk_dlm_run(left, right)
      && (!is_rfk_dlm_run(left, right) || is_uni_pun_chr(left));
}
bool can_cls_usc(const LexedCharacter left, const LexedCharacter right) {
  return is_rfk_dlm_run(left, right)
      && (!is_lfk_dlm_run(left, right) || is_uni_pun_chr(right));
}

bool is_aut_lnk_eml_dmn_sid_chr(const LexedCharacter c) {
  return is_asc_ltr_chr(c) || is_num_chr(c);
}
bool is_aut_lnk_eml_dmn_mid_chr(const LexedCharacter c) {
  return is_aut_lnk_eml_dmn_sid_chr(c) || c == '-';
}

bool is_ext_aut_lnk_bgn(const LexedCharacter cur_chr, const LexedCharacter lka_chr) {
  return (is_wht_chr(cur_chr) || cur_chr == '*' || cur_chr == '_' || cur_chr == '-' || cur_chr == '(')
      && (is_asc_ltr_chr(lka_chr) || is_num_chr(lka_chr) || lka_chr == '.' || lka_chr == '-' || lka_chr == '_' || lka_chr == '+');
}

}