blob: 9d2fdddc77ead5bab5c9a6c06d2915d7a91de18e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
tokname()
{
local t="${1}"
shift 1
local n=
case "${t%${US}*}" in
# Operators
T_EOF) n='end of file';;
T_NEWLINE) n='newline';;
T_AND) n='&';;
T_SEMI) n=';';;
T_AND_IF) n='&&';;
T_OR_IF) n='||';;
T_DSEMI) n=';;';;
T_LESS) n='<';;
T_GREAT) n='>';;
T_DLESS) n='<<';;
T_DGREAT) n='>>';;
T_LESS) n='<';;
T_LESSAND) n='<&';;
T_GREAT) n='>';;
T_GREATAND) n='>&';;
T_LESSGREAT) n='<>';;
T_DLESSDASH) n='<<-';;
T_CLOBBER) n='>|';;
T_PIPE) n='|';;
T_LPAREN) n='(';;
T_RPAREN) n=')';;
# Reserved words
T_IF) n='if';;
T_THEN) n='then';;
T_ELSE) n='else';;
T_ELIF) n='elif';;
T_FI) n='fi';;
T_DO) n='do';;
T_DONE) n='done';;
T_CASE) n='case';;
T_ESAC) n='esac';;
T_WHILE) n='while';;
T_UNTIL) n='until';;
T_FOR) n='for';;
T_LBRACE) n='{';;
T_RBRACE) n='}';;
T_BANG) n='!';;
T_IN) n='in';;
# Special symbols
T_NAME) n='parameter name';;
T_FNAME) n='function name';;
T_CMDNAME) n='command name';;
T_IO_NUMBER) n='I/O number';;
T_WORD) n='word';;
T_ASSIGNMENT_WORD) n='assignment word';;
# Unknown
*) n='unknown token';;
esac
printf '%s' "${n}"
}
|