bison - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

bison - GNU-Projekt-Parser-Generator (YACC-Ersatz)

ZUSAMMENFASSUNG

bison [OPTION]... FILE

BESCHREIBUNG

Bison ist ein Parser-Generator im Stil von yacc(1). Es sollte aufwärtskompatibel mit Eingabedateien sein, die für yacc entwickelt wurden.

Eingabedateien sollten der yacc-Konvention folgen und auf .y enden. Im Gegensatz zu yacc haben die generierten Dateien keine festen Namen, sondern verwenden stattdessen das Präfix der Eingabedatei. Wenn Sie außerdem C++-Code in die Eingabedatei einfügen müssen, können Sie seinen Namen mit einer C++-ähnlichen Erweiterung (.ypp oder .y++) beenden, dann folgt bison Ihrer Erweiterung, um die Ausgabe zu benennen Datei (.cpp oder .c++). Beispielsweise würde eine Grammatikbeschreibungsdatei mit dem Namen parse.yxx den generierten Parser in einer Datei mit dem Namen parse.tab.cxx anstelle von yacc erzeugen ist y.tab.c oder parse.tab.c der alten Bison-Version.

Diese Beschreibung der Optionen, die bison gegeben werden können, wurde vom Knoten Invocation im bison.texi-Handbuch übernommen und sollte als angenommen werden maßgeblich.

Bison unterstützt sowohl herkömmliche Einzelbuchstabenoptionen als auch mnemonische lange Optionsnamen. Lange Optionsnamen werden mit -- anstelle von - angezeigt. Abkürzungen für Optionsnamen sind zulässig, sofern sie eindeutig sind. Wenn eine lange Option ein Argument annimmt, wie etwa --file-prefix, verbinden Sie den Optionsnamen und das Argument mit =.

Generieren Sie einen deterministischen LR- oder generalisierten LR-Parser (GLR) unter Verwendung von LALR(1), IELR(1) oder kanonischen LR(1)-Parsertabellen.

Obligatorische Argumente für Long-Optionen sind auch für Short-Optionen obligatorisch. Das Gleiche gilt für optionale Argumente.

Betriebsmodi:

-h, --help

Zeigen Sie diese Hilfe an und beenden Sie den Vorgang

-V, --version

Versionsinformationen ausgeben und beenden

--print-localedir

Ausgabeverzeichnis mit gebietsschemaabhängigen Daten und Exit

--print-datadir

Ausgabeverzeichnis mit Skeletten und XSLT und Exit

-u, --update

Wenden Sie Korrekturen auf die Quellgrammatikdatei an und beenden Sie den Vorgang

-f, --feature[=FEATURES]

verschiedene Funktionen aktivieren

FEATURES ist eine Liste von durch Kommas getrennten Wörtern, die Folgendes umfassen können:

caret, diagnostics-show-caret

Fehler mit Carets anzeigen

fixit, diagnostics-parseable-fixits

maschinenlesbare Korrekturen anzeigen

syntax-only

Erzeugen Sie keine Datei

all

Alles das oben Genannte

none

Deaktivieren Sie alle oben genannten Punkte

Diagnose:

-W, --warnings[=CATEGORY]

Melden Sie die Warnungen, die in die KATEGORIE fallen

--color[=WHEN]

ob die Diagnose eingefärbt werden soll

--style=FILE

Geben Sie die CSS-DATEI für die Colorizer-Diagnose an

Zu den Warnkategorien gehören:

conflicts-sr

S/R-Konflikte (standardmäßig aktiviert)

conflicts-rr

R/R-Konflikte (standardmäßig aktiviert)

counterexamples, cex

Konflikt-Gegenbeispiele generieren

dangling-alias

String-Aliase, die nicht an ein Symbol angehängt sind

deprecated

veraltete Konstrukte

empty-rule

leere Regeln ohne %empty

midrule-values

nicht gesetzte oder nicht verwendete Mittelregelwerte

precedence

nutzloser Vorrang und Assoziativität

yacc

Inkompatibilitäten mit POSIX Yacc

other

alle anderen Warnungen (standardmäßig aktiviert)

all

Alle Warnungen außer „counterexamples“, „dangling-alias“ und „yacc“

no-CATEGORY

Deaktivieren Sie Warnungen in der Kategorie KATEGORIE

none

Schalten Sie alle Warnungen aus

error[=CATEGORY]

Behandeln Sie Warnungen als Fehler

WANN kann einer der folgenden sein:

always, yes

Färben Sie die Ausgabe ein

never, no

Färben Sie die Ausgabe nicht ein

auto, tty

colorize, wenn das Ausgabegerät ein TTY ist

Optimieren des Parsers:

-L, --language=LANGUAGE

Geben Sie die Ausgabeprogrammiersprache an

-S, --skeleton=FILE

Geben Sie das zu verwendende Skelett an

-t, --debug

Instrumentieren Sie den Parser für die Ablaufverfolgung wie „-Dparse.trace“.

--locations

Aktivieren Sie die Standortunterstützung

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

ähnlich wie „%define NAME VALUE“

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

'%define NAME VALUE' überschreiben

-p, --name-prefix=PREFIX

Präfix den durch „-Dapi.prefix={PREFIX}“ veralteten externen Symbolen voranstellen

-l, --no-lines

Generieren Sie keine „#line“-Anweisungen

-k, --token-table

Fügen Sie eine Tabelle mit Token-Namen hinzu

-y, --yacc

emulieren POSIX Yacc

Ausgabedateien:

-H, --header=[FILE]

Erstellen Sie auch eine Header-Datei

-d

ebenfalls, kann aber FILE nicht angeben (für POSIX Yacc)

-r, --report=THINGS

Machen Sie auch Angaben zum Automaten

--report-file=FILE

Bericht in DATEI schreiben

-v, --verbose

dasselbe wie '--report=state'

-b, --file-prefix=PREFIX

Geben Sie ein Präfix für Ausgabedateien an

-o, --output=FILE

Überlassen Sie die Ausgabe der Datei

-g, --graph[=FILE]

Gibt auch einen Graphen des Automaten aus

--html[=FILE]

gibt auch einen HTML-Bericht des Automaten aus

-x, --xml[=FILE]

Gibt auch einen XML-Bericht des Automaten aus

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

in Ausgabedateien

DINGE ist eine Liste von durch Kommas getrennten Wörtern, die Folgendes umfassen können:

states

Beschreiben Sie die Zustände

itemsets

Vervollständigen Sie die Kern-Item-Sets mit ihrem Abschluss

lookaheads

Ordnen Sie Elementen explizit Lookahead-Token zu

solved

Beschreiben Sie die Lösung von Konflikten, die sich verschieben/reduzieren

counterexamples, cex

Konflikt-Gegenbeispiele generieren

all

Geben Sie alle oben genannten Informationen an

none

Deaktivieren Sie den Bericht

AUTOR

Geschrieben von Robert Corbett und Richard Stallman.

FEHLER MELDEN

Melden Sie Fehler an .
GNU Bison-Homepage: .
Allgemeine Hilfe zur Verwendung der GNU-Software: .
Für eine vollständige Dokumentation führen Sie Folgendes aus: info bison.

URHEBERRECHTE ©

Copyright © 2021 Free Software Foundation, Inc.
Dies ist freie Software; Die Kopierbedingungen finden Sie in der Quelle. Es gibt KEINE Garantie; nicht einmal für MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

SIEHE AUCH

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.