A PL/SQL Parser
PLSQL SQLPL
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
parser
tables
test
.gitignore
README.md
TODO
install_parser.sql

README.md

The aim of this project is to be able to parse PL/SQL.

The parsing is done by the package plsql_parser (whose implementation is found in the files parser/plsql_parser_body.plsql and parser/plsql_parser_spec.plsql)

The parser will create a parse tree into (what I call) node tables, prefixed with 'nd_' (for node). These tables are found in the tables directory. This directory also contains tables/install_nodes.sql in order to install the tables in the correct order. The same tables can then be uninstalled with tables/uninstall_nodes.sql

A parser needs a scanner and a lexer. These are found under the directory parser as well.

Installation

It is recommended to create a schema for the database objects needed by the parser.

create user TQ84_PARSER identified by TQ84_PARSER;
grant dba to TQ84_PARSER;
connect TQ84_PARSER/TQ84_PARSER;

@install_parser.sql

Tests

A few test cases are found under the directrory test/

After the parser is installed, the tests can be executed with

@@ tests/go.sql

Links

https://github.com/jonheller1/plsql_lexer