Tag: javacc

什么更好,ANTLR或者JavaCC?

关注的是文档/可学习性,eclipse集成,工具,社区支持和性能(大致顺序)。

为什么019不是JavaScript语法错误? 或者为什么是019> 020

如果我在JavaScript控制台中input019 > 020 (在Chrome和Firefox中都testing过),我的答案是true 。 这是由于020被解释为OctalIntegerLiteral (等于16 ),而019显然被解释为DecimalLiteral (和等于19 )。 当19大于16 , 019 > 020为true 。 令我感到困惑的是为什么019被解释为DecimalLiteral 。 是哪个生产? DecimalIntegerLiteral不允许019 : DecimalIntegerLiteral :: 0 NonZeroDigit DecimalDigits_opt OctalIntegerLiteral也不允许019 (因为9不是八进制数字): OctalIntegerLiteral :: 0 OctalDigit OctalIntegerLiteral OctalDigit OctalDigit :: one of 0 1 2 3 4 5 6 7 所以从我在规范中看到的019实际上应该被拒绝,我不明白为什么它被解释为一个十进制整数。 我想这里有一些兼容性规则,但是我没有find一个正式的定义。 可以请任何人帮助我呢? (为什么我需要这个:我正在用JavaCC为Java开发一个JavaScript / ECMAScriptparsing器,并且必须特别注意规范及其偏差。)