
0. 准备编译环境
首先安装MinGW-w64. 建议使用TDM-GCC版本(),该版本可以同时生成32位和64位代码脚本解释器,而无需分别安装两组编译器.
当然,从理论上讲,它可以使用VC ++进行编译,但是我还没有尝试过(我不喜欢VC ++,它体积庞大,它不是开放源代码,并且编译后的内容莫名其妙地依赖于此)
安装这些组件需要
C和C ++. 安装后,将编译器添加到系统搜索路径.
1. 松鼠语言解释器: sq.exe
松鼠语言是宿主程序中嵌入的一种脚本语言,与lua类似,但比lua功能更强大,语法更接近C / C ++.
官方网站:
GitHub主页:

文档:
编译方法: 下载源代码以对其进行解压缩(或Git克隆)后,在源代码的顶级目录中创建一个批处理build.bat,如下所示:
复制代码
- :: build.bat
- :: put this script in the top level directory of the SQ source tree
- :: Usage: build.bat [sq64 | sqprof]
- @echo off
- pushd %~dp0
- setlocal
- if not exist lib\NUL mkdir lib
- if not exist bin\NUL mkdir bin
- set "lib_dir=%~dp0lib"
- set "bin_dir=%~dp0bin"
- set "includeflag=-I../include -I. -Iinclude"
- if /i "%1"=="sq64" (
- set "gccflag_for_libs=-O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing"
- set "gccflag_for_sq=-O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti"
- goto action
- )
- if /i "%1"=="sqprof" (
- set "gccflag_for_libs=-O2 -m32 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3 -Wall -fno-strict-aliasing"
- set "gccflag_for_sq=-O2 -m32 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3"
- goto action
- )
- set "gccflag_for_libs=-O2 -m32 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing"
- set "gccflag_for_sq=-O2 -m32 -fno-exceptions -fno-rtti"
- :action
- chdir squirrel
- for %%i in (*.cpp) do (g++ %gccflag_for_libs% -c %%~nxi %includeflag%)
- ar rc "%lib_dir%\libsquirrel.a" *.o
- del /q *.o
- chdir ..\sqstdlib
- for %%i in (*.cpp) do (g++ %gccflag_for_libs% -c %%~nxi %includeflag%)
- ar rc "%lib_dir%\libsqstdlib.a" *.o
- del /q *.o
- chdir ..\sq
- g++ %gccflag_for_sq% -o "%bin_dir%\sq" sq.c %includeflag% -I../sqlibs -L../lib -lsquirrel -lsqstdlib
- chdir ..
- endlocal
- popd
- echo on
然后在命令行中输入build.bat sq64进行编译(直接双击生成的32位代码,不带参数). 编译完成后,打开bin子目录,其中将包含sq.exe.
测试脚本: 将以下内容另存为hello.nut(是,此语言脚本后缀名称默认为.nut,松鼠喜欢吃坚果)
复制代码
- function print_hello()
- {
- local i; // 使用变量前必须声明(虽然它没有类型)
- for (i=1; i<=3; ++i)
- {
- print("Hello Nut" + i + "\n");
- }
- }
- print_hello();
然后在命令行中输入sq.exe hello.nut,它将输出:
复制代码
- Hello Nut1
- Hello Nut2
- Hello Nut3
2. JavaScript语言解释器: mujs.exe

JavaScript不用多说.
官方网站:
下载页面:
下载页面只有源代码,需要自己编译.
编译方法: 解压缩源代码后,在顶级目录中创建一个文件build.bat,其内容如下:
复制代码
- :: build.bat
- :: put this script in the top level directory of the mujs source tree
- @echo off
- pushd %~dp0
- gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/libmujs.o -c one.c
- gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/main.o -c main.c
- gcc -Wl,-s -o build/release/mujs build/release/libmujs.o build/release/main.o -lm
- gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/pp.o -c pp.c
- gcc -Wl,-s -o build/release/mujs-pp build/release/libmujs.o build/release/pp.o -lm
- popd
- echo on
双击build.bat完成编译,打开build / release子目录,有两个exe文件,其中mujs.exe是我们想要的解释器,另一个文件是mujs-pp.exe(看一下)在源代码描述中,它可能是代码美化工具.
测试脚本: 将以下内容另存为hello.js:
复制代码
- for(var i=1; i<=3; ++i) write("Hello\n");

然后在命令行中输入mujs.exe hello.js,它应该输出:
复制代码
- Hello
- Hello
- Hello
当然,write()不是标准的JavaScript函数,而是mujs解释器提供的函数. JavaScript本身可以做有限的事情. 没有相关库的支持,它甚至无法执行诸如编写文件之类的基本操作(与C语言不同,至少有一个标准库可以执行此操作). 因此,mujs.exe内置了一些简单的函数以用于命令行操作. 他们是:
gc(报告)资源恢复(GC)
load(fileName)加载并运行脚本文件
quit()退出解释器(主要用于退出交互模式)
read(fileName)返回文件
的内容
readline()从标准输入(STDIN)读取一行

require(module)添加一个模块模块(类似于C语言的#include命令)
write(...)用空格分隔每个参数,然后写入标准输出(STDOUT)
print(...)与write()相同,但在末尾添加换行符(因此print(“ Hello”,“ World”)等效于write(“ Hello”,“ World \ n “))
这些函数仍然不能做很多事情,因此,基本上,mujs只能用作JavaScript代码测试器来测试特定代码是否正常工作.
由于提到mujs.exe是通过altruistic mutool.exe进行的,因此这是一种的PDF文档处理工具,与mupdf.exe(PDF阅读器)打包在一起供下载,下载页面为:
下载Windows软件包并使用mutool.exe打开它.
mutool.exe可以做的事情包括: 从pdf,图像,字体,合并pdf,创建pdf等中提取页面. 例如,如果我想删除in.pdf文件的第二页,则可以使用以下命令
复制代码
- mutool.exe clean in.pdf out.pdf 1,3-N
也就是说脚本解释器,仅将in.pdf的第一页和第三页写入out.pdf.
更重要的是,mutool.exe具有内置的mujs引擎. 如果您对它自己的功能不满意,可以编写一个JavaScript脚本来处理它来处理pdf. 只需传递命令
复制代码
- mutool.exe run <script.js>
您可以让它运行脚本script.js. 从这一点来看,mutool.exe本身可以用作JavaScript解释器. 有关更多详细文档,请参见
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-231815-1.html
我在想桃子从韩国回来的时候会不会就是这样坐在飞机上哭的
行贿最多的就是浙商