<s> """<STR_LIT>""" <EOL> MODULES = { '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:error>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:type>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT:string>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] } <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> import re <EOL> import urllib <EOL> import pprint <EOL> def module_callbacks ( ) : <EOL> def is_in_coroutine_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_modules_module ( name ) : <EOL> if name in [ '<STR_LIT>' , '<STR_LIT>' ] or name . startswith ( '<STR_LIT>' ) : <EOL> return True <EOL> else : <EOL> return False <EOL> def is_in_string_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_table_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_math_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_io_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_os_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> def is_in_debug_module ( name ) : <EOL> return name . startswith ( '<STR_LIT>' ) <EOL> return { '<STR_LIT>' : is_in_coroutine_module , <EOL> '<STR_LIT>' : is_in_modules_module , <EOL> '<STR_LIT:string>' : is_in_string_module , <EOL> '<STR_LIT>' : is_in_table_module , <EOL> '<STR_LIT>' : is_in_math_module , <EOL> '<STR_LIT>' : is_in_io_module , <EOL> '<STR_LIT>' : is_in_os_module , <EOL> '<STR_LIT>' : is_in_debug_module } <EOL> def get_newest_version ( ) : <EOL> f = urllib . urlopen ( '<STR_LIT>' ) <EOL> r = re . compile ( r'<STR_LIT>' ) <EOL> for line in f : <EOL> m = r . match ( line ) <EOL> if m is not None : <EOL> return m . groups ( ) [ <NUM_LIT:0> ] <EOL> def get_lua_functions ( version ) : <EOL> f = urllib . urlopen ( '<STR_LIT>' % version ) <EOL> r = re . compile ( r'<STR_LIT>' ) <EOL> functions = [ ] <EOL> for line in f : <EOL> m = r . match ( line ) <EOL> if m is not None : <EOL> functions . append ( m . groups ( ) [ <NUM_LIT:0> ] ) <EOL> return functions <EOL> def get_function_module ( name ) : <EOL> for mod , cb in module_callbacks ( ) . iteritems ( ) : <EOL> if cb ( name ) : <EOL> return mod <EOL> if '<STR_LIT:.>' in name : <EOL> return name . split ( '<STR_LIT:.>' ) [ <NUM_LIT:0> ] <EOL> else : <EOL> return '<STR_LIT>' <EOL> def regenerate ( filename , modules ) : <EOL> f = open ( filename ) <EOL> try : <EOL> content = f . read ( ) <EOL> finally : <EOL> f . close ( ) <EOL> header = content [ : content . find ( '<STR_LIT>' ) ] <EOL> footer = content [ content . find ( "<STR_LIT>" ) : ] <EOL> f = open ( filename , '<STR_LIT:w>' ) <EOL> f . write ( header ) <EOL> f . write ( '<STR_LIT>' % pprint . pformat ( modules ) ) <EOL> f . write ( footer ) <EOL> f . close ( ) <EOL> def run ( ) : <EOL> version = get_newest_version ( ) <EOL> print '<STR_LIT>' % version <EOL> functions = get_lua_functions ( version ) <EOL> print '<STR_LIT>' % len ( functions ) <EOL> modules = { } <EOL> for full_function_name in functions : <EOL> print '<STR_LIT>' % full_function_name <EOL> m = get_function_module ( full_function_name ) <EOL> modules . setdefault ( m , [ ] ) . append ( full_function_name ) <EOL> regenerate ( __file__ , modules ) <EOL> run ( ) </s>
