but there' growing library of available components that you can pick up for free and community of experts to query visit the pypi site at to python software resourcesor search the web at large with at least one million python users out there as write this bookmuch can be found in the prior-art department unlessof coursethe wheel does not workwe've also seen handful of cases in this book where standard libraries were either not adequate or were broken altogether for instancethe python email package issues we explored in required us to code workarounds of our own in such casesyou may still ultimately need to code your own infrastructure support the "not invented heresyndrome can still claim victory when software dependencies break down stillyou're generally better off trying to use the standard support provided by python in most caseseven if doing so requires manually coded fixes in the email package examplefixing its problems seems much easier than coding an email parser and generator from scratch-- task far too large to have even attempted in this book python' batteries included approach to development can be amazingly productive--even when some of those batteries require charge custom language parsers although toolkits abound in this domainpython' status as general-purpose programming language also makes it reasonable vehicle for writing hand-coded parsers for custom language analysis tasks for instancerecursive descent parsing is fairly well-known technique for analyzing language-based information though not as powerful as some language toolsrecursive descent parses are sufficient for wide variety of language-related goals to illustratethis section develops custom parser for simple grammar--it parses and evaluates arithmetic expression strings though language analysis is the main topic herethis example also demonstrates the utility of python as general-purpose programming language although python is often used as frontend or rapid development language in tactical modesit' also often useful for the kinds of strategic work you may have formerly done in systems development language such as or +the expression grammar the grammar that our parser will recognize can be described as followsgoal -end goal -end [numbervariable[setassign -'set[setexpr -[numbervariable text and language