Lex es una herramienta que genera código C para analizar cadenas de caracteres basándose en expresiones regulares especificadas por el usuario. Lex divide el input en cadenas que coinciden con las expresiones y ejecuta fragmentos de código asociados. Flex es una versión mejorada de Lex que genera analizadores léxicos de alto rendimiento a partir de reglas de expresiones regulares y código C.