included in python' standard libraryso it must be downloaded and installed separately--although for linux users it is almost certainly available through the package management system it can be obtained from pyparsing wikispaces com--click the page' download link it comes in the form of an executable installation program for windows and in source form for unix-like systems such as linux and mac os the download page explains how to install it pyparsing is contained in single module filepyparsing_py pyso it can easily be distributed with any program that uses it quick introduction to pyparsing |pyparsing makes no real distinction between lexing and parsing insteadit provides functions and classes to create parser elements--one element for each thing to be matched some parser elements are provided predefined by pyparsingothers can be created by calling pyparsing functions or by instantiating pyparsing classes parser elements can also be created by combining other parser elements together--for exampleconcatenating them with to form sequence of parser elementsor or-ing them with to form set of parser element alternatives ultimatelya pyparsing parser is simply collection of parser elements (which themselves may be made up of parser elementsetc )composed together if we want to process what we parsewe can process the results that pyparsing returnsor we can add parse actions (code snippetsto particular parser elementsor some combination of both pyparsing provides wide range of parser elementsof which we will briefly describe some of the most commonly used the literal(parser element matches the literal text it is givenand caselessliteral(does the same thing but ignores case if we are not interested in some part of the grammar we can use suppress()this matches the literal text (or parser elementit is givenbut does not add it to the results the keyword(element is almost the same as literal(except that it must be followed by nonkeyword character--this prevents match where keyword is prefix of something else for examplegiven the data text"filename"literal("file"will match filenamewith the name part left for the next parser element to matchbut keyword("file"won' match at all another important parser element is word(this element is given string that it treats as set of charactersand will match any sequence of any of the given characters for examplegiven the data text"abacus"word("abc"will match abacus if the word(element is given two stringsthe first is taken to contain those characters that are valid for the first character of the match and the second to contain those characters that are valid for the remaining characters this is typically used to match identifiers--for exampleword(alphas