cache/variables

This commit is contained in:
Marc Beninca 2025-07-06 11:02:50 +02:00
parent 7c65fb2e25
commit 1d6a7bab9b
Signed by: marc.beninca
GPG key ID: 9C7613450C80C24F
2 changed files with 35 additions and 4 deletions

View file

@ -172,17 +172,23 @@ RWX_REGEX_CONSTANT="[_A-Z][_0-9A-Z]*"
RWX_REGEX_FUNCTION="[_A-Za-z][_0-9A-Za-z]*" RWX_REGEX_FUNCTION="[_A-Za-z][_0-9A-Za-z]*"
RWX_REGEX_SET="=.*" RWX_REGEX_SET="=.*"
RWX_REGEX_SPACES="[[:space:]]*" 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_OPEN="\
${RWX_REGEX_SPACES}(${RWX_REGEX_SPACES})${RWX_REGEX_SPACES}{.*" ${RWX_REGEX_SPACES}(${RWX_REGEX_SPACES})${RWX_REGEX_SPACES}{.*"
RWX_REGEX_TARGET_CONSTANT="\ RWX_REGEX_TARGET_CONSTANT="\
${RWX_REGEX_BEGIN}\\(${RWX_REGEX_CONSTANT}\\)${RWX_REGEX_SET}" ${RWX_REGEX_BEGIN}\\(${RWX_REGEX_CONSTANT}\\)${RWX_REGEX_SET}"
RWX_REGEX_TARGET_DOC="\ 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_TARGET_FUNCTION="\
${RWX_REGEX_BEGIN}\\(${RWX_REGEX_FUNCTION}\\)${RWX_REGEX_OPEN}" ${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() { rwx_parse_code() {
# parse aliases # parse aliases
@ -197,6 +203,8 @@ EOF
RWX_CONSTANTS="$(rwx_parse_constants)" RWX_CONSTANTS="$(rwx_parse_constants)"
# parse functions # parse functions
RWX_FUNCTIONS="$(rwx_parse_functions)" RWX_FUNCTIONS="$(rwx_parse_functions)"
# parse variables
_rwx_code_variables="$(rwx_parse_variables)"
} }
rwx_parse_aliases() { rwx_parse_aliases() {
printf "%s" "${_rwx_code}" | printf "%s" "${_rwx_code}" |
@ -205,18 +213,23 @@ rwx_parse_aliases() {
--file "${RWX_AWK}" --file "${RWX_AWK}"
} }
rwx_parse_constants() { rwx_parse_constants() {
printf "%s\n" "${_rwx_code}" | printf "%s" "${_rwx_code}" |
sed --silent "s|${RWX_REGEX_TARGET_CONSTANT}|\\1|p" sed --silent "s|${RWX_REGEX_TARGET_CONSTANT}|\\1|p"
} }
rwx_parse_functions() { rwx_parse_functions() {
printf "%s\n" "${_rwx_code}" | printf "%s" "${_rwx_code}" |
sed --silent "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|p" 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 │ # │ main │ test │
# ╰──────┴──────╯ # ╰──────┴──────╯
#= rt
rwx_test() { rwx_test() {
local item local item
# TODO CODE # TODO CODE

View file

@ -7,12 +7,30 @@ rwx_code() {
echo "${_rwx_code}" echo "${_rwx_code}"
} }
# show the cached aliases
#= rca
rwx_code_aliases() {
echo "${RWX_ALIASES}"
}
# show the cached constants # show the cached constants
#= rcc #= rcc
rwx_code_constants() { rwx_code_constants() {
echo "${RWX_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 # meta doc
#= rd #= rd
rwx_doc() { rwx_doc() {