|
Packit Service |
f629e6 |
# BEGIN rule(s)
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
BEGIN {
|
|
Packit Service |
f629e6 |
1 if (sortcmd == "") {
|
|
Packit Service |
f629e6 |
sortcmd = "sort"
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
1 asplit("BEGIN:END:atan2:break:close:continue:cos:delete:" "do:else:exit:exp:for:getline:gsub:if:in:index:int:" "length:log:match:next:print:printf:rand:return:sin:" "split:sprintf:sqrt:srand:sub:substr:system:while", keywords, ":")
|
|
Packit Service |
f629e6 |
1 split("00:00:00:00:00:00:00:00:00:00:" "20:10:10:12:12:11:07:00:00:00:" "08:08:08:08:08:33:08:00:00:00:" "08:44:08:36:08:08:08:00:00:00:" "08:44:45:42:42:41:08", machine, ":")
|
|
Packit Service |
f629e6 |
1 state = 1
|
|
Packit Service |
f629e6 |
571 for (;;) {
|
|
Packit Service |
f629e6 |
571 symb = lex()
|
|
Packit Service |
f629e6 |
571 nextstate = substr(machine[state symb], 1, 1)
|
|
Packit Service |
f629e6 |
571 act = substr(machine[state symb], 2, 1)
|
|
Packit Service |
f629e6 |
571 if (act == "0") { # 12
|
|
Packit Service |
f629e6 |
559 } else if (act == "1") { # 8
|
|
Packit Service |
f629e6 |
8 if (! inarray(tok, names)) { # 3
|
|
Packit Service |
f629e6 |
3 names[++nnames] = tok
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
8 lines[tok, ++xnames[tok]] = NR
|
|
Packit Service |
f629e6 |
551 } else if (act == "2") { # 426
|
|
Packit Service |
f629e6 |
426 if (tok in local) { # 309
|
|
Packit Service |
f629e6 |
309 tok = tok "(" funcname ")"
|
|
Packit Service |
f629e6 |
309 if (! inarray(tok, names)) { # 22
|
|
Packit Service |
f629e6 |
22 names[++nnames] = tok
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
309 lines[tok, ++xnames[tok]] = NR
|
|
Packit Service |
f629e6 |
117 } else {
|
|
Packit Service |
f629e6 |
117 tok = tok "()"
|
|
Packit Service |
f629e6 |
117 if (! inarray(tok, names)) { # 22
|
|
Packit Service |
f629e6 |
22 names[++nnames] = tok
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
117 lines[tok, ++xnames[tok]] = NR
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
125 } else if (act == "3") { # 4
|
|
Packit Service |
f629e6 |
4 funcname = tok
|
|
Packit Service |
f629e6 |
4 flines[tok] = NR
|
|
Packit Service |
f629e6 |
121 } else if (act == "4") { # 49
|
|
Packit Service |
f629e6 |
49 braces++
|
|
Packit Service |
f629e6 |
72 } else if (act == "5") { # 49
|
|
Packit Service |
f629e6 |
49 braces--
|
|
Packit Service |
f629e6 |
49 if (braces == 0) { # 4
|
|
Packit Service |
f629e6 |
22 for (temp in local) {
|
|
Packit Service |
f629e6 |
22 delete local[temp]
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
4 funcname = ""
|
|
Packit Service |
f629e6 |
4 nextstate = 1
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
23 } else if (act == "6") { # 22
|
|
Packit Service |
f629e6 |
22 local[tok] = 1
|
|
Packit Service |
f629e6 |
1 } else if (act == "7") { # 1
|
|
Packit Service |
f629e6 |
1 break
|
|
Packit Service |
f629e6 |
} else if (act == "8") {
|
|
Packit Service |
f629e6 |
print("error: xref.awk: line " NR ": aborting") > "/dev/con"
|
|
Packit Service |
f629e6 |
exit 1
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
570 state = nextstate
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
47 for (i = 1; i <= nnames; i++) {
|
|
Packit Service |
f629e6 |
47 printf("%d ", xnames[names[i]]) | sortcmd
|
|
Packit Service |
f629e6 |
47 if (index(names[i], "(") == 0) { # 3
|
|
Packit Service |
f629e6 |
3 printf("%s(%d)", names[i], flines[names[i]]) | sortcmd
|
|
Packit Service |
f629e6 |
44 } else {
|
|
Packit Service |
f629e6 |
44 printf("%s", names[i]) | sortcmd
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
434 for (j = 1; j <= xnames[names[i]]; j++) {
|
|
Packit Service |
f629e6 |
434 if (lines[names[i], j] != lines[names[i], j - 1]) { # 390
|
|
Packit Service |
f629e6 |
390 printf(" %d", lines[names[i], j]) | sortcmd
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
47 printf("\n") | sortcmd
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
1 close(sortcmd)
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
# Functions, listed alphabetically
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
1 function asplit(str, arr, fs, n)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
1 n = split(str, temp_asplit, fs)
|
|
Packit Service |
f629e6 |
36 for (i = 1; i <= n; i++) {
|
|
Packit Service |
f629e6 |
36 arr[temp_asplit[i]]++
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
434 function inarray(val, arr, j, tmp)
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
16297 for (j in arr) {
|
|
Packit Service |
f629e6 |
16297 tmp[arr[j]]++
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
434 return (val in tmp)
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
571 function lex()
|
|
Packit Service |
f629e6 |
{
|
|
Packit Service |
f629e6 |
1702 for (;;) {
|
|
Packit Service |
f629e6 |
1702 if (tok == "(eof)") {
|
|
Packit Service |
f629e6 |
return 7
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
326 while (length(line) == 0) {
|
|
Packit Service |
f629e6 |
326 if ((getline line) == 0) { # 1
|
|
Packit Service |
f629e6 |
1 tok = "(eof)"
|
|
Packit Service |
f629e6 |
1 return 7
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
1701 sub(/^[ \t]+/, "", line)
|
|
Packit Service |
f629e6 |
1701 sub(/^"([^"]|\\")*"/, "", line)
|
|
Packit Service |
f629e6 |
1701 sub(/^\/([^\/]|\\\/)+\//, "", line)
|
|
Packit Service |
f629e6 |
1701 sub(/^#.*/, "", line)
|
|
Packit Service |
f629e6 |
1701 if (line ~ /^function/) { # 4
|
|
Packit Service |
f629e6 |
4 tok = "function"
|
|
Packit Service |
f629e6 |
4 line = substr(line, 9)
|
|
Packit Service |
f629e6 |
4 return 1
|
|
Packit Service |
f629e6 |
1697 } else if (line ~ /^{/) { # 53
|
|
Packit Service |
f629e6 |
53 tok = "{"
|
|
Packit Service |
f629e6 |
53 line = substr(line, 2)
|
|
Packit Service |
f629e6 |
53 return 2
|
|
Packit Service |
f629e6 |
1644 } else if (line ~ /^}/) { # 53
|
|
Packit Service |
f629e6 |
53 tok = "}"
|
|
Packit Service |
f629e6 |
53 line = substr(line, 2)
|
|
Packit Service |
f629e6 |
53 return 3
|
|
Packit Service |
f629e6 |
1591 } else if (match(line, /^[[:alpha:]_][[:alnum:]]*\[/)) { # 43
|
|
Packit Service |
f629e6 |
43 tok = substr(line, 1, RLENGTH - 1)
|
|
Packit Service |
f629e6 |
43 line = substr(line, RLENGTH + 1)
|
|
Packit Service |
f629e6 |
43 return 5
|
|
Packit Service |
f629e6 |
1548 } else if (match(line, /^[[:alpha:]_][[:alnum:]]*\(/)) { # 87
|
|
Packit Service |
f629e6 |
87 tok = substr(line, 1, RLENGTH - 1)
|
|
Packit Service |
f629e6 |
87 line = substr(line, RLENGTH + 1)
|
|
Packit Service |
f629e6 |
87 if (! (tok in keywords)) { # 12
|
|
Packit Service |
f629e6 |
12 return 6
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
1461 } else if (match(line, /^[[:alpha:]_][[:alnum:]]*/)) { # 525
|
|
Packit Service |
f629e6 |
525 tok = substr(line, 1, RLENGTH)
|
|
Packit Service |
f629e6 |
525 line = substr(line, RLENGTH + 1)
|
|
Packit Service |
f629e6 |
525 if (! (tok in keywords)) { # 405
|
|
Packit Service |
f629e6 |
405 return 4
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
936 } else {
|
|
Packit Service |
f629e6 |
936 match(line, /^[^[:alpha:]_{}]/)
|
|
Packit Service |
f629e6 |
936 tok = substr(line, 1, RLENGTH)
|
|
Packit Service |
f629e6 |
936 line = substr(line, RLENGTH + 1)
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
}
|