在pkg文件中的每一行,都是待处理的内容,调用doit,使用Package函数读入这个pkg中的文件,对每一行内容进行读取。
1. 当读到的内容是.h或.c/.cpp文件时,使用extract_code读取这个文件的内容,读取tolua_begin和tolua_end中的内容,然后对代码进行预处理preprocess;
2. 调用parse对每一行代码进行解析,解析对象包括lua代码、C代码、extern 、virtual、lables、namespace等等,将每一个解析出来的待处理代码封装成相应的对象
3. 调用decltype ,字面意思是类型声明,暂时不知道做什么
4. 调用package:preamble去输出文件头信息,类的析构函数,类注册函数
5. 调用supcode输出类,函数等等定义,对这个package中的每一个对象进行supcode操作,输出代码,
6. Package:register ,队所有的枚举、函数、变量、类里的函数变量注册,在cpp文件中从/*open function*/开始,最后写入到文件中去