init
This commit is contained in:
95
Gateway/srvlib/bin/tolua++/lua/doit.lua
Normal file
95
Gateway/srvlib/bin/tolua++/lua/doit.lua
Normal file
@@ -0,0 +1,95 @@
|
||||
-- Generate binding code
|
||||
-- Written by Waldemar Celes
|
||||
-- TeCGraf/PUC-Rio
|
||||
-- Jul 1998
|
||||
-- Last update: Apr 2003
|
||||
-- $Id: doit.lua 1141 2006-05-18 23:58:45Z lindquist $
|
||||
|
||||
|
||||
-- This code is free software; you can redistribute it and/or modify it.
|
||||
-- The software provided hereunder is on an "as is" basis, and
|
||||
-- the author has no obligation to provide maintenance, support, updates,
|
||||
-- enhancements, or modifications.
|
||||
|
||||
function parse_extra()
|
||||
|
||||
for k,v in ipairs(_extra_parameters or {}) do
|
||||
|
||||
local b,e,name,value = string.find(v, "^([^=])=(.*)$")
|
||||
if b then
|
||||
_extra_parameters[name] = value
|
||||
else
|
||||
_extra_parameters[v] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function doit ()
|
||||
-- define package name, if not provided
|
||||
if not flags.n then
|
||||
if flags.f then
|
||||
flags.n = gsub(flags.f,"%..*$","")
|
||||
_,_,flags.n = string.find(flags.n, "([^/\\]*)$")
|
||||
else
|
||||
error("#no package name nor input file provided")
|
||||
end
|
||||
end
|
||||
|
||||
-- parse table with extra paramters
|
||||
parse_extra()
|
||||
|
||||
-- do this after setting the package name
|
||||
if flags['L'] then
|
||||
dofile(flags['L'])
|
||||
end
|
||||
|
||||
-- add cppstring
|
||||
if not flags['S'] then
|
||||
_basic['string'] = 'cppstring'
|
||||
_basic['std::string'] = 'cppstring'
|
||||
_basic_ctype.cppstring = 'const char*'
|
||||
end
|
||||
|
||||
-- proccess package
|
||||
local p = Package(flags.n,flags.f)
|
||||
|
||||
if flags.p then
|
||||
return -- only parse
|
||||
end
|
||||
|
||||
if flags.o then
|
||||
local st,msg = writeto(flags.o)
|
||||
if not st then
|
||||
error('#'..msg)
|
||||
end
|
||||
end
|
||||
|
||||
p:decltype()
|
||||
if flags.P then
|
||||
p:print()
|
||||
else
|
||||
p:preamble()
|
||||
p:supcode()
|
||||
p:register()
|
||||
push(p)
|
||||
post_output_hook(p)
|
||||
pop()
|
||||
end
|
||||
|
||||
if flags.o then
|
||||
writeto()
|
||||
end
|
||||
|
||||
-- write header file
|
||||
if not flags.P then
|
||||
if flags.H then
|
||||
local st,msg = writeto(flags.H)
|
||||
if not st then
|
||||
error('#'..msg)
|
||||
end
|
||||
p:header()
|
||||
writeto()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user