Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Lex (software)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Using Lex with other programming tools== ===Using Lex with parser generators=== Lex, as with other lexical analyzers, limits rules to those which can be described by [[regular expressions]]. Due to this, Lex can be implemented by a [[finite-state automata]] as shown by the [[Chomsky hierarchy]] of languages. To recognize more complex languages, Lex is often used with parser generators such as [[Yacc]] or [[GNU bison|Bison]]. Parser generators use a [[formal grammar]] to parse an input stream. It is typically preferable to have a parser, one generated by Yacc for instance, accept a stream of tokens (a "token-stream") as input, rather than having to process a stream of characters (a "character-stream") directly. Lex is often used to produce such a token-stream. [[Scannerless parsing]] refers to parsing the input character-stream directly, without a distinct lexer. ===Lex and make=== [[Make (software)|make]] is a utility that can be used to maintain programs involving Lex. Make assumes that a file that has an extension of <code>.l</code> is a Lex source file. The make internal macro <code>LFLAGS</code> can be used to specify Lex options to be invoked automatically by make.<ref> {{Cite journal |url=http://www.opengroup.org/onlinepubs/009695399/utilities/make.html |title=make |journal=The Open Group Base Specifications |issue=6 |publisher=The IEEE and The Open Group |year=2004 |id=IEEE Std 1003.1, 2004 Edition }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)