10.3. PLVprsps: Parsing PL/SQL Strings
The PLVprsps (PL/Vision PaRSe) PL/SQL package builds upon all the other string parsing and analyzing packages to provide easy-to-use, high-level programs to parse PL/SQL strings and programs. The parsed output is passed back into a PL/SQL table you provide in your calls to PLVprs modules. You can then work with the contents of the PL/SQL table as you see fit.
This parsing process separates PL/SQL code into individual atomics, which can then be used for any of the following purposes:
Analyze the contents of a PL/SQL program. What programs are defined in the package? Are any variables not being used?
Reformat or pretty-print the PL/SQL program. Once the atomics are separated, you can put them back together however you want and end up with the same program (as long as you preserve the order of the atomics).
The PLVprsps package offers several different levels of parsing programs (parse a string, parse a line, parse a program). With PLVprsps, you can also specify precisely which type of language elements you want to return in your parse.
The following sections show how to use the different elements of PLVprsps.
10.3.1. Selecting Token Types for Parsing
One of the users of PLVprsps is the PLVcat package (described in Chapter 18), which catalogues the contents and usage of PL/SQL program units. You could ask, for example, to generate a list of those builtins which are used by a particular program. Or you could request to see only those nonkeyword ...