#! /bin/sh -e die() { echo "$@" 1>&2 exit 2 } do_hdr() { cat <//g' %{ `do_hdr` #include #include "lua-token.h" static const struct tok * mlua_which_token_aux(const char *str, unsigned int len); %} struct tok { const char *name; int val; }; %% `grep_self "$0" | do_tokens` %% 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 = mlua_which_token_aux(s, len); return res ? res->val : LTK_UNKNOWN; } else { return LTK_UNKNOWN; } } EOF } grep_self() { grep '^## ' "$1" | cut -d' ' -f2 } trap "rm -f $1" 1 2 3 15 rm -f $1 case "$1" in *.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 ############ ## alias_file ## alias_format ## ask-no ## ask-yes ## assumed_charset ## autoencrypt ## autopgp ## autosign ## autosmime ## beep ## beep_new ## bindir ## ca_certificates_file ## cachedir ## cert_file ## charset ## docdir ## dsn_notify ## dsn_return ## editor ## enable ## envelope_from_address ## file_charset ## force_tls ## from ## gecos_mask ## hcache_backend ## homedir ## hostname ## mailcap_path ## mailcap_sanitize ## mail_check ## min_dh_prime_bits ## no ## operating_system ## pgp_entry_format ## quit ## record ## replyencrypt ## replysign ## replysignencrypted ## send_charset ## sendmail ## sendmail_wait ## shell ## shorthost ## signature ## smime_is_default ## spam_separator ## sysconfdir ## threshold_delete ## threshold_flag ## threshold_read ## tmpdir ## use_8bitmime ## use_domain ## use_envelope_from ## username ## use_sslv3 ## use_tlsv1 ## verify_sig ## version ## yes