问题标签 [syntax-checking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
14404 浏览

coding-style - 如何写一个 linter?

在我的日常工作中,我和团队中的其他人用 Verilog-AMS 编写了很多硬件模型,这是一种主要由商业供应商和一些开源模拟器项目支持的语言。让相互支持代码更有帮助的一件事是 LINTER,它可以检查我们的代码是否存在常见问题,并协助执行共享代码格式样式。我当然希望能够添加自己的规则,并且在我证明它们对自己有用之后,将它们推广给团队的其他成员。我不介意做必须完成的工作,但当然也希望利用其他现有项目的工作。

拥有 yacc 或 bison 格式的允许语言语法是否可以帮助我?还是我应该将每个语言语句吸进一个 perl 字符串,然后使用模式匹配来查找我不喜欢的东西?

(大多数语法和编译错误很容易被商业工具捕获。但我们有一些自己的扩展。)

0 投票
4 回答
4238 浏览

c# - 测试 Powershell 脚本的正确性

他们无论如何都是在不执行powershell脚本的情况下测试它的正确性。我知道你可以在 unix 中做类似的事情,但找不到 powershell 的等价物。

基本上我拥有的是一个脚本存储库,其中每个脚本都与规则相关联。如果触发规则,则脚本将执行,但我需要确保脚本有效,然后再将其放入存储库。

谢谢。

嗨,好吧,不幸的是 -whatif 命令是不够的。它是我想从 C# 运行时引擎检查的脚本的语法,如果引擎规则触发,它会触发脚本。在脚本触发之前,我将规则中的 IList 值写入其中,然后触发它。但是我需要确保它在语法上是正确的,否则我将不得不依靠规则编写器来确保它们是正确的,这是我做不到的,因为很多人会编写规则,只有一个 duff 脚本会带来发动机停机。我不能这样做,因为引擎是为六西格玛正常运行时间而设计的企业级产品。

我认为这样做的方法是使用它,这是一个 v2 库。

http://msdn.microsoft.com/en-us/library/system.management.automation.parseexception(VS.85).aspx

我认为有一种方法可以创建一个 ScriptBlock 并在它周围放置一个 try catch 来捕获 ParseException。有人可以告诉我该怎么做。这正在成为一个真正的挑战。

谢谢。

嘿,好吧,我与 MS 中的一个人(他是 sharepoint pm)进行了交谈,他与其中一个 powershell 人员交谈,他告诉我在 powershell v1 中没有真正的方法可以在不执行的情况下检查脚本的语法。所以我猜 -whatif 标志是最接近的,但不幸的是它不是静态检查器。好消息是,在 v2 中,有一种方法可以通过 Automation.PsParser 类 Tokenize 成员对输入流进行标记。这将根据 PS 语法对脚本进行标记,因此如果它是废话,它就是废话脚本。问题是 v2 还没有发布日期。

感谢帮助。鲍勃。

0 投票
2 回答
2030 浏览

perl - 如何在不破坏语法检查的情况下将项目特定的 @INC 模块路径添加到 Komodo?

对于 Perl 移植项目,我使用 ActiveState 的 Komodo IDE 5.1

由于外部原因,xyz.pm 模块位于不同的目录树中。通过在 debu/run 对话框的“environemt”选项卡下添加 PERL5LIB=<>,我可以向 Komodo/Perl 展示如何运行脚本。

不幸的是,语法检查似乎没有评估这些指令,并且 IDE 声称存在致命的“无法找到 xyz.pm”错误,尽管脚本运行良好。

解决此问题的一种方法是使用 <Edit><Preferences><Languages><Perl> 下的“Additional Perl Import Directories”添加模块路径,但这是一个全局指令,而不是特定于项目的指令,这会导致各种模块名称冲突时的有趣问题。

那么,如何配置 Komodo IDE 以在项目中存储“附加 Perl 导入目录”[用于语法检查的 @INC 路径]?

编辑:建议的添加方法使用lib qw'../lib'; 可能会有所帮助,如果我只能让它在IDE中执行就好了。但是这段代码不能出现在生产环境中,因为启动脚本正确设置了环境。

0 投票
6 回答
3818 浏览

ruby-on-rails - 语法检查或“编译”Ruby on Rails 应用程序

我是 Ruby 新手,最近在创建 Ruby on Rails 应用程序时遇到了与值进行比较的问题。在控制器中,我有以下始终返回 false 的语句:

问题是 user.id(它是一个 Active Record)是一个整数,而 params[:id] 是一个字符串。我花了一段时间才弄清楚这一点,最后我把它改成了:

现在该语句按预期工作。

为避免将来出现此错误,是否有办法“编译”或让 Ruby 在您尝试比较 2 种不同类型时发出警告?我遇到的其他一些我想“编译检查”的问题是:

  • 如果我创建变量但不使用它,请警告我。帮助检查变量名中的拼写错误。
  • 确保类中存在一个方法,这样我就可以避免方法名称拼写错误,也有助于重构,例如,如果我重命名一个方法。

我目前在 Windows 上使用 Ruby 1.8.6-27 RC2 和 Rails 2.3.2 和 RadRails IDE。

0 投票
4 回答
6367 浏览

php - 是否可以从 PHP 检查 PHP 文件语法?

我使用自动加载动态加载 PHP 类文件。这些文件可能由于某种原因丢失或损坏。

自动加载将成功报告丢失的文件,以便应用程序逻辑可以处理。但是,如果这些文件已损坏,则整个处理过程将停止,用户出现空白屏幕并在错误日志中显示“PHP Parse 错误:语法错误”。

是否可以从 PHP 代码检查 PHP 文件的语法?

我看过这里:http ://us.php.net/manual/en/function.php-check-syntax.php - 它已被弃用。

似乎是错误的方式(http://bugs.php.net/bug.php?id=46339

想法?

0 投票
3 回答
2621 浏览

javascript - JavaScript 语法检查和压缩

你知道一个好的 JavaScript 语法检查器和压缩器吗?

我们目前使用 JSLINT 作为语法检查器和 YUI 进行压缩。请注意,我们正在使用库 ExtJS 作为 UI。

0 投票
3 回答
629 浏览

c - 删除 Splint 中的空警告

我一直在用我最近编写的 C 程序尝试Splint,并试图理解和删除它给出的警告。我理解但不明白如何删除它来自以下代码片段:

Splint 对函数可以返回 NULL 感到不高兴,但在这种情况下,它非常有意义。

我尝试使用 / @nullwhenfalse@ / 但它似乎只有在函数返回 true/false 并且还尝试更改代码以使用 retVal 并尝试 / @null@ / 和 / @relnull@ / 的情况下才有效声明,但这些什么也没做。

(顺便说一句,这张桌子只有 20 个大 atm,所以没有必要使用聪明的搜索算法。)

0 投票
4 回答
3578 浏览

php - PHP 健全性检查

我正在寻找执行 php 代码完整性检查的应用程序或方法。我希望避免以艰难的方式发现编码错误,而是在发布网站之前找到它们。

display_errors = on 和类似的运行时方法发现问题为时已晚。

到目前为止,我找到了以下方法,我认为这些方法还不够彻底:

  • php_check_syntax() 来自 php
  • php -l 从命令行
  • ioncube php编码器
  • netbeans 和 eclipse 作为编辑

有什么更好的方法可以尽早发现 PHP 代码中的问题?

0 投票
2 回答
6187 浏览

asp-classic - 有人知道经典 ASP 的语法检查器吗?

作为我的 Web 开发系统的一部分,我编写了一个文本编辑器(在 CSS 和 HTML 等其他格式中)具有 ASP 语法突出显示。

有谁知道我可以从这个编辑器中调用的(最好是)DLL 的 ASP 语法检查程序,这样我就可以向我的用户提供一个错误列表(就像我已经使用 HTML 验证器所做的那样)。

我想在网页上使用代码之前检查 ASP 语法。现在,根据错误的类型和位置,可能需要几天或几周的时间才能弹出一些错误。

0 投票
1 回答
235 浏览

ruby - 报价问题(红宝石)

知道如何将正确的参数传递给 xpath 吗?必须有一些关于如何使用单引号/双引号的东西。当我使用变量时

parser_xpath_identificator = "'//table/tbody[@id=\"threadbits_forum_251\"]/tr'"给我一个不正确的值或

parser_xpath_identificator = "'//table/tbody[@id="threadbits_forum_251"]/tr'"给我一个错误语法错误,意外的 tIDENTIFIER,期待 $end