Compare commits

...

3 commits

Author SHA1 Message Date
aeff5a62f2
output/type
All checks were successful
/ job (push) Successful in 5m30s
2025-07-06 09:42:23 +02:00
1c39fb31a1
=,! 2025-07-06 09:36:06 +02:00
101fd21ce1
re/close
All checks were successful
/ job (push) Successful in 3m56s
2025-07-06 09:32:52 +02:00

View file

@ -5,8 +5,8 @@ function append(line) {
doc = doc line
}
function output(name) {
print name
function output(name, type) {
print name " ← " type
print doc
exit
}
@ -28,6 +28,7 @@ BEGIN {
RE_FUNC = RE_SPACES "\\(" RE_SPACES "\\)" RE_SPACES "{"
RE_ALIAS = RE_BEGIN "#=" RE_SPACES RE_VAR RE_END
RE_CLOSE = RE_BEGIN "}" RE_SPACES RE_END
RE_CONSTANT = RE_BEGIN RE_CONST RE_SET RE_END
RE_DOC = RE_BEGIN "#" RE_SPACE RE_ANY RE_END
RE_FUNCTION = RE_BEGIN RE_VAR RE_FUNC RE_END
@ -56,26 +57,24 @@ BEGIN {
} else if (action == "doc") {
# doc
if (match($0, RE_SHEBANG, m)) {
append("shebang: " m[1])
append("! " m[1])
} else if (match($0, RE_DOC, m)) {
append(m[1])
} else if (match($0, RE_ALIAS, m)) {
append("alias: " m[1])
append("= " m[1])
if (m[1] == target) {
alias = 1
}
# set
} else if (match($0, RE_CONSTANT, m)) {
if (m[1] == target) {
printf "constant: "
output(m[1])
output(m[1], "constant")
} else {
reset()
}
} else if (match($0, RE_VARIABLE, m)) {
if (m[1] == target) {
printf "variable: "
output(m[1])
output(m[1], "variable")
} else {
reset()
}
@ -87,19 +86,16 @@ BEGIN {
}
} else if (match($0, RE_FUNCTION, m)) {
if (alias) {
print "alias: " target
printf "function: "
output(m[1])
print "= " target
output(m[1], "function")
} else if (m[1] == target) {
printf "function: "
output(target)
output(target, "function")
} else {
reset()
}
} else {
if (module) {
printf "module: "
output(target)
output(target, "module")
} else {
reset()
}