Lex (lexical analyzer generator)

Lex is een programma voor het genereren van scanners, ook wel tokenizers genoemd, die lexicale patronen in tekst herkennen. Lex is een acroniem dat staat voor "lexical analyzer generator." Het is vooral bedoeld voor Unix-gebaseerde systemen. De code voor Lex is oorspronkelijk ontwikkeld door Eric Schmidt en Mike Lesk.

Lex kan zelf eenvoudige transformaties uitvoeren, maar het belangrijkste doel is om lexicale analyse te vergemakkelijken, het verwerken van tekenreeksen zoals broncode om symboolreeksen te produceren die tokens worden genoemd voor gebruik als invoer voor andere programma's, zoals parsers. Lex kan samen met een parser-generator worden gebruikt om lexicale analyse uit te voeren. Het is bijvoorbeeld eenvoudig om een interface te maken tussen Lex en Yacc, een open source programma dat code genereert voor de parser in de programmeertaal C.

Lex is gepatenteerd, maar versies gebaseerd op de oorspronkelijke code zijn beschikbaar als open source. Deze omvatten een gestroomlijnde versie genaamd Flex, een acroniem voor "fast lexical analyzer generator," evenals onderdelen van OpenSolaris en Plan 9.