X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=tools%2Fcpkg2c.mll;h=835519987821e3f4999c193a2c47724359e4bc5d;hp=0eccf4778139f4b06efbf4278095f41a48f2e7a3;hb=4606bdeeaf175b61f3c54dcbadc330f2505d9f67;hpb=a19e0acbcbc4a8d4238cda051ca702653450c1cb diff --git a/tools/cpkg2c.mll b/tools/cpkg2c.mll index 0eccf47..8355199 100644 --- a/tools/cpkg2c.mll +++ b/tools/cpkg2c.mll @@ -22,11 +22,8 @@ module H = Hashtbl module B = Buffer - type 'a anchor = ('a * string * int) - + type 'a anchor = ('a * string * int) let t1 (a, _, _) = a - let t2 (_, a, _) = a - let t3 (_, _, a) = a let die lpos fpos s = output_string stderr (sprintf "%s:%d: %s\n" fpos lpos s); @@ -160,7 +157,6 @@ let sp = [' ''\t'] let typdecl = sp* ("const" sp+)? ident sp* (* }}} *) - (* entry point {{{ *) rule cLine lpos fpos buf = parse @@ -332,6 +328,8 @@ and ext_bodycode buf = parse (* }}} *) { +(* templating functions {{{ *) + let upper = String.uppercase let tplize tpl v = Str.global_replace (Str.regexp_string "$L") "L" ( @@ -526,7 +524,7 @@ int luaopen_%s(lua_State *L) luaL_newmetatable(L, \"%s\"); mt = lua_gettop(L); - lua_pushliteral(L, \"%s\"); + lua_pushliteral(L, \"__index\"); lua_pushvalue(L, mt); /* upvalue 1 */ lua_pushvalue(L, methods); /* upvalue 2 */ lua_pushcclosure(L, &luaM_%s_index, 2); @@ -543,13 +541,15 @@ int luaopen_%s(lua_State *L) lua_setmetatable(L, methods); - lua_pop(L, 1); /* drop mt */ - return 1; /* return methods */ + lua_pop(L, 2); /* drop mt + methods */ + return 1; } ") in List.iter do_c_aux +(* }}} *) + let usage () = output_string stderr "usage: cpkg2c (-h | -c) file.cpkg\n"; exit 1