grepc_c_mo_decl_() { grepc_c_m_decl_ "$1";
printf '%s' '(?!\()'; }
grepc_c_m_repl_() { printf '%s' '.*?(?<!\\)$'; }
+grepc_c_um_repl_() { printf '%s' '(?:(?![^\\]$).)*'"$1"'.*?(?<!\\)$'; }
grepc_c_e() { echo '(?s)^([\w[]+[\w\s]*)?\benum\b[ \t]*([\w \t[\]]|::)*\n*([ \t]*){[^}]*^[ \t]*'"$1"'\b\s*[=,].*?^\3}.*?;'; }
grepc_c_f_body_ "$1";
echo; }
grepc_c_um() { grepc_c_m_decl_ '\w+'
- echo '(\([^\)]*\))?(?:(?![^\\]$).)*'"$1"'.*?[^\\]$'; }
+ printf '%s' '(?:\([^\)]*\))?';
+ grepc_c_um_repl_ "$1";
+ echo; }
grepc_c_ut_su() { echo '(?s)^(?!^[ \t]*typedef\b)([\w[]([\w\s\(,\)[\]*]|::)*[\w\s\)*\]]\s+)?\b(struct|union)\b([\w \t[\]]|::)*\w+[ \t]*\n*([ \t]*){(?:(?!^\5?}).)*?'"$1"'.*?^\5}.*?;'; }
grepc_c_ut_td_simple() { echo '(?s)^[ \t]*typedef\s+[^{};]*'"$1"'[^{};]+;'; }
grepc_c_ut_td_su() { echo '(?s)^[ \t]*typedef\s+(struct|union)\b([\w \t[\]]|::)*\n*([ \t]*){(?:(?!^\3?}|^\s*typedef).)*'"$1"'(?:(?!^\3?}|^\s*typedef).)*^\3}\s*\w+;'; }