使用命令行编译器而不是文件编译文本


1

我正在使用luac -p file.lua解析文件来检查语法错误。有可能做这样的事情:

luac -p | [a bunch of text]

有人提到了一些关于'管道'的事情,但我无法弄清楚这会有什么帮助。

我想要做的是从我正在编写的程序中获取文本并将所有文本放入编译器中,-p以便它只解析文本。基本上我想检查我的程序的textarea的语法,而不必先将它写入文件。


您是否使用Windows命令行?如果是这样你可以像这样循环for %a in ("C:\Folder\*.lua") do luac -p | "%~a"....
比特币杀戮狂人

c:\ folder * .lua似乎是指一个文件。我正在尝试编译没有文件的文本 - 可能是从剪贴板或只是将所有文本添加到命令提示符。我是从java Process执行的。(也是旁注,我希望能用mac和windows工作)
tproper

2
是的,luac接受stdin的程序:luac -p - 所以,只需运行cat program.lua | luac -p -
Egor Skriptunoff

不确定这是怎么回事......什么是program.lua?记住,我没有文件,它的文本进入终端。
tproper

Answers:


0

在bash中你可以做到

luac -p - << EOF

然后输入您的文字。要表示结束,只需输入

EOF

在新线上按下输入。


我尝试过luac -p - << print("Hello) \n EOF,它只是启动luac或者其他东西而且没有返回错误,这是在该文本中缺失的。
tproper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.