我曾经用来perl -c programfile检查Perl程序的语法,然后退出而不执行它.是否有相同的方法为Python脚本执行此操作?
可能重复:
如何在不执行的情况下检查Python脚本的语法?
如何在不运行的情况下编译Python脚本?我只是想检查脚本的语法错误.我希望有一个简单的命令行开关,但我没有看到任何内容python --help.我想要Python 2和Python 3的答案.
参考PHP文件是否有静态代码分析器[如Lint]?- 我正在研究如何在开发人员提交之前评估PHP文件的内容. 任何适合的解决方案都将通过类似答案的SVN钩子触发:是否可以从PHP检查PHP文件语法?
我在检查SVN时遇到了PHP文件的自动语法检查,这是我想要的角度,但是...... php -l还不够.
例如,给定代码:
if ($foo == 'bar') {
echo $foo;
}
Run Code Online (Sandbox Code Playgroud)
这导致:
2012/01/15 02:51:14 [错误] 694#0:*164 stderr发送的FastCGI:"PHP注意:未定义的变量:foo
相比:
if (isset($foo)) { echo $foo; }
Run Code Online (Sandbox Code Playgroud)
其中一些归结为教育程序员最佳实践.不幸的是,有些人没有像其他人那样快速学习,并且确保符合编码标准的唯一方法是减少进入未经测试或不符合要求的SVN.
从这个问题的第一个链接,我尝试过:
$foo$fooRun Code Online (Sandbox Code Playgroud)if ($foo == 'bar') { \_ HERE==== /mnt/hgfs/workspace/scratch-pad/phpinfo.php:44:警告:比较(未知)==(串):无法检查未知类型之间的比较
$foo虽然PHP完整性检查表明它是正确的答案,但不会通知问题所有这些都以他们自己的方式很有趣,但是没有人能够捕获这些只在运行时才能找到的问题.
欣赏有关此主题的意见/想法.
编辑
有一张海报表明PHPLint是正确的方法.我想,好的!让我们再试一次,因为有一个新版本: phplint-pure-c-1.1_20120202:
<?php
if ($foo == 'bar') …Run Code Online (Sandbox Code Playgroud) 有人可以将我推荐给在线PHP验证器吗?这会有很大帮助.
提前致谢!
在我的日常工作中,我和团队中的其他人在Verilog-AMS中编写了许多硬件模型,这种语言主要由商业供应商和一些开源模拟器项目支持.支持彼此代码更有帮助的一件事是LINTER,它会检查我们的代码是否存在常见问题并协助实施共享代码格式化风格.我当然希望能够添加自己的规则,在我向自己证明自己的实用性之后,将它们提升给团队的其他成员.我不介意做必须完成的工作,但当然也是想利用其他现有项目的工作.
使用yacc或bison格式的允许语言语法是否能让我站起来?或者我应该将每个语言语句吮吸到perl字符串中,并使用模式匹配来查找我不喜欢的内容?
(大多数语法和编译错误很容易被商业工具捕获..但我们有一些自己的扩展.)
我在检查rubb脚本的语法时遇到问题,这些脚本在其shebang上有rails script/runner.
以下是两个示例脚本以及它们如何响应ruby语法检查:
脚本hello_world_runner.rb:
#!/usr/bin/env script/runner
p "Hello world!"
Run Code Online (Sandbox Code Playgroud)
脚本 hello_world.rb
#!/usr/bin/env ruby
p "Hello world!"
Run Code Online (Sandbox Code Playgroud)
以下是我尝试检查语法的方法.第一行是命令,第二行是输出.
$ ruby -c hello_world_runner.rb
"Hello world!"
$ ruby -c hello_world.rb
SYNTAX OK
Run Code Online (Sandbox Code Playgroud) 我在vim中安装了Syntastic插件.我无法让它发挥作用.我试过:SyntasticEnable但没有运气.SyntasticEnable python在我的vimrc不工作或者(事实上,它甚至不分析命令,当我尝试将其添加到我的显示错误.vimrc:Not an editor command: SyntasticEnable python).
我怎么知道发生了什么?当我从vim调用它时,Syntastic没有显示错误.第一个错误(not and editor command在我看来.vimrc)是否表示我不知道的事情?
我在.vimrc中:
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=1
Run Code Online (Sandbox Code Playgroud)
我有一个python.vim在~/.vim/syntax_checkers为好.我已经可以用Pyflakes为Python文件,它的工作原理伟大的,但我想在其他文件/扩展开发应用程序时,我需要Syntastic功能.
我们目前正在设置集成服务器,在此过程中我们在SVN上设置了预提交挂钩,这样我们的开发人员就无法检查语法无效的文件(主要是PHP和XML).
我们还有一堆.sql文件(对于MySQL),我也想提到它们.不幸的是,谷歌没有提出任何有用的任务.
有任何想法吗?
我目前正在开发一个具有嵌入式文本编辑器的程序.用户应该在编辑器中键入java代码.然后将编入编辑器的代码转换为字符串.我只想要一些能够检查缺失括号或没有捕获的尝试等等.它不需要编译.我已经看了很多,但我仍然是编程的新手,无法实现一些更难的东西.
所以要缩短它:我正在寻找一些可以分析代码的语法错误的java包.
是否有一些工具可以对我的JavaScript文件进行语法检查,看看它们是否包含会困扰Internet Explorer的Javascript引擎的语法错误,尤其是多余的尾随逗号?
例:
var some_object = {
valid : "property",
one : "comma too much ---> ",
};
Run Code Online (Sandbox Code Playgroud)
此代码在FireFox,Chrome 和Node.JS中正常工作,但由于尾随逗号而在IE中失败.IE的集成调试器很少有帮助,因为它不会像我们那样为大型Web应用程序产生有用的错误/警告(许多JavaScript文件总结在一起,总计达50-100 k行代码).
JSLint没有帮助,因为它报告了大量其他警告或停止在一些无意义的错误.
一个想法可能是eval()在IE中直接使用并捕获SyntaxError异常,但我无法以自动方式(即在命令行上)执行此操作.
遗憾的是,Node.JS并不关心尾随逗号.
没有Linux/Windows工具可以对文件进行基本的JavaScript语法检查吗?
syntax-checking ×10
php ×3
python ×3
coding-style ×1
fastcgi ×1
java ×1
javascript ×1
lint ×1
mysql ×1
ruby ×1
shebang ×1
syntastic ×1
validation ×1
verilog ×1
vim ×1