Compare commits
No commits in common. "aeff5a62f2fa70d939530e6bf44b9b9ace344287" and "49b9fbe8c3fdc7b3f93ff3e83a98c43805a0d607" have entirely different histories.
aeff5a62f2
...
49b9fbe8c3
1 changed files with 15 additions and 11 deletions
26
sh/main.awk
26
sh/main.awk
|
@ -5,8 +5,8 @@ function append(line) {
|
||||||
doc = doc line
|
doc = doc line
|
||||||
}
|
}
|
||||||
|
|
||||||
function output(name, type) {
|
function output(name) {
|
||||||
print name " ← " type
|
print name
|
||||||
print doc
|
print doc
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,6 @@ BEGIN {
|
||||||
RE_FUNC = RE_SPACES "\\(" RE_SPACES "\\)" RE_SPACES "{"
|
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_CLOSE = RE_BEGIN "}" RE_SPACES RE_END
|
|
||||||
RE_CONSTANT = RE_BEGIN RE_CONST RE_SET RE_END
|
RE_CONSTANT = RE_BEGIN RE_CONST RE_SET RE_END
|
||||||
RE_DOC = RE_BEGIN "#" RE_SPACE RE_ANY RE_END
|
RE_DOC = RE_BEGIN "#" RE_SPACE RE_ANY RE_END
|
||||||
RE_FUNCTION = RE_BEGIN RE_VAR RE_FUNC RE_END
|
RE_FUNCTION = RE_BEGIN RE_VAR RE_FUNC RE_END
|
||||||
|
@ -57,24 +56,26 @@ BEGIN {
|
||||||
} else if (action == "doc") {
|
} else if (action == "doc") {
|
||||||
# doc
|
# doc
|
||||||
if (match($0, RE_SHEBANG, m)) {
|
if (match($0, RE_SHEBANG, m)) {
|
||||||
append("! " m[1])
|
append("shebang: " m[1])
|
||||||
} else if (match($0, RE_DOC, m)) {
|
} else if (match($0, RE_DOC, m)) {
|
||||||
append(m[1])
|
append(m[1])
|
||||||
} else if (match($0, RE_ALIAS, m)) {
|
} else if (match($0, RE_ALIAS, m)) {
|
||||||
append("= " m[1])
|
append("alias: " m[1])
|
||||||
if (m[1] == target) {
|
if (m[1] == target) {
|
||||||
alias = 1
|
alias = 1
|
||||||
}
|
}
|
||||||
# set
|
# set
|
||||||
} else if (match($0, RE_CONSTANT, m)) {
|
} else if (match($0, RE_CONSTANT, m)) {
|
||||||
if (m[1] == target) {
|
if (m[1] == target) {
|
||||||
output(m[1], "constant")
|
printf "constant: "
|
||||||
|
output(m[1])
|
||||||
} else {
|
} else {
|
||||||
reset()
|
reset()
|
||||||
}
|
}
|
||||||
} else if (match($0, RE_VARIABLE, m)) {
|
} else if (match($0, RE_VARIABLE, m)) {
|
||||||
if (m[1] == target) {
|
if (m[1] == target) {
|
||||||
output(m[1], "variable")
|
printf "variable: "
|
||||||
|
output(m[1])
|
||||||
} else {
|
} else {
|
||||||
reset()
|
reset()
|
||||||
}
|
}
|
||||||
|
@ -86,16 +87,19 @@ BEGIN {
|
||||||
}
|
}
|
||||||
} else if (match($0, RE_FUNCTION, m)) {
|
} else if (match($0, RE_FUNCTION, m)) {
|
||||||
if (alias) {
|
if (alias) {
|
||||||
print "= " target
|
print "alias: " target
|
||||||
output(m[1], "function")
|
printf "function: "
|
||||||
|
output(m[1])
|
||||||
} else if (m[1] == target) {
|
} else if (m[1] == target) {
|
||||||
output(target, "function")
|
printf "function: "
|
||||||
|
output(target)
|
||||||
} else {
|
} else {
|
||||||
reset()
|
reset()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (module) {
|
if (module) {
|
||||||
output(target, "module")
|
printf "module: "
|
||||||
|
output(target)
|
||||||
} else {
|
} else {
|
||||||
reset()
|
reset()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue