Зробіть quine error!


104

Ваше завдання: написати "програму" на обраній вами мові, яка змушує компілятор / інтерпретатор / час виконання створювати помилки під час компіляції / запуску програми, що є ідентичним вихідному коду вашої програми.

Правила:

  • Ваша програма може бути специфічною для певної версії або реалізації середовища вашого компілятора / перекладача / часу виконання. Якщо так, то вкажіть деталі.
  • Дозволені лише стандартні параметри компілятора / інтерпретатора / часу виконання. Ви не можете передати якийсь дивний прапор своєму компілятору, щоб отримати конкретний результат.
  • Програмі не потрібно бути синтаксично чи семантично дійсними, але я можу дати винагороду найкращим синтаксично правильним поданням.
  • Програма не повинна виробляти власних результатів (наприклад, викликаючи функцію друку або виводу). Весь вихід, отриманий при спробі компілювати / запустити програму, повинен походити від компілятора / інтерпретатора / часу виконання.
  • Повний вихід компілятора / інтерпретатора / часу виконання повинен бути точно ідентичним вихідному коду програми.
  • Компілятор / інтерпретатор / час виконання повинен створити принаймні одне повідомлення про помилку при виклику у вашій програмі.

Це конкурс на популярність . Найбільш креативна відповідь, як визначено результатами, виграє. Якщо ви можете надати хороший випадок для використання стандартної лазівки, ви можете зробити це.


7
Що таке " вихід помилок "? А що означає " генерувати повідомлення про помилку "? Більш конкретно: 1) Чи повинен вихід бути більш жорстким? 2) Якщо час виконання журналу записує помилку в syslog і нічого не пише на stderr, що слід порівняти з джерелом програми? 3) Якщо під час виконання порожньої програми внутрішній цикл виконує виняток, але вимагає, щоб прапор фактично надрукував виняток, і таким чином закінчується вихід із ненульовим кодом виходу, але немає виводу, чи було створено повідомлення про помилку?
Пітер Тейлор

1
Я спробував це зробити в Java і отримав осцилятор p3. Це був найкоротший етап: (Збірка з q.java):Error: Could not find or load main class Q
SuperJedi224

2
Так, через синтаксичну неоднозначність у першому реченні, я подумав, що завдання тут полягає в тому, щоб створити програму, яка, як правило, не видає вихід, але якщо ви передасте власний код йому як вхід, він створює помилку.
Стів Беннетт

2
Повідомляючи про помилку, APL завжди друкує настроювану назву помилки, необов'язково повідомлення про помилку, назву програми, яка спричинила помилку, номер рядка (поставлений у коробці), де сталася помилка, рядок коду, який спричинив помилку, та рядок із каретою із зазначенням місця зупинки розбору. Будь-яка надія на участь тут?
Адам

1
@SteveBennett Чому ви ще не зробили це завдання?
CalculatorFeline

Відповіді:


117

Ед (1 байт)

Всі інші рішення поки що довгі і некрасиві. Я гадаю, це через характер більшості повідомлень про помилки. Але гарне повідомлення про помилку є елегантним у своїй простоті. Для цього дивіться не далі, ніж редакція.

?

Збережіть це у файлі під назвою edscriptта запустіть із ним ed < edscriptабо запустіть ed<<<?. Результат:

?

Знак питання записується на stderr, а ed повертає 1, тому це фактично повідомлення про помилку. Цікаво, чому Ед не дуже популярний?

Неправильно (0 байт)

Бігайте з false filename. Він записує вихідний код програми (тобто нічого) на stderr і повертає 1. Звичайно, називати помилковою мовою програмування сумнівно, а нульовий байт-quine неоригінальний, але я подумав, що міг би також додати його. Напевно, є якийсь перекладач для мови, який друкує повідомлення про помилки і може замінити помилкові.

Тепер я хочу, щоб це був гольф з кодом.


12
Я переглядав (довгий) список езолангів, щоб знайти таку мову. У цьому полягає слабкість цього виклику. Справа не в тому, щоб написати розумну програму, а в тому, щоб розумно вибрати мову. : /
Інго Бюрк

23
@ IngoBürk На щастя це змагання популярності, а не гольф.
пухнастий

0-байтовий помилковий - це той самий код, який свого часу виграв нагороду МОККК за найгірше зловживання правилами за те, що теоретично найкоротший хінін. Однак у ньому було багато помилок компілятора, і це було написано в K&R C, а не ISO C (що суворіше).
Ісія Медоуз

6
@ IngoBürk Багато проблем із реального життя стосуються і розумного вибору мови. : P
Sarge Borsch

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
definedє за definedітіоном defined. Що ... як ...?
CalculatorFeline

3
Undefined is not defined(з великим капіталом U), здається, працює лол
Шиеру Асакото

50

Пітон

Шпидер

Ну, досить тривіальним рішенням для IDE Spyder є підняти 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

(Python 2.7.8 зі Spyder 2.2.5)


Термінал

Альтернативне рішення для 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. Приклад для Python 3 - тривіальний, але з 15 рядками "коду" досить тривалий.)


Загальний підхід:

Як створити власне рішення за 2 хвилини?

  1. Відкрийте новий файл у вибраному вами IDE.
  2. Удар головою об клавіатуру перед собою.
  3. Складіть.
  4. Замініть код повідомленням про помилку компілятора.
  5. Повторіть кроки 3 і 4, поки код не сходиться.

Надіваюся, така процедура в більшості випадків припиняється досить швидко!


6
Як ви, напевно, можете сказати, я використовую цей загальний підхід. Він не працює, коли скопійований код поступово збільшує кількість помилок компілятора. :-)
rink.attendant.6

9
@ rink.attendant.6: Ось тоді потрібні наші цінні експертні знання з інженерії програмного забезпечення. ;)
Фалько

@ rink.attendant.6 Або коли вас відправляють у коло. Спробуйте його у прямому вікні Excel-VBA.
Денніс Джахеруддін

45
Я зробив крок 1, 2 і 3, але не зміг зробити крок 4, код Perl був абсолютно дійсним!
rodolphito

Гей, як щодо цього в SyntaxError: invalid syntax
пітоні

42

> <> - 25 байт

something smells fishy...

У Fish будь-яка погана інструкція виводить помилку: "щось пахне риб'ячим ...". Оскільки s не є дійсною командою, вона помиляється негайно.


10
Зверніть увагу, що назва мови -> <>, що зазвичай вимовляється "риба".
Аарон

1
І це справді "Щось пахне риб'ячим ..."
Conor O'Brien

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ Що стосується інтерпретатора python, це дійсно something smells fishy..., але він є Something smells fishy...в Інтернеті. Це залежить від перекладача.
Аддісон Кримп

1
@VTCAKAVSMoACE Ах, дякую.
Conor O'Brien

Тому що "риба" - назва програми / мови оболонки для 90-х !
Nick 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
Чи можемо ми навіть назвати це програмою пробілу?
В. Куртуа

1
Це помилка перекладача?
іммібіс


29

JavaScript

Оскільки різні браузери використовують різні компілятори JavaScript, вони створюють різні повідомлення. Однак це досить тривіальні рішення.

V8 (Chrome 36 / Node.js)

SyntaxError: Unexpected identifier

введіть тут опис зображення

SpiderMonkey (Firefox 31)

SyntaxError: missing ; before statement

введіть тут опис зображення

Чакра (Internet Explorer 11)

Expected ';'

введіть тут опис зображення


В jsc:: Exception: SyntaxError: Unexpected identifier 'identifier'D
плескати

2
@ConfusedMr_C Це надзвичайний знак для задушення.
SuperJedi224

@ SuperJedi224 Так. Принаймні, це працює: P
хлопайте

28

Commodore 64 Basic

?SYNTAX  ERROR

Коли ви працюєте на емуляторі на ваш вибір (або фактичному Commodore 64), виробляє

?SYNTAX  ERROR

Це, власне, синтаксично дійсна однолінійна програма. Знак питання ярлик для PRINT, і SYNTAXта ERRORє допустимими іменами змінних. Помилка виникає через те, що аналізатор плутається в підрядці ORв ERROR.


5
Якщо аналізатор заплутається і кидає синтаксичну помилку, робить це не робить його НЕ синтаксично правильним?
Мартін Ендер

4
@ MartinBüttner, це дійсно залежить від того, який ви вважаєте авторитетом для "дійсного синтаксису": опис мови або мовна реалізація.
Марк

16
Я бачу, настільки технічно це синтаксично справедливо, але він спрацьовує на аналізатор через помилку конкретної реалізації?
Мартін Ендер

6
Більш-менш бентежить той факт, що є лише одна реалізація.
Марк

Nitpick: CBM BASIC насправді друкує два пробіли, не один, між "SYNTAX" та "ERROR". На жаль, я не можу відредагувати цю відповідь, щоб її виправити, оскільки Stack Exchange накладає нерозумний 6-символьний мінімум для змін.
Психонавт

28

Microsoft Excel

Формула: #DIV/0!

Повідомлення про помилку: #DIV/0!

Для того, щоб ввести формулу, не використовуючи знак рівності, увійдіть у параметри Excel / Advanced / Lotus Compatibility Settings та увімкніть запис формули переходу.


-2 байти:#REF!
Інженер Тост

19

Баш (32)

Зберегти як названий файл x:

x: line 1: x:: command not found

Під час запуску:

>> bash x
x: line 1: x:: command not found

19

Quine помилки компіляції Java 8 (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, вихід завжди:

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

Він навіть не розбере його, оскільки перевірка ОС не вдається, і ви отримаєте повідомлення про помилку. Приклади можна навести і для 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


12

Юлія 0.2.0

Ще одна синтаксична помилка виявлена ​​ітераційно, поки не було досягнуто фіксованої точки:

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

11

Математика

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

A .в Mathematica означає або десяткову точку, або функцію Dot. У цьому випадку .з'являється в кінці виразу і не може бути інтерпретоване.


введіть тут опис зображення


Я не думав, що це можливо.
ngenisis

9

С

Я застосував метод багаторазового копіювання повідомлень про помилки до джерела. Він сходився за 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 -c error.c 2>out ; mv out error.c ; cat error.c

кілька разів, поки вихід не перестане змінюватися.


Я знову спробував. Спочатку це не спрацювало. Щоб це працювало, потрібно виконати cc -c error.c 2>outі потім mv out error.c. А з версією cc, яку я маю сьогодні, потрібно ще кілька ітерацій.
Флоріан Ф

Ви можете зауважити, що у своїй відповіді, що вона вимагає конкретної версії OSX cc; в іншому випадку він недійсний і його потрібно видалити згідно з правилами спільноти.
MD XF

@MDXF: Це працює з клангом. Ось посилання на tio.run, 122 байти: tio.run/##S9ZNzknMS///Xy85PyVVryQzXy/…
G. Sliepen

8

C ++ (g ++)

Файл потрібно зберегти як 1.pas.

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

4
Є ще працювати , якщо компілятор Паскаля буде встановлений в системі?
SuperJedi224

@ SuperJedi224 Принаймні встановлення FreePascal не допомагає. Я припускаю, що GNU Pascal може бути правильним компілятором Pascal, але я не намагався.
jimmy23013

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 Гм, схоже, вже немає репо.
Ерік Аутгольфер

Так, пошук Google не дає нічого, крім репостів для Intercal.
connectyourcharger

@connectyourcharger Не потрібно; є лише 8 репостів під назвою "intercall" (нечутливі до регістру), і жодна з них не стосується мови, тому можна з упевненістю сказати, що вона пішла назавжди (ні, в Wayback Machine теж немає нічого).
Ерік Аутгольфер

8

GHCi (інтерпретатор / оболонка Haskell)

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

Використання:

Запишіть код у файл під назвою Код і завантажте GHCi.

Приємним фактом є те, що якби слова були фактичними ідентифікаторами, це було б легальним виразом (доки воно не було б перевірено). Це, в основному, пов'язано з тим, що :вбудований оператор, .використовується для імен, що відповідають вимогам модулів, а пробіл використовується для позначення функції функції.


.тут не оператор. Це частина кваліфікованого імені. Для якої версії GHCi це?
dfeuer

@dfeuer так, мій поганий. Не соромтеся це виправити. Версія ghci, ймовірно, навколо того, що було в той час.
гордий haskeller

7

Ruby 2 на Windows

Код:

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
це помилка?
кіт

Стаття "А" з'являється перед словами, що починаються на приголосний або приголосний звук. Для слів, які починаються на голосний або голосний звук, правильна стаття - "а". Мені просто нудить :)
кіт

1
@cat Я бачу. Так, я ніколи не претендував на граматичну правильність :)
Digital Trauma

7

AppleScript

Ідентифікатор не може перейти за цим ідентифікатором.

І те Aй identifierінше може бути ідентифікаторами, тому AppleScript каже, що ні.

ідентифікатори


21
він повинен бути ідентифікатор ... давай ....
кіт

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 Basic, 7 байт (або 0 байт)

Це дійсний запис у 7 байт:

Mistake

Це повідомлення про помилку, яке видається інтерпретатором, коли воно повністю не в змозі зрозуміти код.

З іншого боку, це не так:

ERROR

Це дійсне ключове слово в BBC Basic, яке повинно навмисно вводити помилку вказаного коду в програму, але синтаксис невірний (код не вказаний. Тому він повертається Syntax error(що в свою чергу повертається Mistakeпри його запуску.)

Загалом процедура, описана Фалько у своїй відповіді, веде до Mistakeосновної програми BBC. Є кілька винятків. все, що призводить до помилок DATA not LOCALабо ON ERROR not LOCALпризводить до відомого нульового байтового квине: порожній вихідний код створює порожній файл.

Зважаючи на те, що більшість повідомлень про помилки в базовій версії 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:\>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.