From 1d6a7bab9b0f4c9a9c4d73a6d109b0d1ce08f7d9 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sun, 6 Jul 2025 11:02:50 +0200 Subject: [PATCH] cache/variables --- sh/main.sh | 21 +++++++++++++++++---- sh/self.sh | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index d26159a..72ebd54 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -172,17 +172,23 @@ RWX_REGEX_CONSTANT="[_A-Z][_0-9A-Z]*" RWX_REGEX_FUNCTION="[_A-Za-z][_0-9A-Za-z]*" RWX_REGEX_SET="=.*" RWX_REGEX_SPACES="[[:space:]]*" +RWX_REGEX_VARIABLE="[_a-z][_0-9a-z]*" -RWX_REGEX_BEGIN="^${RWX_REGEX_SPACES}" +RWX_REGEX_BEGIN="^" 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_BEGIN}${RWX_REGEX_SPACES}# \\(.*\\)${RWX_REGEX_SPACES}\$" RWX_REGEX_TARGET_FUNCTION="\ ${RWX_REGEX_BEGIN}\\(${RWX_REGEX_FUNCTION}\\)${RWX_REGEX_OPEN}" +RWX_REGEX_TARGET_VARIABLE="\ +${RWX_REGEX_BEGIN}\\(${RWX_REGEX_VARIABLE}\\)${RWX_REGEX_SET}" + +# cache for code variables +_rwx_code_variables="" rwx_parse_code() { # parse aliases @@ -197,6 +203,8 @@ EOF RWX_CONSTANTS="$(rwx_parse_constants)" # parse functions RWX_FUNCTIONS="$(rwx_parse_functions)" + # parse variables + _rwx_code_variables="$(rwx_parse_variables)" } rwx_parse_aliases() { printf "%s" "${_rwx_code}" | @@ -205,18 +213,23 @@ rwx_parse_aliases() { --file "${RWX_AWK}" } rwx_parse_constants() { - printf "%s\n" "${_rwx_code}" | + printf "%s" "${_rwx_code}" | sed --silent "s|${RWX_REGEX_TARGET_CONSTANT}|\\1|p" } rwx_parse_functions() { - printf "%s\n" "${_rwx_code}" | + printf "%s" "${_rwx_code}" | sed --silent "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|p" } +rwx_parse_variables() { + printf "%s" "${_rwx_code}" | + sed --silent "s|${RWX_REGEX_TARGET_VARIABLE}|\\1|p" +} # ╭──────┬──────╮ # │ main │ test │ # ╰──────┴──────╯ +#= rt rwx_test() { local item # TODO CODE diff --git a/sh/self.sh b/sh/self.sh index b406bfc..e2c30f7 100644 --- a/sh/self.sh +++ b/sh/self.sh @@ -7,12 +7,30 @@ rwx_code() { echo "${_rwx_code}" } +# show the cached aliases +#= rca +rwx_code_aliases() { + echo "${RWX_ALIASES}" +} + # show the cached constants #= rcc rwx_code_constants() { echo "${RWX_CONSTANTS}" } +# show the cached functions +#= rcf +rwx_code_functions() { + echo "${RWX_FUNCTIONS}" +} + +# show the cached variables +#= rcv +rwx_code_variables() { + echo "${_rwx_code_variables}" +} + # meta doc #= rd rwx_doc() {