执行完比较后,可以迭代结果。如果在任何时候不再需要编译后的正则表达式,则使用 regfree() 删除它。还有一个 regfreeall() 函数可以处理所有已编译表达式所持有的所有资源。
Squirrel Shell 的限制
在理想情况下,相同的编程逻辑将应用到 Unix、Linux 和 Windows 中,并且效率至少和以前一样高,这样程序员会更加高兴。可惜操作系统各不相同,您经常需要为了某个特定系统而求助于定制代码。
在这些情况下,无论是 Squirrel Shell 还是您都无法脱离平台,Squirrel Shell 提供了一个方便的函数来探测操作系统,这样代码就可以适当的执行。
清单 6 展示了如何使用 platform() 函数作出决策。该函数始终返回一个值,但是该值可能是 unknown。
清单 6. platform() 函数生成操作系统类型
print( "Made by ... ");
local platform = platform();
switch ( platform ) {
case "linux":
printl( "Linus." );
break;
case "Macintosh":
printl( "Steve." );
break;
case "win32":
case "win64":
printl( "Bill." );
break;
default:
printl( "Unknown" );
}
您可以通过 Squirrel Shell 环境变量 PLATFORM 查找当前平台的类型:
> printl( PLATFORM );
linux
环境变量 CPU_ARCH 生成处理器,shell 将针对该处理器进行编译:
> printl( CPU_ARCH );
x86
结束语
Squirrel Shell 的其他函数将管理文件、处理环境和执行策略。实际上,它的三角学内置函数就有 20 余种。Version 2.0 目前正在规划之中,并且将包含更多类、对 Unicode 的支持、改进的交互模式,以及一个模块化的插件架构。
Squirrel Shell 并不算得上一种交互式 shell,但是这没关系。在这方面已经出现了很多选择。作为一种脚本运行程序,Squirrel Shell 要比其同类出色许多。其数据结构要比传统 shell 更加强大,它的语法简单易懂,其底层虚拟引擎支持从枚举类型到线程等所有内容。Squirrel 引擎也很小巧,不超过 6000 行代码。您甚至可以将完整的 Squirrel 嵌入到另一个应用程序中。
当您需要为两个平台编写代码时,请尝试使用 Squirrel Shell!它使您能够轻松编写自己的代码。
标签: