Lex (Informatik)
Das Programm Lex wird im Compilerbau benutzt, um Scanner für die lexikalische Analyse von Quelltexten zu erstellen. Ein lexikalischer Scanner ist Teil eines Compiler.
Lex wird oft genutzt in Kombination mit Yacc, der für die syntaktische Analyse zuständig ist.
Lex wurde Mitte der 1970er Jahre an den Bell Labs von Mike Lesk in C programmiert; die Regex-Behandlung stammte von Alfred V. Aho und Ken Thompson. Im Sommer 1976 wurde das Programm von dem damaligen Bell-Labs-Praktikanten Eric Schmidt neu implementiert.
Arbeitsweise
Damit Lex ein Analyseprogramm generieren kann, muss eine Beschreibungsdatei erstellt werden. In dieser Datei werden sogenannte Token mittels regulärer Ausdrücke definiert.
Hier ein Beispiel einer solchen Datei:
<syntaxhighlight lang="c"> %{
#include "y.tab.h" extern int yylval;
%}
%%
"=" { return EQ; }
"!=" { return NE; }
"+" { return PLUS; }
"-" { return MINUS; }
";" { return SEMICOLON; }
"print" { return PRINT; }
[0-9]+ { yylval = atoi(yytext); return NUMBER; }
...
</syntaxhighlight>
Das resultierende Analyseprogramm liest den Quellcode des zu kompilierenden Programmes ein und teilt diesen in Token ein. Sollte dies nicht möglich sein, liegt ein lexikalischer Fehler vor. Die Token werden dann dem syntaktischen Analyseteil bzw. -programm eines Übersetzers übergeben.
Beispiel
Für einen Beispiel-Quelltext wie
print 15+5;
sind die Token:
- (PRINT, )
- (NUMBER, 15)
- (PLUS, )
- (NUMBER, 5)
- (SEMICOLON, )
Es ist zu beachten, dass Lex keine Kenntnis von erlaubter Syntax hat. Konkret bedeutet dies, dass der Beispielcode
15+ print; 5
ebenfalls in dieselben Token überführt würde (jedoch in anderer Reihenfolge).
Siehe auch
Literatur
- Helmut Herold: lex & yacc. Die Profitools zur lexikalischen und syntaktischen Textanalyse. Addison-Wesley, 2003, ISBN 3-8273-2096-8.
- lex & yacc. O’Reilly. ISBN 1-56592-000-7.
- M. E. Lesk, E. Schmidt: Lex – A Lexical Analyzer Generator. Computing Science Technical Report No. 39, Bell Laboratories, Murray Hill NJ 1975.
Weblinks
- <templatestyles src="Webarchiv/styles.css" />{{#if:20061205020319
| {{#ifeq: 20061205020319 | *
| {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20061205020319}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20061205020319}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: The Lex & Yacc Page. | {{#invoke:WLink|getEscapedTitle|The Lex & Yacc Page.}} | {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20061205020319|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://dinosaur.compilertools.net/}}
|| {{#if: || }}
}}{{#if: The Lex & Yacc Page.
| {{#if: {{#invoke:WLink|isBracketedLink|The Lex & Yacc Page.}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://dinosaur.compilertools.net/%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://dinosaur.compilertools.net/%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://dinosaur.compilertools.net/ }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} In: dinosaur.compilertools.net
- {{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:Tom Niemann|Tom Niemann: }}{{#if:|{{#if:Lex & Yacc|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Lex & Yacc}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://epaperpress.com/lexandyacc/index.html%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Lex & Yacc}}}}|[{{#invoke:URLutil|getNormalized|1=https://epaperpress.com/lexandyacc/index.html}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Lex & Yacc}}}}]}}{{#if:| ({{{format}}}{{#if:epaperpress.com{{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||1}}}}
| )
| {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://epaperpress.com/lexandyacc/index.html%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://epaperpress.com/lexandyacc/index.html}}%7C%7C}}}}{{#if:Lex & Yacc|{{#if:{{#invoke:WLink|isValidLinktext|1=Lex & Yacc|lines=0}}||}}}}{{#if: epaperpress.com| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=epaperpress.com}}}}{{#if: | {{{hrsg}}}{{#if: |,|{{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
|{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:249294||(?)}}}}}}{{#if: 2023-11-10|;}}}}{{#if: 2023-11-10| {{#if:{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2023-11-10 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2023-11-10|class=Zitationswartung}} }} {{#invoke:DateTime|format|2023-11-10|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:epaperpress.com{{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:en|en|de}}|de||
{{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2023-11-10 | {{#if:{{#invoke:TemplUtl|faculty|1}}||1}} }}en|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if: | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if:{{#invoke:URLutil|isWebURL|https://epaperpress.com/lexandyacc/index.html}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://epaperpress.com/lexandyacc/index.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if:{{#invoke:URLutil|isWebURL|https://epaperpress.com/lexandyacc/index.html}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[https://epaperpress.com/lexandyacc/index.html }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if: | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if:{{#invoke:URLutil|isWebURL|https://epaperpress.com/lexandyacc/index.html}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://epaperpress.com/lexandyacc/index.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://epaperpress.com/lexandyacc/index.html | {{#if:{{#invoke:URLutil|isWebURL|https://epaperpress.com/lexandyacc/index.html}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[https://epaperpress.com/lexandyacc/index.html }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}
- Vorlage:GitHub (englisch)
[{{Man/{{#switch: @posix
|@bsd=OpenBSD
|@=gnu
|posix}}||lex|url}} lex{{#if:{{Man/{{#switch: @posix
|@bsd=OpenBSD
|@=gnu
|posix}}||lex|display_section}}|({{Man/{{#switch: @posix
|@bsd=OpenBSD
|@=gnu
|posix}}||lex|display_section}})}}]{{#if:generate programs for lexical tasks|: generate programs for lexical tasks}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @posix
|@bsd=OpenBSD
|@=gnu
|posix}}||lex|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @posix
|@bsd=OpenBSD
|@=gnu
|posix}}||lex|attrib}}}}}}
[{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|1|flex|url}} flex{{#if:{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|1|flex|display_section}}|({{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|1|flex|display_section}})}}]{{#if:fast lexical analyzer generator|: fast lexical analyzer generator}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|1|flex|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|1|flex|attrib}}}}}}
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:"
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Programmierwerkzeug
- Compilerbau
- Unix-Software