两个脚本语言解释器(仅提供编译方法,不提供下载)

电脑杂谈  发布时间:2020-06-03 01:14:29  来源:网络整理

脚本解释器_脚本解释器怎么用_java脚本语言解释器

0. 准备编译环境

首先安装MinGW-w64. 建议使用TDM-GCC版本(),该版本可以同时生成32位和64位代码脚本解释器,而无需分别安装两组编译器.

当然,从理论上讲,它可以使用VC ++进行编译,但是我还没有尝试过(我不喜欢VC ++,它体积庞大,它不是开放源代码,并且编译后的内容莫名其妙地依赖于此)

安装这些组件需要

C和C ++. 安装后,将编译器添加到系统搜索路径.

1. 松鼠语言解释器: sq.exe

松鼠语言是宿主程序中嵌入的一种脚本语言,与lua类似,但比lua功能更强大,语法更接近C / C ++.

官方网站:

GitHub主页:

脚本解释器怎么用_脚本解释器_java脚本语言解释器

文档:

编译方法: 下载源代码以对其进行解压缩(或Git克隆)后,在源代码的顶级目录中创建一个批处理build.bat,如下所示:

  1. :: build.bat
  2. :: put this script in the top level directory of the SQ source tree
  3. :: Usage: build.bat [sq64 | sqprof]
  4. @echo off
  5. pushd %~dp0
  6. setlocal
  7. if not exist lib\NUL mkdir lib
  8. if not exist bin\NUL mkdir bin
  9. set "lib_dir=%~dp0lib"
  10. set "bin_dir=%~dp0bin"
  11. set "includeflag=-I../include -I. -Iinclude"
  12. if /i "%1"=="sq64" (
  13. set "gccflag_for_libs=-O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing"
  14. set "gccflag_for_sq=-O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti"
  15. goto action
  16. )
  17. if /i "%1"=="sqprof" (
  18. set "gccflag_for_libs=-O2 -m32 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3 -Wall -fno-strict-aliasing"
  19. set "gccflag_for_sq=-O2 -m32 -pg -fno-exceptions -fno-rtti -pie -gstabs -g3"
  20. goto action
  21. )
  22. set "gccflag_for_libs=-O2 -m32 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing"
  23. set "gccflag_for_sq=-O2 -m32 -fno-exceptions -fno-rtti"
  24. :action
  25. chdir squirrel
  26. for %%i in (*.cpp) do (g++ %gccflag_for_libs% -c %%~nxi %includeflag%)
  27. ar rc "%lib_dir%\libsquirrel.a" *.o
  28. del /q *.o
  29. chdir ..\sqstdlib
  30. for %%i in (*.cpp) do (g++ %gccflag_for_libs% -c %%~nxi %includeflag%)
  31. ar rc "%lib_dir%\libsqstdlib.a" *.o
  32. del /q *.o
  33. chdir ..\sq
  34. g++ %gccflag_for_sq% -o "%bin_dir%\sq" sq.c %includeflag% -I../sqlibs -L../lib -lsquirrel -lsqstdlib
  35. chdir ..
  36. endlocal
  37. popd
  38. echo on
复制代码

然后在命令行中输入build.bat sq64进行编译(直接双击生成的32位代码,不带参数). 编译完成后,打开bin子目录,其中将包含sq.exe.

测试脚本: 将以下内容另存为hello.nut(是,此语言脚本后缀名称默认为.nut,松鼠喜欢吃坚果)

  1. function print_hello()
  2. {
  3. local i;  // 使用变量前必须声明(虽然它没有类型)
  4. for (i=1; i<=3; ++i)
  5. {
  6. print("Hello Nut" + i + "\n");
  7. }
  8. }
  9. print_hello();
复制代码

然后在命令行中输入sq.exe hello.nut,它将输出:

  1. Hello Nut1
  2. Hello Nut2
  3. Hello Nut3
复制代码

2. JavaScript语言解释器: mujs.exe

java脚本语言解释器_脚本解释器怎么用_脚本解释器

JavaScript不用多说.

官方网站:

下载页面:

下载页面只有源代码,需要自己编译.

编译方法: 解压缩源代码后,在顶级目录中创建一个文件build.bat,其内容如下:

  1. :: build.bat
  2. :: put this script in the top level directory of the mujs source tree
  3. @echo off
  4. pushd %~dp0
  5. gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/libmujs.o -c one.c
  6. gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/main.o -c main.c
  7. gcc -Wl,-s -o build/release/mujs build/release/libmujs.o build/release/main.o  -lm
  8. gcc -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -O3 -o build/release/pp.o -c pp.c
  9. gcc -Wl,-s -o build/release/mujs-pp build/release/libmujs.o build/release/pp.o -lm
  10. popd
  11. echo on
复制代码

双击build.bat完成编译,打开build / release子目录,有两个exe文件,其中mujs.exe是我们想要的解释器,另一个文件是mujs-pp.exe(看一下)在源代码描述中,它可能是代码美化工具.

测试脚本: 将以下内容另存为hello.js:

  1. for(var i=1; i<=3; ++i) write("Hello\n");
复制代码

脚本解释器怎么用_脚本解释器_java脚本语言解释器

然后在命令行中输入mujs.exe hello.js,它应该输出:

  1. Hello
  2. Hello
  3. Hello
复制代码

当然,write()不是标准的JavaScript函数,而是mujs解释器提供的函数. JavaScript本身可以做有限的事情. 没有相关库的支持,它甚至无法执行诸如编写文件之类的基本操作(与C语言不同,至少有一个标准库可以执行此操作). 因此,mujs.exe内置了一些简单的函数以用于命令行操作. 他们是:

gc(报告)资源恢复(GC)

load(fileName)加载并运行脚本文件

quit()退出解释器(主要用于退出交互模式)

read(fileName)返回文件

的内容

readline()从标准输入(STDIN)读取一行

java脚本语言解释器_脚本解释器怎么用_脚本解释器

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文件的第二页,则可以使用以下命令

  1. mutool.exe clean in.pdf out.pdf 1,3-N
复制代码

也就是说脚本解释器,仅将in.pdf的第一页和第三页写入out.pdf.

更重要的是,mutool.exe具有内置的mujs引擎. 如果您对它自己的功能不满意,可以编写一个JavaScript脚本来处理它来处理pdf. 只需传递命令

  1. mutool.exe run <script.js>
复制代码

您可以让它运行脚本script.js. 从这一点来看,mutool.exe本身可以用作JavaScript解释器. 有关更多详细文档,请参见


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-231815-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 叶世荣
        叶世荣

        行贿最多的就是浙商

      • 髙木俊
        髙木俊

        我在想桃子从韩国回来的时候会不会就是这样坐在飞机上哭的

      热点图片
      拼命载入中...