我想描述一个复杂的脚本和可能的编程语言.我想在做任何事情之前用Backus-Naur形式描述它(不包括虚拟/样本脚本代码)
还有另一种形式来描述Backus-Naur形式的语言吗?我应该考虑哪些替代方案?
我需要通过互联网上的http下载一些csv文件,解析它并将其转换为更有用的fomat.最终,C++程序将使用数据.几年前,我将提取我的Perl书籍并开始编写Perl脚本来进行下载和解析.但是现在有了Boost和Qt,我可以用很少的努力在C++中进行下载,解析和投入GUI前端.上次我写Perl/Python大约是6个月前.在Perl/Python中执行它可能需要更长的时间,而我的Perl/Python代码将是垃圾.如果我唯一的工具是锤子,一切看起来像钉子?或者时间已经改变,C++在传统上由Perl或Python等脚本语言主导的领域可以高效生产?
有没有人知道列出新脚本/编程语言(或旧语言)的网站?我不是在谈论现有语言的新版本,只是大多数人都没有听说过的新版本或旧版本.即使他们不是好语言......?
是否可以在Perl中执行Web流的一部分,然后将剩余的会话转移到Firefox?
我需要重试(使用Perl)登录到一个网站,该网站每次都会返回500,然后成功登录,将经过身份验证的会话转移到Firefox,我可以继续正常浏览.这可能吗?
如果可以,我该怎么办?你能指点我一些关于如何转移cookie /会话的资源吗?
我目前使用Perl,Python,C#,C,C++,Java和其他一些语言进行编程,我正在寻找一种新的语言,可以在进行个人项目时用作主要语言.
我目前的标准是:
想法?建议?
programming-languages scripting-language interpreted-language compiled-language
非常简单的问题可能是但不能让这个工作....基本上我有一个XML文件,在内部允许我将少量参数传递给外部程序,在我的情况下我选择了shell脚本由于不可避免的原因.
现在它在大多数情况下工作但我遇到了问题,基本上我传递了从XML到shell脚本的12个参数 - 在shell中传递和使用参数工作正常直到第9个参数当我遇到第10个第11个第12个参数时他们将ARG1连接到0对于第10个参数,ARG1为1表示第11个参数,Arg1表示2表示第12个参数.
ARG1=$1 # Name
ARG2=$2 # Text
ARG3=$3 # Model
ARG4=$4 # Network Address
ARG5=$5 # Type
ARG6=$6 # Landscape
ARG7=$7 # Cause
ARG8=$8 # Troubleshooter
ARG9=$9 # Originiating Event
ARGX=$10 # Status
ARGY="$11" # Customer
ARGZ="$12" # Category
Run Code Online (Sandbox Code Playgroud)
所以ARG10的值基本上是ARG1和0,因为ex让你说ARG1作为"文本"而ARG10作为"新"从XML文件传递到shell脚本但是当ARG10在shell脚本中回显时它回应 - "text0"而不是new .
我非常确定这是一个愚蠢的事情,我需要一些帮助,了解我编码错误的地方.
我正在尝试使用C#编写脚本游戏.我之前问了一个类似的问题但是这个例子指的是.cs文件中的invovled硬编码.无论如何编译和运行包含C#代码的程序集,其中包含可以更改托管.cs文件中的变量的函数,赋值,运算符和类型?例如:
我的.cs文件包含一个字符串变量myName.
我的脚本代码包含一个函数myfunction.
有没有办法从我的函数访问myName并通过调用myfunction上的Invoke方法更改我的.cs文件中的值?没有在我的.cs文件中硬编码myfunction?
我使用DynamicLua库将 Lua 脚本添加到我的 C# 应用程序中,效果非常好。我想实现您获取正在执行的当前行(就像在 Visual Studio 中一样)并突出显示它。
目前我正在这样做:
public static void RunLua(string LuaToExecute)
{
dynamic lua = new DynamicLua.DynamicLua();
string[] lua_s_split = LuaToExecute.Split('\n');
int counter = 0;
foreach (string line in lua_s_split)
{
// highlight current line in editor
HighlightLine(counter + 1);
//execute current line
lua(line);
counter++;
}
}
Run Code Online (Sandbox Code Playgroud)
这与我的 Lua 代码配合得很好,比如
move(20, 19)
sleep(1000)
move(5, 19)
Run Code Online (Sandbox Code Playgroud)
但我不能只执行一行语句。就像我的绑定函数一样move()。但我也想使用多行语句,例如函数和循环。如果文本编辑器包含:
function test()
return "Hallo Welt"
end
Run Code Online (Sandbox Code Playgroud)
将lua(line)引发异常,因为仅function test()传递第一行并且解释器缺少结束语句。
我能做些什么?我是否应该检查该行是否以函数、while... 命令开头,然后扫描结束块并将其添加到字符串中,以便我可以一次性执行并突出显示该多行语句?这可能吗?我该怎么做呢?
请帮忙。
所有脚本语言都是解释性的吗?我还没有遇到过编译+脚本语言。以下语言都是解释语言和脚本语言。解释语言和脚本语言之间有什么联系。
例如 JavaScript、python、perl
反过来呢?
我对lua很新,我想了解以下行为.
当我尝试运行以下递归函数时:
local func = function ( n )
if n == 1 then return 1
else return n * func( n - 1 )
end
end
print( func( 5 ) )
Run Code Online (Sandbox Code Playgroud)
程序将失败并出现错误:
lua: main.lua:16: attempt to call a nil value (global 'func')
stack traceback:
main.lua:16: in local 'func'
main.lua:38: in main chunk
[C]: in ?
Run Code Online (Sandbox Code Playgroud)
这是好的,因为根据解释,func变量的本地版本尚不知道,所以它试图调用全局版本.但是当我删除本地关键字时,以下代码正常工作?
func = function ( n )
if n == 1 then return 1
else return n * …Run Code Online (Sandbox Code Playgroud)