diff --git a/README.md b/README.md index 6d3075dc..ed618e57 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,14 @@ # SQL Parser -The goal of this project is to build a SQL lexer and parser capable of parsing ANSI SQL:2011 (or 2016 if I can get access to the specification for free). +The main goal of this project is to build a SQL lexer and parser capable of parsing ANSI SQL:2011 (or 2016 if I can get access to the specification for free). -The current code is capable of parsing some simple SELECT and CREATE TABLE statements. +A secondary goal is to make it easy for others to use this library as a foundation for building custom SQL parsers for vendor-specific dialects. + +## Example + +The current code is capable of parsing some trivial SELECT and CREATE TABLE statements. + +## Example ```rust let sql = "SELECT a, b, 123, myfunc(b) \ @@ -27,11 +33,11 @@ This parser is implemented using the [Pratt Parser](https://tdop.github.io/) des I am a fan of this design pattern over parser generators for the following reasons: -- Parsing code is simple to write and can be concise and elegant (this is far from true for this current implementation unfortunately, but I hope to fix that using some macros) +- Code is simple to write and can be concise and elegant (this is far from true for this current implementation unfortunately, but I hope to fix that using some macros) - Performance is generally better than code generated by parser generators - Debugging is much easier with hand-written code - It is far easier to extend and make dialect-specific extensions compared to using a parser generator ## Contributing -Please get involved in helping build first class SQL support in Rust by filing issues for missing features (there are plenty!) and create pull requests. +Contributors are welcome! Please see the [current issues](https://github.com/andygrove/sqlparser-rs/issues) and feel free to file more!