2012-12-09 13:24:28 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
# S or G can be used to display SETGLOBALs or GETGLOBALs, respectively
|
2013-06-30 20:38:37 +00:00
|
|
|
echo "Usage: $0 [S|G] <files.lua...>"
|
2012-12-09 13:24:28 +00:00
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
|
2013-06-30 20:38:37 +00:00
|
|
|
GS=
|
|
|
|
|
|
|
|
if [ "$1" = G ]; then
|
|
|
|
GS=G
|
|
|
|
shift
|
|
|
|
elif [ "$1" = S ]; then
|
|
|
|
GS=S
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
2013-04-05 17:53:21 +00:00
|
|
|
# Lua 5.2 required to parse ::label:: / goto generated by LunaCON.
|
|
|
|
LUAC=luac
|
|
|
|
|
2013-06-30 20:38:37 +00:00
|
|
|
for f in "$@"; do
|
|
|
|
echo "[$f]"
|
|
|
|
# Strip LuaJIT specific syntax first. Run luac and extract interesting lines.
|
|
|
|
sed -r -e "s/[0-9]+U?LL/0/g" "$f" | $LUAC -p -l - | grep "${GS}ETTABUP.*; _ENV " |
|
|
|
|
# Reformat them.
|
|
|
|
sed -e 's/.*\[\(.*\)\].*\([SG]ET\)TABUP.*"\(.*\)".*/\1: \2 \3/' |
|
|
|
|
# Mark where the new module environment starts.
|
|
|
|
sed -e 's/GET module/& ____________________/'
|
|
|
|
echo
|
|
|
|
done
|