diff --git a/sh/main.sh b/sh/main.sh index 321d1dc..ff4c103 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -171,6 +171,13 @@ RWX_REGEX_BEGIN="^${RWX_REGEX_SPACES}" RWX_REGEX_OPEN="\ ${RWX_REGEX_SPACES}(${RWX_REGEX_SPACES})${RWX_REGEX_SPACES}{.*" +RWX_REGEX_TARGET_CONSTANT="\ +${RWX_REGEX_BEGIN}\\(${RWX_REGEX_CONSTANT}\\)${RWX_REGEX_SET}" +RWX_REGEX_TARGET_DOC="\ +${RWX_REGEX_BEGIN}# \\(.*\\)${RWX_REGEX_SPACES}\$" +RWX_REGEX_TARGET_FUNCTION="\ +${RWX_REGEX_BEGIN}\\(${RWX_REGEX_FUNCTION}\\)${RWX_REGEX_OPEN}" + rwx_parse_code() { # parse constants RWX_CONSTANTS="$(rwx_parse_constants)" @@ -180,12 +187,12 @@ rwx_parse_code() { rwx_parse_constants() { printf "%s\n" "${RWX_CODE}" | grep "${RWX_REGEX_BEGIN}${RWX_REGEX_CONSTANT}${RWX_REGEX_SET}" | - sed "s|${RWX_REGEX_BEGIN}\\(${RWX_REGEX_CONSTANT}\\)${RWX_REGEX_SET}|\\1|" + sed "s|${RWX_REGEX_TARGET_CONSTANT}|\\1|" } rwx_parse_functions() { printf "%s\n" "${RWX_CODE}" | grep "${RWX_REGEX_BEGIN}${RWX_REGEX_FUNCTION}${RWX_REGEX_OPEN}" | - sed "s|${RWX_REGEX_BEGIN}\\(${RWX_REGEX_FUNCTION}\\)${RWX_REGEX_OPEN}|\\1|" + sed "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|" } # ╭──────┬─────╮ diff --git a/sh/self.sh b/sh/self.sh index 4118d64..c214105 100644 --- a/sh/self.sh +++ b/sh/self.sh @@ -12,13 +12,13 @@ rwx_doc() { doc="" module="$(echo "${line}" | sed "s|#↓ \\(.*\\)|\\1|")" ;; - "#"*) + *"#"*) [ -n "${doc}" ] && doc="${doc} " - doc="${doc}${line}" + doc="${doc}$(echo "${line}" | sed "s|${RWX_REGEX_TARGET_DOC}|\\1|")" ;; *"="*) - constant="$(echo "${line}" | sed "s|^\\(.*\\)=.*|\\1|")" + constant="$(echo "${line}" | sed "s|${RWX_REGEX_TARGET_CONSTANT}|\\1|")" if [ "${constant}" = "${name}" ]; then echo "${doc}" return @@ -27,7 +27,7 @@ rwx_doc() { fi ;; *"("*")"*"{"*) - func="$(echo "${line}" | sed "s|^\\(.*\\)() {.*|\\1|")" + func="$(echo "${line}" | sed "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|")" if [ "${func}" = "${name}" ]; then echo "${doc}" return