出错了!


104

您面临的挑战:为您选择的语言编写一个“程序”,使编译器/解释器/运行时在编译/运行程序时产生错误输出,该输出与程序的源代码相同。

规则:

  • 您的程序可能特定于语言的编译器/解释器/运行时环境的特定版本或实现。如果是这样,请详细说明。
  • 仅允许使用标准的编译器/解释器/运行时选项。您不能将一些奇怪的标志传递给编译器以获取特定的结果。
  • 该方案也并不需要在语法语义上还是有效的,但我可以给赏金以最好的语法有效的提交。
  • 该程序不得产生自己的任何输出(例如,通过调用打印或输出函数)。尝试编译/运行程序时生成的所有输出必须源自编译器/解释器/运行时。
  • 编译器/解释器/运行时的完整输出必须与程序源代码完全相同。
  • 用程序调用时,编译器/解释器/运行时必须至少生成一条错误消息。

这是一次人气竞赛。由投票决定的最有创意的答案将获胜。如果您可以为使用标准漏洞提供一个很好的理由,则可以这样做。


7
什么是“ 错误输出 ”?“ 生成错误消息 ” 是什么意思?更具体地说:1)输出是否必须是stderr?2)如果运行时将错误记录到syslog且未将任何内容写入stderr,应将其与程序源进行比较?3)如果运行时在给定一个空程序时在内部抛出异常,但是需要一个标志来实际打印该异常,因此最终以非零退出代码但没有输出退出,是否生成了错误消息?
彼得·泰勒

1
我尝试在Java中执行此操作,并获得了p3振荡器。这是最短的阶段:(从q.java编译):Error: Could not find or load main class Q
SuperJedi224

2
哈,由于第一句中的语法不明确,我认为这里的挑战是产生一个通常不产生输出的程序,但是如果将其自己的代码作为输入传递给它,则会产生错误。
史蒂夫·本内特

2
报告错误时,APL总是打印可自定义的错误名称,可选的错误消息,引起错误的程序名称,发生错误的(括弧的)行号,导致错误的代码行以及带有尖号的行,指示解析在哪里停止。有希望参加​​这里吗?
2015年

1
@SteveBennett为什么还没有挑战呢?
CalculatorFeline

Answers:


117

埃德(1字节)

到目前为止,所有其他解决方案都是漫长而丑陋的。我想那是由于大多数错误消息的性质。但是,一条好的错误消息简单易懂。为此,除了ed,别无所求。

?

将此文件保存到一个名为的文件中edscript,然后使用ed < edscript或运行ed<<<?。结果:

?

问号被写入stderr,ed返回1,因此这实际上是一条错误消息。我想知道为什么ed不太受欢迎?

假(0字节)

用运行false filename。它将程序的源代码(即什么都不做)写入stderr并返回1。可能有某种语言的解释器,不会输出任何错误消息,并且可以替换为false。

现在我希望这是代码高尔夫。


12
我正在浏览(长)的esolangs列表,以找到这样的语言。这是这一挑战的弱点。这与编写一个聪明的程序无关,而在于巧妙地选择语言。:/
IngoBürk2014年

23
@IngoBürk幸运的是,这是一次人气竞赛,而不是高尔夫。
蓬松的

0字节的False也是一次相同的代码,该代码曾因制造理论上最短的奎宁而赢得了IOCCC的“最严重滥用规则”奖。但是,它有很多编译器错误,并且它是用K&R C而不是ISO C(更严格)编写的。
伊西亚·梅多斯

6
@IngoBürk许多现实生活中的问题也与如何明智地选择语言有关。:P
Sarge Borsch 2014年

2
@Mendeleev * Quine(直到最近,由于某种原因,我一直在误读“ quine”为“ quinine” ...)
Isiah Meadows


81

CoffeeScript,在语法上有效

经过使用Chrome或Firefox 在其网站上进行的测试。

ReferenceError: defined is not defined

您可以defined用任何非内置变量替换,但我认为此版本很有趣。不幸的是,undefined is not defined特别地,它不能用作木盒。

在CoffeeScript中,这甚至不是语法错误,因为它可以编译。从技术上讲,这是JavaScript中的运行时错误,尽管这很无聊。CoffeeScript可能会产生一些更有趣的运行时错误信息,因为很多有趣的句子都是有效的代码。例如,上面的示例编译为

({
  ReferenceError: defined === !defined
});

2
defineddefined按惯例defined。哇...怎么...?
CalculatorFeline

3
Undefined is not defined(大写U)似乎工作洛尔
Shieru Asakoto

50

蟒蛇

斯派德

好吧,Spyder IDE的一个相当简单的解决方案是提出一个SyntaxError

代码和相同的输出:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
    execfile(filename, namespace)
  File "/Users/falko/golf.py", line 1
    Traceback (most recent call last):
                         ^
SyntaxError: invalid syntax

(带有Spyder 2.2.5的Python 2.7.8)


终奌站

Python的另一种解决方案从命令行开始就遇到了意外的缩进。

命令:

python golf.py

代码和相同的输出:

  File "golf.py", line 1
    File "golf.py", line 1
    ^
IndentationError: unexpected indent

ideone.com

ideone.com上,解决方法如下。(试试吧!)

代码和相同的输出:

Traceback (most recent call last):

  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: SyntaxError: ('invalid syntax', ('prog.py', 1, 22, 'Traceback (most recent call last):\n'))

(这是针对Python 2的。Python3的示例很简单,但是有15行“代码”相当长。)


一般的做法:

如何在2分钟内创建自己的解决方案?

  1. 在您选择的IDE中打开一个新文件。
  2. 将头撞到前方的键盘上。
  3. 编译。
  4. 将代码替换为编译器错误消息。
  5. 重复步骤3和4,直到代码收敛。

我敢打赌,这样的程序在大多数情况下会很快终止!


6
您可能会说,我正在使用这种通用方法。当复制的代码逐渐增加编译器错误的数量时,它将不起作用。:-)
rink.attendant.14年

9
@ rink.attendant.6:那时候我们需要有关软件工程的非常有价值的专家知识。;)
Falko 2014年

@ rink.attendant.6或者当您被圈出时被送走。在Excel-VBA立即窗口中尝试。
丹尼斯·贾赫鲁丁

45
我执行了步骤1、2和3,但无法执行步骤4,Perl代码完全有效!
rodolphito

嘿,在python stock IDE中怎么样,SyntaxError: invalid syntax也会产生同样的结果:)
Gurupad Mamadapur

42

> <>-25个字节

something smells fishy...

在Fish中,任何错误的指令都会输出错误:“某些东西闻到了鱼腥味……”。由于s是无效命令,因此会立即出错。


10
请注意,语言名称为> <>,​​通常发音为“ fish”。
亚伦

1
它的确是“有些东西闻到了腥味……”
Conor O'Brien 2015年

3
@CᴏɴᴏʀO'Bʀɪᴇɴ在python解释器上,确实是something smells fishy...,但Something smells fishy...在在线解释器上。它取决于解释器。
艾迪生·克伦普

1
@VTCAKAVSMoACE啊,谢谢。
Conor O'Brien 2015年

Cuz'fish'是90年代Shell程序/语言的名称!
尼克·T

41

Windows .EXE,248个字节

The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.

不完全是。另存为quine.txt,然后重命名为quine.exe(或在此处下载):


38

空格

首先,我认为这显然是不可能的。但是实际上它也是微不足道的。-.-

Fail: Input.hs:108: Non-exhaustive patterns in function parseNum'

试试吧。

是的,我的第一个空白程序!;)


1
我们甚至可以将称为空白程序吗?
V. Courtois

1
这是解释器错误吗?
immibis


29

的JavaScript

由于不同的浏览器使用不同的JavaScript编译器,因此它们会产生不同的消息。但是,这些是非常简单的解决方案。

V8(Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

在此处输入图片说明

SpiderMonkey(Firefox 31)

SyntaxError: missing ; before statement

在此处输入图片说明

Chakra(Internet Explorer 11)

Expected ';'

在此处输入图片说明


jscException: SyntaxError: Unexpected identifier 'identifier'D
拍手,

2
@ConfusedMr_C这是一个奇怪的标记。
SuperJedi224 2015年

@ SuperJedi224是的。至少它有效:P
拍到

28

准将64基本

?SYNTAX  ERROR

在您选择的仿真器(或实际的Commodore 64)上运行时,产生

?SYNTAX  ERROR

实际上,这是一个语法有效的单行程序。问号是的快捷方式PRINTSYNTAX并且ERROR是有效的变量名。因为解析器得到由子糊涂出现此错误ORERROR


5
如果解析器会很困惑,并抛出一个语法错误,不使它不是语法有效?
Martin Ender 2014年

4
@MartinBüttner,这实际上取决于您认为“有效语法”的权限是什么:语言描述或语言实现。
2014年

16
我知道,从语法上讲从技术上讲是有效的,但是由于特定实现的错误,它使解析器崩溃了吗?
Martin Ender 2014年

6
或多或少的事实,有混淆唯一一个实现。
2014年

Nitpick:CBM BASIC实际上在“ SYNTAX”和“ ERROR”之间打印两个空格,而不是一个空格。不幸的是,我无法编辑此答案来更正它,因为Stack Exchange强制要求最少6个字符的愚蠢编辑。
Psychonaut

28

微软Excel

式: #DIV/0!

错误信息: #DIV/0!

为了在不使用等号的情况下输入公式,请进入Excel选项/高级/莲花兼容性设置并启用过渡公式输入。


-2个字节:#REF!
工程师Toast


19

Java 8编译错误quine(12203字节)

使用以下命令在Windows + mingw上使用Java 1.8.0_11 jdk生成:

echo a > Q.java; while true; do javac Q.java 2> Q.err; if [ $(diff Q.err Q.java | wc -c) -eq 0 ]; then break; fi; cat Q.err > Q.java; done

可能不是最短的一个,也可能不是最长的一个,更多的是概念证明。之所以可行,是因为错误输出最多显示100个错误。

Q.java:1: error: class, interface, or enum expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:1: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:1: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:2: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:2: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:2: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:2: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:2: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:3: error: illegal start of type
^
^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:4: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:4: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:4: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:4: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:5: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:5: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:5: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:5: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:5: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:5: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:6: error: illegal start of type
                      ^
                      ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
 ^
Q.java:7: error: <identifier> expected
Q.java:1: error: <identifier> expected
      ^
Q.java:7: error: ';' expected
Q.java:1: error: <identifier> expected
       ^
Q.java:7: error: illegal start of type
Q.java:1: error: <identifier> expected
        ^
Q.java:7: error: = expected
Q.java:1: error: <identifier> expected
               ^
Q.java:8: error: '(' expected
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:8: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:8: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:8: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:8: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:8: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:9: error: illegal start of type
                                 ^
                                 ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
 ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
      ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
        ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
               ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                       ^
Q.java:10: error: illegal start of type
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                               ^
Q.java:10: error: <identifier> expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                  ^
Q.java:10: error: ';' expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                    ^
Q.java:10: error: unclosed character literal
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                       ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                     ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                           ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                      ^
Q.java:10: error: = expected
Q.java:1: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
                                                                                 ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:11: error: ';' expected
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:11: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:11: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:11: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:11: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:12: error: illegal start of type
                                      ^
                                      ^
Q.java:12: error: <identifier> expected
                                      ^
                                       ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
   ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
      ^
Q.java:13: error: <identifier> expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
              ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
               ^
Q.java:13: error: ';' expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                  ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                               ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                   ^
Q.java:13: error: unclosed character literal
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                        ^
Q.java:13: error: = expected
  (use -source 1.4 or lower to use 'enum' as an identifier)
                                                          ^
Q.java:14: error: <identifier> expected
Q.java:1: error: = expected
      ^
Q.java:14: error: ';' expected
Q.java:1: error: = expected
       ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
        ^
Q.java:14: error: = expected
Q.java:1: error: = expected
               ^
Q.java:14: error: illegal start of type
Q.java:1: error: = expected
                 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
 ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
      ^
Q.java:15: error: illegal start of type
Q.java:1: error: class, interface, or enum expected
       ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
        ^
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
          ^
Q.java:15: error: ';' expected
Q.java:1: error: class, interface, or enum expected
               ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                      ^
Q.java:15: error: <identifier> expected
Q.java:1: error: class, interface, or enum expected
                                 ^
Q.java:15: error: as of release 5, 'enum' is a keyword, and may not be used as an identifier
Q.java:1: error: class, interface, or enum expected
                                      ^
  (use -source 1.4 or lower to use 'enum' as an identifier)
Q.java:15: error: = expected
Q.java:1: error: class, interface, or enum expected
                                           ^
Q.java:16: error: illegal start of type
                                           ^
                                           ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
 ^
Q.java:17: error: <identifier> expected
Q.java:2: error: <identifier> expected
      ^
Q.java:17: error: ';' expected
Q.java:2: error: <identifier> expected
       ^
Q.java:17: error: illegal start of type
Q.java:2: error: <identifier> expected
        ^
Q.java:17: error: = expected
Q.java:2: error: <identifier> expected
               ^
100 errors


17

TrumpScript-使PPCG再次出色TrumpScript

尝试在Windows PC上运行此语言时,输出始终为:

Make sure the currently-running OS is not Windows, because we're not PC

因此,在运行该程序时:

Make sure the currently-running OS is not Windows, because we're not PC

它甚至不会解析它,因为OS检查失败,并且您收到错误消息。如果有人要Mac,也可以举Mac的例子。上帝,我已经想在PPCG中使用它一段时间了,这很好,我终于明白了。

可以使用环境细节触发的错误的完整列表:https :
//github.com/samshadwell/TrumpScript/blob/master/src/trumpscript/utils.py


奖励答案:ArnoldC(ArnoldC

ArnoldC需要的根声明IT'S SHOWTIME,即main(),所以:

WHAT THE FUCK DID I DO WRONG

结果是ArnoldC中唯一的错误消息...

WHAT THE FUCK DID I DO WRONG

哪个,实际上是……好笑。尽管没有堆栈跟踪,但您必须非冗长地运行它。


9
这些应该是两个单独的答案。
mbomb007 '16


12

朱莉娅0.2.0

反复发现另一个语法错误,直到达到固定点为止:

ERROR: syntax: extra token "token" after end of expression

11

Mathematica

Syntax: "needed." is incomplete; more input is needed.

.数学意味着要么小数点或功能Dot。在这种情况下,.出现在表达式的末尾并且无法解释。


在此处输入图片说明


我认为不可能。
ngenisis'1

9

C

我应用了将错误消息重复复制到源的方法。它在2个周期内收敛。在OSX 10.9上使用“ cc -c error.c”进行编译。

error.c:1:1: error: unknown type name 'error'
error.c:1:1: error: unknown type name 'error'
^
error.c:1:6: error: expected identifier or '('
error.c:1:1: error: unknown type name 'error'
     ^
2 errors generated.

注意:这并不是一个答案,而是一种获得答案的方法。结果可能会有所不同,具体取决于您的操作系统或所使用的cc版本。

获得结果的确切方法是执行指令

$ cc -c error.c 2>out ; mv out error.c ; cat error.c

重复直到输出停止更改。


我重试了。一开始它没有用。要使其正常工作,您必须先执行cc -c error.c 2>out然后mv out error.c。而今天有了cc版本,则需要更多迭代。
弗洛里安·F

您可能需要注意,答案中需要特定版本的OSX cc。否则,它是无效的,必须根据社区准则将其删除。
MD XF

@MDXF:它适用于clang。这是tio.run的链接,为122个字节:tio.run
##S9ZNzknMS///

8

C ++(g ++)

该文件必须另存为1.pas

g++: error: 1.pas: Pascal compiler not installed on this system

4
如果Pascal编译器是否仍工作系统中安装的?
SuperJedi224

@ SuperJedi224至少安装FreePascal没有帮助。我想GNU Pascal可能是正确的Pascal编译器,但是我没有尝试。
jimmy23013 2015年

8

INTERCALL,90个字节

Fatal error: A INTERCALL program must start with the mandatory header to prevent golfing.\n

在末尾包含换行符。请注意,这不是STDERR,但是许多人认为这是错误输出,因此我在这里发布了它。

这是“强制性标题”:

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:

到回购的链接已断开。
connectyourcharger

@connectyourcharger嗯,看起来好像没有回购了。
的Outgolfer Erik

是的,除了Intercal的回购协议外,Google搜索什么都不会产生。
connectyourcharger

@connectyourcharger不需要; 只有8个称为“ intercall”(不区分大小写)的存储库,而且都不是关于语言的,因此可以肯定地说它已经消失了(不,Wayback Machine也没有任何功能)。
暴民埃里克

8

GHCi(Haskell解释器/ shell)

Code.hs:1:1: Parse error: naked expression at top level

用法:

将代码写入名为Code的文件中,并使用GHCi加载。

一个很好的事实是,如果单词是实际标识符,则这将是一个合法的表达式(只要可以进行类型检查)。这主要是由于以下事实::内置运算符.用于模块限定名称,而空格用于表示函数应用程序。


.这里不是操作员。它是合格名称的一部分。这是什么版本的GHCi?
dfeuer

@dfeuer是的,我不好。随时修复它。ghci版本可能与当时的情况差不多。
骄傲的haskeller

7

Windows上的Ruby 2

码:

error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

通过反复测试和迭代过程找到代码,直到达到固定点为止。该代码必须位于文件中"error.rb"

演示:

C:\>type error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

C:\>ruby.exe error.rb
error.rb:1: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTR
ING_DBEG or tSTRING_DVAR or tSTRING_END
error.rb:1: syntax error, unexpected tI...
          ^

7

Applescript(在脚本编辑器中)

Syntax Error
A "error" can't go after this identifier.

在此处输入图片说明


8
错误吗?

单词“ A”出现在以辅音或辅音开头的单词之前。对于以元音或元音开头的单词,正确的冠词是“ an”。我只是挑剔:)

1
@猫我明白了。是的,我从未声称过语法上的正确性:)
Digital Trauma


7

C(gcc)

error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
 error.c:1:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
      ^
compilation terminated due to -Wfatal-errors.

用编译gcc -Wfatal-errors error.c



6

BBC基本,7个字节(或0个字节)

这是一个有效的7字节条目:

Mistake

这是解释器在完全无法理解代码时产生的错误消息。

另一方面,这不是:

ERROR

这是BBC Basic中的有效关键字,应该故意将指定代码的错误引入程序中,但是语法错误(没有给出代码)。因此它返回Syntax errorMistake运行时又返回)。

通常,Falko在他的回答中描述的过程导致Mistake了BBC基本问题。有一些例外。任何会产生错误DATA not LOCALON ERROR not LOCAL导致著名的零字节quine的东西:一个空的源代码会产生一个空文件。

鉴于BBC基本版中的大多数错误消息都是小写的(因此不是有效的关键字),我很确定任何无效输入最终都会导致这些可能性之一。


5

CoffeeScript

发生第一个错误失败,因此很容易做到:

E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

演示版

E:\>coffee -c foo.coffee
E:\foo.coffee:1:3: error: unexpected \
E:\foo.coffee:1:3: error: unexpected \
  ^

E:\>

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.