#ifndef MUTT_LIB_LUA_LUA_TOKEN_H
#define MUTT_LIB_LUA_LUA_TOKEN_H
-enum lua_token {
- LTK_UNKNOWN,
-`tr 'a-z-/' 'A-Z__' | sed -e 's/.*/ LTK_&,/'`
-};
+typedef enum mlua_token {
+ LTK_UNKNOWN = -1,
+`grep_self "$0" | tr 'a-z-/' 'A-Z__' | sed -e 's/.*/ LTK_&,/'`
+ LTK_count,
+} mlua_token;
+
+extern const char *__mlua_token[LTK_count];
__attribute__((pure))
-enum lua_token lua_which_token(const char *s, ssize_t len);
+mlua_token mlua_which_token(const char *s, ssize_t len);
#endif /* MUTT_LIB_LUA_LUA_TOKEN_H */
EOF
}
+do_tokens() {
+ while read tok; do
+ echo "$tok, LTK_`echo $tok | tr 'a-z-' 'A-Z_'`"
+ done
+}
+
do_c() {
- cat <<EOF | gperf -m16 -l -t -C -F",0" -Nlua_which_token_aux
+ cat <<EOF | gperf -m16 -l -t -C -F",0" -Nmlua_which_token_aux
%{
`do_hdr`
#include "lua-token.h"
static const struct tok *
-lua_which_token_aux(const char *str, unsigned int len);
+mlua_which_token_aux(const char *str, unsigned int len);
%}
struct tok { const char *name; int val; };
%%
-`awk '{print $0 ", " NR }'`
+`grep_self "$0" | do_tokens`
%%
-enum lua_token lua_which_token(const char *s, ssize_t len)
+const char *__mlua_token[LTK_count] = {
+`grep_self "$0" | sed -e 's/.*/ "&",/'`
+};
+
+mlua_token mlua_which_token(const char *s, ssize_t len)
{
if (len < 0)
len = m_strlen(s);
if (len) {
- const struct tok *res = lua_which_token_aux(s, len);
+ const struct tok *res = mlua_which_token_aux(s, len);
return res ? res->val : LTK_UNKNOWN;
} else {
return LTK_UNKNOWN;
rm -f $1
case "$1" in
- *.h) grep_self "$0" | do_h > $1;;
- *.c) grep_self "$0" | do_c > $1;;
+ *.h) do_h > $1;;
+ *.c) do_c > $1;;
*) die "you must ask for the 'h' or 'c' generation";;
esac
chmod -w $1
exit 0
############ Put tokens here ############
-## shell
+## alias_file
+## alias_format
+## ask-no
+## ask-yes
+## beep
+## beep_new
+## bindir
+## docdir
+## dotlock
+## dsn_notify
+## dsn_return
+## editor
+## gecos_mask
+## hcache_backend
+## homedir
+## no
+## quit
## sendmail
+## shell
+## sysconfdir
+## tmpdir
+## username
+## version
+## yes