!!!!!! |[text processing%|%previous : text processing]|[text processing%|%up : text processing]|[data%|%next : data]| !!!!!! ** Reading ** [http://en.wikipedia.org/wiki/Parsing%|%Wikipedia]: [http://www.gener8.be/site/articles/parsing/intro.html%|%Introduction to Parsing], by [Koen Van Damme]: Includes examples in [Tcl], [Python], and [C++] ** Tools ** [grammar::peg]: [Parser Tools]: an evolutionary improvement over [grammar::peg] [ParseTools]: Tcl/Tk 8.x extension which provides script level access to the Tcl tokenizer, as well as generic query and abstract syntax tree query and manipulation commands. [Tcl_ParseCommand]: ** Curriculum ** Exercise: [Splitting strings with embedded strings] includes an example [HTML] scanner, and also a description of how the state matrix was generated. Implement your own version his ''Imaginary ad-hoc Scanner Generator Tool''. [parsing with coroutine], by [DKF]: Concise, well-designed example for the advanced student. Note the construct involving `[yield]` that simulates pushing data back onto the stream. ** See Also ** [Regular Expressions Are Not A Good Idea for Parsing XML, HTML, or e-mail Addresses]: [UPL: The Language Parser(s)/Interpreter(s)]: [A parser's monolog]: [Expression parsing]: [parser]: [Parser Combinators]: [parser generator]: [Parser using recursive descent]: [Parsing csv strings]: [Playing with parsing]: [Scripted Parsing]: [Syntax parsing in Tcl]: [Techniques for reading and writing application configuration files]: <> Parsing !!!!!! |[text processing%|%previous : text processing]|[text processing%|%up : text processing]|[data%|%next : data]| !!!!!!