bison - справочное руководство, опции, примеры команд


ИМЯ

bison - Генератор парсеров GNU Project (замена yacc)

СИНТАКСИС

bison [OPTION]... FILE

ОПИСАНИЕ

Bison — это генератор парсеров в стиле yacc(1). Он должен быть обратно совместим с входными файлами, разработанными для yacc.

Входные файлы должны следовать соглашению yacc и заканчиваться на .y. В отличие от yacc, сгенерированные файлы не имеют фиксированных имен, а вместо этого используют префикс входного файла. Кроме того, если вам нужно поместить код C++ во входной файл, вы можете закончить его имя расширением, подобным C++ (.ypp или .y++), тогда bison будет следовать вашему расширению, чтобы назвать выходной файл. файл (.cpp или .c++). Например, файл описания грамматики с именем parse.yxx создаст сгенерированный синтаксический анализатор в файле с именем parse.tab.cxx вместо yacc. y.tab.c или parse.tab.c старой версии Bison.

Это описание параметров, которые можно задать для bison, взято из узла Invocation в руководстве bison.texi, которое следует воспринимать как авторитетный.

Bison поддерживает как традиционные однобуквенные параметры, так и мнемонические длинные имена параметров. Длинные имена опций обозначаются -- вместо -. Сокращения имен опций разрешены, если они уникальны. Если длинная опция принимает аргумент, например --file-prefix, соедините имя опции и аргумент с помощью =.

Создайте детерминированный синтаксический анализатор LR или обобщенный синтаксический анализатор LR (GLR), используя таблицы синтаксического анализатора LALR (1), IELR (1) или канонический LR (1).

Обязательные аргументы для длинных опций обязательны и для коротких опций. То же самое верно и для необязательных аргументов.

Режимы работы:

-h, --help

показать эту справку и выйти

-V, --version

вывести информацию о версии и выйти

--print-localedir

выходной каталог, содержащий данные, зависящие от локали, и выход

--print-datadir

выходной каталог, содержащий скелеты и XSLT, и выход

-u, --update

применить исправления к исходному файлу грамматики и выйти

-f, --feature[=FEATURES]

активировать различные функции

FEATURES — это список слов, разделенных запятыми, который может включать:

caret, diagnostics-show-caret

показать ошибки с помощью каретки

fixit, diagnostics-parseable-fixits

показать машиночитаемые исправления

syntax-only

не создавать никаких файлов

all

все вышеперечисленное

none

отключить все вышеперечисленное

Диагностика:

-W, --warnings[=CATEGORY]

сообщать о предупреждениях, попадающих в CATEGORY

--color[=WHEN]

раскрашивать ли диагностику

--style=FILE

укажите ФАЙЛ CSS для диагностики колоризатора

Категории предупреждений включают:

conflicts-sr

Конфликты S/R (включены по умолчанию)

conflicts-rr

Конфликты R/R (включены по умолчанию)

counterexamples, cex

генерировать конфликтные контрпримеры

dangling-alias

строковые псевдонимы, не прикрепленные к символу

deprecated

устаревшие конструкции

empty-rule

пустые правила без %empty

midrule-values

неустановленные или неиспользуемые промежуточные значения

precedence

бесполезный приоритет и ассоциативность

yacc

несовместимость с POSIX Yacc

other

все остальные предупреждения (по умолчанию включены)

all

все предупреждения, кроме «контрпримеров», «висячих псевдонимов» и «yacc»

no-CATEGORY

отключить предупреждения в CATEGORY

none

отключить все предупреждения

error[=CATEGORY]

воспринимать предупреждения как ошибки

КОГДА может быть одним из следующих:

always, yes

раскрасить вывод

never, no

не раскрашивать вывод

auto, tty

раскрасить, если устройство вывода является tty

Настройка парсера:

-L, --language=LANGUAGE

указать выходной язык программирования

-S, --skeleton=FILE

указать скелет для использования

-t, --debug

настроить парсер для трассировки так же, как '-Dparse.trace'

--locations

включить поддержку местоположения

-D, --define=NAME[=VALUE]

похоже на '%define NAME VALUE'

-F, --force-define=NAME[=VALUE]

переопределить '%define NAME VALUE'

-p, --name-prefix=PREFIX

добавляйте PREFIX к внешним символам, которые не рекомендуются '-Dapi.prefix={PREFIX}'

-l, --no-lines

не генерировать директивы '#line'

-k, --token-table

включить таблицу имен токенов

-y, --yacc

эмулировать POSIX Yacc

Выходные файлы:

-H, --header=[FILE]

также создать заголовочный файл

-d

аналогично, но не может указывать ФАЙЛ (для POSIX Yacc)

-r, --report=THINGS

также производить детали на автомате

--report-file=FILE

записать отчет в ФАЙЛ

-v, --verbose

то же, что и '--report=state'

-b, --file-prefix=PREFIX

указать ПРЕФИКС для выходных файлов

-o, --output=FILE

оставить вывод в ФАЙЛ

-g, --graph[=FILE]

также вывести граф автомата

--html[=FILE]

также вывести HTML-отчет автомата

-x, --xml[=FILE]

также вывести XML-отчет автомата

-M, --file-prefix-map=OLD=NEW replace prefix OLD with NEW when writing file paths

в выходных файлах

ВЕЩИ — это список слов, разделенных запятыми, который может включать:

states

описать состояния

itemsets

завершите основные наборы предметов с их закрытием

lookaheads

явно связывать упреждающие токены с элементами

solved

описать смещение/уменьшение решения конфликтов

counterexamples, cex

генерировать конфликтные контрпримеры

all

включить всю вышеуказанную информацию

none

отключить отчет

АВТОР

Авторы сценария Роберт Корбетт и Ричард Столмен.

СООБЩЕНИЕ ОБ ОШИБКАХ

Сообщайте об ошибках по адресу bug-bison@gnu.org.
Домашняя страница GNU Bison: https://www.gnu.org/software/bison/.
Общая помощь по использованию программного обеспечения GNU: https://www.gnu.org/gethelp/.
Чтобы получить полную документацию, запустите: info bison.

АВТОРСКИЕ ПРАВА

Авторское право © 2021 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. источник условий копирования. НЕТ гарантии; даже не для КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.

СМОТРИТЕ ТАКЖЕ

lex(1), flex(1), yacc(1).

The full documentation for bison is maintained as a Texinfo manual. If the info and bison programs are properly installed at your site, the command

info bison

should give you access to the complete manual.