本程序通过将SBLang程序转换为C++代码并使用G++编译来使SBLang程序可以编译为可执行文件,且运行效率更好。
使用SBLang-Syntax-V4标准。
python3 sblang2c.py [...options] [filename]
可用的Options:
- --no-compile, 仅翻译为c++而不编译
- --debug, 显示所有调试信息
- --gcc-binary=xxx, 制定g++可执行文件位置
- --gcc-arg=xxx, 可添加多个
- --output=xxx, 输出的文件名
Examples:
python3 sblang2c.py --debug some_file.sbl
编译some_file.sbl, 输出全部调试信息。
python3 sblang2c.py --no-compile some_file.sbl
转换some_file.sbl, 不进行编译。
python3 sblang2c.py --no-compile --debug some_file.sbl
转换some_file.sbl, 不进行编译并打印所有调试信息。
python3 sblang2c.py --gcc-binary=/opt/homebrew/bin/g++-13 --debug some_file.sbl
转换some_file.sbl, 使用MacOS Homebrew安装的G++ 13进行编译并打印所有调试信息。
python3 sblang2c.py --debug --gcc-arg=std=c++20 some_file.sbl
使用C++20标准编译some_file.sbl, 输出全部调试信息。
python3 sblang2c.py --debug --output=executable.exe some_file.sbl
编译some_file.sbl, 输出全部调试信息并将最终的可执行文件输出为executable.exe
。
- HEADS (保存在编译Runtime内) 需要引入的头文件
- HEAD 动态生成,用于声明命名空间
- EXTERNS 导入由其他文件(或SBLang预定义函数头)定义的函数。
- FUNCTIONS 用户预定义的函数,动态生成/分析.
- MAIN 主程序,也就是int main.
函数,变量,循环,条件判断,导入
去除let语句,自动检测目标值类型