interfaces to such common parser generators are freely available in the open source domain (run web search for up-to-date details and linksin additiona number of python-specific parsing systems are available on the web among themply is an implementation of lex and yacc parsing tools in and for pythonthe kwparsing system is parser generator written in pythonpyparsing is pure-python class library that makes it easy to build recursive-descent parsers quicklyand the spark toolkit is lightweight system that employs the earley algorithm to work around technical problems with lalr parser generation (if you don' know what that meansyou probably don' need to careof special interest to this yapps (yet another python parser systemis parser generator written in python it uses supplied grammar rules to generate human-readable python code that implements recursive descent parserthat isit' python code that generates python code the parsers generated by yapps look much like (and were inspired bythe handcoded custom expression parsers shown in the next section yapps creates ll( parserswhich are not as powerful as lalr parsers but are sufficient for many language tasks for more on yappssee natural language processing even more demanding language analysis tasks require techniques developed in artificial intelligence researchsuch as semantic analysis and machine learning for instancethe natural language toolkitor nltkis an open source suite of python libraries and programs for symbolic and statistical natural language processing it applies linguistic techniques to textual dataand it can be used in the development of natural language recognition software and systems for much more on this subjectbe sure to also see the 'reilly book natural language processing with pythonwhich exploresamong other thingsways to use nltk in python not every system' users will pose questions in natural languageof coursebut there are many applications which can make good use of such utility though widely usefulparser generator systems and natural language analysis toolkits are too complex for us to cover in any sort of useful detail in this text consult python orgor search the web for more information on language analysis tools available for use in python programs for the purposes of this let' move on to explore more basic and manual approach that illustrates concepts underlying the domain-recursive descent parsing lesson don' reinvent the wheel (usuallyspeaking of parser generatorsto use some of these tools in python programsyou'll need an extension module that integrates them the first step in such scenarios should always be to see whether the extension already exists in the public domain especially for common tools like thesechances are that someone else has already implemented an integration that you can use off-the-shelf instead of writing one from scratch advanced language tools