1pt_introduction(n)               Parser Tools               pt_introduction(n)
2
3
4
5______________________________________________________________________________
6

NAME

8       pt_introduction - Introduction to Parser Tools
9

SYNOPSIS

11       package require Tcl  8.5
12
13______________________________________________________________________________
14

DESCRIPTION

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

PARSER TOOLS ARCHITECTURE

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

BUGS, IDEAS, FEEDBACK

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

KEYWORDS

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

CATEGORY

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)
Impressum