1pt_introduction(n) Parser Tools pt_introduction(n)
2
3
4
5______________________________________________________________________________
6
8 pt_introduction - Introduction to Parser Tools
9
11 package require Tcl 8.5
12
13______________________________________________________________________________
14
16 Welcome to the Parser Tools, a system for the creation and manipulation
17 of parsers and the grammars driving them.
18
19 What are your goals which drove you here ?
20
21 [1] Do you simply wish to create a parser for some language ?
22
23 In that case have a look at our parser generator application,
24 pt, or, for a slightly deeper access, the package underneath it,
25 pt::pgen.
26
27 [2] Do you wish to know more about the architecture of the system ?
28
29 This is described in the section Parser Tools Architecture,
30 below
31
32 [3] Is your interest in the theoretical background upon which the
33 packages and tools are build ?
34
35 See the Introduction to Parsing Expression Grammars.
36
38 The system can be split into roughly three layers, as seen in the fig‐
39 ure below
40
41 IMAGE: architecture
42
43 These layers are, from high to low:
44
45 [1] At the top we have the application and the packages using the
46 packages of the layer below to implement common usecases. One
47 example is the aforementioned pt::pgen which provides a parser
48 generator.
49
50 The list of packages belonging to this layer can be found in
51 section User Packages
52
53 [2] In this layer we have the packages which provide the core of the
54 functionality for the whole system. They are, in essence, a set
55 of blocks which can be combined in myriad ways, like Lego (tm).
56 The packages in the previous level are 'just' pre-fabricated
57 combinations to cover the most important use cases.
58
59 The list of packages belonging to this layer can be found in
60 section Core Packages
61
62 [3] Last, but not least is the layer containing support packages
63 providing generic functionality which not necessarily belong
64 into the module.
65
66 The list of packages belonging to this layer can be found in
67 section Support Packages
68
69 USER PACKAGES
70 pt::pgen
71
72 CORE PACKAGES
73 This layer is further split into six sections handling the storage,
74 import, export, transformation, and execution of grammars, plus grammar
75 specific support packages.
76
77 Storage
78
79 pt::peg::container
80
81 Export
82
83 pt::peg::export
84
85 pt::peg::export::container
86
87 pt::peg::export::json
88
89 pt::peg::export::peg
90
91 pt::peg::to::container
92
93 pt::peg::to::json
94
95 pt::peg::to::peg
96
97 pt::peg::to::param
98
99 pt::peg::to::tclparam
100
101 pt::peg::to::cparam
102
103 Import
104
105 pt::peg::import
106
107 pt::peg::import::container
108
109 pt::peg::import::json
110
111 pt::peg::import::peg
112
113 pt::peg::from::container
114
115 pt::peg::from::json
116
117 pt::peg::from::peg
118
119 Transformation
120
121 Execution
122
123 pt::peg::interp
124
125 pt::rde
126
127 Support
128
129 pt::tclparam::configuration::snit
130
131 pt::tclparam::configuration::tcloo
132
133 pt::cparam::configuration::critcl
134
135 pt::ast
136
137 pt::pe
138
139 pt::peg
140
141 SUPPORT PACKAGES
142 pt::peg::container::peg
143
144 text::write
145
146 configuration
147
148 paths
149
150 char
151
153 This document, and the package it describes, will undoubtedly contain
154 bugs and other problems. Please report such in the category pt of the
155 Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please also
156 report any ideas for enhancements you may have for either package
157 and/or documentation.
158
159 When proposing code changes, please provide unified diffs, i.e the out‐
160 put of diff -u.
161
162 Note further that attachments are strongly preferred over inlined
163 patches. Attachments can be made by going to the Edit form of the
164 ticket immediately after its creation, and then using the left-most
165 button in the secondary navigation bar.
166
168 EBNF, LL(k), PEG, TDPL, context-free languages, expression, grammar,
169 matching, parser, parsing expression, parsing expression grammar, push
170 down automaton, recursive descent, state, top-down parsing languages,
171 transducer
172
174 Parsing and Grammars
175
177 Copyright (c) 2009 Andreas Kupries <andreas_kupries@users.sourceforge.net>
178
179
180
181
182tcllib 1 pt_introduction(n)