From 6a73a8a740619c0e365e778031174a6196791323 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 4 Jul 2025 00:26:44 +0200 Subject: [PATCH 1/3] parse/functions --- sh/main.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sh/main.sh b/sh/main.sh index 4cd27ae..5cb772c 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -195,6 +195,26 @@ rwx_find_shell() { rwx_find_extension "sh" "${@}" } +# ╭──────┬───────╮ +# │ main │ parse │ +# ╰──────┴───────╯ + +rwx_parse() { + local ws="[[:space:]]*" + local fn="${ws}(${ws})${ws}{" + local id="[_a-zA-Z][_a-z0-9A-Z]*" + local line + rwx_ifs_set + RWX_FUNCTIONS="" + for line in $(echo "${RWX_CODE}" | + grep "^${ws}${id}${fn}" | + sed "s|^${ws}\\(${id}\\)${fn}.*|\\1|"); do + RWX_FUNCTIONS="${RWX_FUNCTIONS}${line} +" + done + rwx_ifs_unset +} + # ╭──────┬─────╮ # │ main │ run │ # ╰──────┴─────╯ From 8fd6beed112754931f3d491241cb75d8f6953029 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 4 Jul 2025 00:47:18 +0200 Subject: [PATCH 2/3] parse/constants --- sh/main.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index 5cb772c..d75695b 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -46,6 +46,8 @@ rwx_main() { fi # source user root rwx_source "${RWX_SELF_USER}" + # parse code cache + rwx_parse # context / command if [ -n "${RWX_COMMAND_NAME}" ]; then "${RWX_SELF_COMMAND}${RWX_COMMAND_NAME}" "${@}" @@ -201,14 +203,24 @@ rwx_find_shell() { rwx_parse() { local ws="[[:space:]]*" + local start="^${ws}" + local constant="[_A-Z][_0-9A-Z]*" + local setting="=.*" local fn="${ws}(${ws})${ws}{" local id="[_a-zA-Z][_a-z0-9A-Z]*" local line rwx_ifs_set + RWX_CONSTANTS="" + for line in $(echo "${RWX_CODE}" | + grep "${start}${constant}${setting}" | + sed "s|${start}\\(${constant}\\)${setting}|\\1|"); do + RWX_CONSTANTS="${RWX_CONSTANTS}${line} +" + done RWX_FUNCTIONS="" for line in $(echo "${RWX_CODE}" | - grep "^${ws}${id}${fn}" | - sed "s|^${ws}\\(${id}\\)${fn}.*|\\1|"); do + grep "${start}${id}${fn}" | + sed "s|${start}\\(${id}\\)${fn}.*|\\1|"); do RWX_FUNCTIONS="${RWX_FUNCTIONS}${line} " done From 9d7c77b881120d7185e9cb1cb8c42e344c4f8138 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 4 Jul 2025 00:50:35 +0200 Subject: [PATCH 3/3] parse/func --- sh/main.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index d75695b..8d950b0 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -206,7 +206,7 @@ rwx_parse() { local start="^${ws}" local constant="[_A-Z][_0-9A-Z]*" local setting="=.*" - local fn="${ws}(${ws})${ws}{" + local func="${ws}(${ws})${ws}{.*" local id="[_a-zA-Z][_a-z0-9A-Z]*" local line rwx_ifs_set @@ -219,8 +219,8 @@ rwx_parse() { done RWX_FUNCTIONS="" for line in $(echo "${RWX_CODE}" | - grep "${start}${id}${fn}" | - sed "s|${start}\\(${id}\\)${fn}.*|\\1|"); do + grep "${start}${id}${func}" | + sed "s|${start}\\(${id}\\)${func}|\\1|"); do RWX_FUNCTIONS="${RWX_FUNCTIONS}${line} " done