Це команда yaccplan9, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
yacc - ще один компілятор-компілятор
СИНТАКСИС
yacc [ варіант ... ] граматика
ОПИС
Якк перетворює безконтекстну граматику та код перекладу в набір таблиць для an
LR(1) аналізатор і перекладач. Граматика може бути неоднозначною; визначені правила пріоритету
використовується для усунення двозначності.
Вихідний файл, y.tab.c, повинен бути скомпільований компілятором C для створення програми This
програма повинна бути завантажена функцією лексичного аналізатора, yylex (порожнеча) (часто генерується
лекс(1)), з а головний (внутр argc, бак *argv[]) програму та з процедурою обробки помилок,
yyпомилка (символ*).
Варіанти є
-o вихід Прямий вихід у вказаний файл замість y.tab.c.
-Dn Створити файл y.debug, що містить діагностичні повідомлення. Щоб включити їх у
синтаксичний аналізатор, компілюйте його за допомогою символу препроцесора yydebug визначений. Кількість
діагностичний вихід із синтаксичного аналізатора регулюється значенням n. Значення 0 повідомляє
помилки; 1 повідомляє про скорочення; вищі значення (до 4) включають більше інформації
про державні переходи.
-v Створити файл y.вихід, що містить опис таблиць розбору та з
конфлікти, що виникають через неясності в граматиці.
-d Створити файл y.tab.h, що містить #визначити висловлювання, які асоціюють yacc-призначений
"коди маркерів" з оголошеними користувачем "іменами маркерів". Включіть його в вихідні файли
окрім y.tab.c щоб надати доступ до кодів маркерів.
-s стебло Змініть префікс імен файлів y.tab.c, y.tab.h, y.debug та y.вихід до
стебло.
-S Напишіть синтаксичний аналізатор, який використовує Stdio замість друк підпрограми в libc.
-l Вимкніть директиви #line у згенерованому синтаксическом аналізаторі.
-a Створіть синтаксичний аналізатор, який приймає аргумент типу Yyarg і передає цей аргумент
до кожного виклику функції лексера, yylex. Yyarg містить для кожного екземпляра
стан і один видимий користувачеві член, arg, типу void*.
Специфікація yacc сама по собі, по суті, така ж, як версія UNIX, описана в
посилання, згадані нижче. Крім того -D варіант, основні відповідні відмінності:
Інтерфейс до середовища C за замовчуванням через а не
; -S варіант змінює це.
Синтаксичний аналізатор приймає введений текст UTF (див utf(7)), що має кілька ефектів.
По-перше, повертається значення yylex() більше не вписується в a коротка; по-друге, стартовий
значення для нетерміналів тепер 0xE000, а не 257.
Згенерований синтаксичний аналізатор може бути рекурсивним: дії можуть викликати yyparse, наприклад до
реалізувати свого роду #включати заява в перекладача.
Нарешті, деякі недокументовані внутрішні роботи парсера були змінені, що
може вплинути на програми, які знають занадто багато про його структуру.
Використовуйте yaccplan9 онлайн за допомогою служб onworks.net