The goal of this project is to build a Golang parser that is fully compatible with MySQL syntax, easy to extend, and high performance. Currently, features supported by parser are as follows:
Highly compatible with MySQL: it supports almost all features of MySQL.
Extensible: adding a new syntax requires only a few lines of Yacc and Golang code changes.
Good performance: the parser is generated by goyacc in a bottom-up approach. It is efficient to build an AST tree with a state machine.
Acknowledgments
Marino is a hard fork of pingcap/parser,
the MySQL-compatible SQL parser developed as part of TiDB.
Huge thanks to the TiDB team and all the upstream contributors whose work this
project is built on.
License
Marino is under the Apache 2.0 license. See the LICENSE file for details.