parse_next

This commit is contained in:
Marc Beninca 2025-08-03 10:01:15 +02:00
parent 49f87fd992
commit e63edb0c7b
Signed by: marc.beninca
GPG key ID: 9C7613450C80C24F

View file

@ -121,7 +121,7 @@ RE_FUNC = RE_SPACES "\\(" RE_SPACES "\\)" RE_SPACES "{"
re["alias"] = RE_BEGIN "#=" RE_SPACES RE_VAR RE_END re["alias"] = RE_BEGIN "#=" RE_SPACES RE_VAR RE_END
re["binary"] = RE_BEGIN "#\\|" RE_SPACES RE_VAR RE_END re["binary"] = RE_BEGIN "#\\|" RE_SPACES RE_VAR RE_END
RE_CLOSE = RE_BEGIN "}" RE_SPACES RE_END RE_CLOSE = RE_BEGIN RE_ANY "}" RE_SPACES RE_END
re["command"] = RE_BEGIN "#/" RE_SPACES RE_VAR RE_END re["command"] = RE_BEGIN "#/" RE_SPACES RE_VAR RE_END
RE_COMMENT = RE_BEGIN RE_SPACES "#" RE_ANY RE_END RE_COMMENT = RE_BEGIN RE_SPACES "#" RE_ANY RE_END
re["constant"] = RE_BEGIN RE_CONST RE_SET RE_END re["constant"] = RE_BEGIN RE_CONST RE_SET RE_END
@ -225,6 +225,30 @@ function parse(string) {
} }
function parse_next(string) {
# constant
if (current_match == "constant") {
doc_reset()
constant = ""
# variable
if (current_match == "variable") {
doc_reset()
variable = ""
# function
if (current_match == "close") {
doc_reset()
current_function = ""
# match
}
# next
line++
}
# ╭──────┬──────╮ # ╭──────┬──────╮
# │ code │ main │ # │ code │ main │
# ╰──────┴──────╯ # ╰──────┴──────╯
@ -239,18 +263,12 @@ if (action == "doc") {
if (current_match == "constant") { if (current_match == "constant") {
if (constant == target) { if (constant == target) {
doc_output(constant, "constant") doc_output(constant, "constant")
} else {
doc_reset()
constant = ""
} }
# variable # variable
} else if (current_match == "variable") { } else if (current_match == "variable") {
if (variable == target) { if (variable == target) {
doc_output(variable, "variable") doc_output(variable, "variable")
} else {
doc_reset()
variable = ""
} }
# match # match
@ -266,9 +284,6 @@ if (action == "doc") {
} else if (target in commands) { } else if (target in commands) {
print "/ " target print "/ " target
doc_output(current_function, "function") doc_output(current_function, "function")
} else {
current_function = ""
doc_reset()
} }
} }
@ -371,7 +386,7 @@ if (action == "doc") {
} }
# main # main
line++ parse_next($0)
} }
# ╭──────┬─────╮ # ╭──────┬─────╮