grammars-v4
go-mysql-server
Our great sponsors
grammars-v4 | go-mysql-server | |
---|---|---|
29 | 23 | |
9,786 | 2,145 | |
1.2% | 37.2% | |
9.6 | 9.9 | |
1 day ago | 8 days ago | |
ANTLR | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
grammars-v4
- Operadores de adição e subtração
-
Visual Basic for Applications Language Specification [pdf]
Perhaps the one from ANTLR's collection [0] is a good start (there are also others ANTLR VB6 grammars documented elsewhere). It does require knowing ANTLR, but that should be less effort for someone already familiar with language implementation, particularly, the visitor pattern (my favorite reference [1]).
[0] https://github.com/antlr/grammars-v4/tree/master/vb6
[1] https://craftinginterpreters.com/representing-code.html
-
Postgres Language Server: Implementing the Parser
Where is the SQLite test suite, please? I'd be very interested.
There are already SQL grammars, check https://github.com/antlr/grammars-v4 specifically in here I think https://github.com/antlr/grammars-v4/tree/master/sql I contributed to one of them, and I wrote my own for some personal work. Be warned, it's very involved, very complex and MSSQL is rather ill-defined.
Names bracket identifiers) in SQL are bloody awful. Sometimes square brackets are even compulsory, and why you can usually replace [...] with the SQL standard "..." , not always! Trust me, it gets worse.
I don't find antlr grammars to be brittle, and while they can lose in performance (by how much I don't know, perhaps quite considerably) they are very easy to maintain and I am very fortunate to have antlr to work with.
-
Llama: Add Grammar-Based Sampling
This grammar "library" was cited as an example of what the format could look like:.
https://github.com/antlr/grammars-v4
There is everything from assembly and C++ to glsl and scripting languages, arithmetic, games, and other weird formats.
-
Structured Output from LLMs (Without Reprompting!)
> Which brings me to the other approach: steering the LLM's output __as it is generating tokens__
A relevant PR:
https://github.com/ggerganov/llama.cpp/pull/1773
The plan is to support arbitrary grammar files to constrain tokens as they are generated, like the ones here:
https://github.com/antlr/grammars-v4
-
SQL-Parsing
Have a look at jooq - I know this has been used to rewrite SQL from one dialect to another, so it MUST be capable of collating code activity metrics. Look here. Otherwise, you might want to look into writing your own parser. ANTLR has a T-SQL dialect parser script here.
-
How should I prepare for AI-driven changes in the industry as a Software Engineering Manager
Find a Perl grammar file for ANTLR, like https://github.com/antlr/grammars-v4/tree/master/perl Save the grammar file as Perl.g4 in your project. Now, you can create the Kotlin program: import org.antlr.v4.runtime.* import org.antlr.v4.runtime.tree.ParseTree import java.io.File
- Can you create a cpp file in a program like you could a txt file?
-
DELD: An experimental HTTP-Client
Antlr is another option. You could generate a parser using the JSON antlr grammar.
- Are there any resources available to convert a code from Basic to C++? need to do this for the sake of an assignment. anything will be helpful
go-mysql-server
- A MySQL compatible database engine written in pure Go
-
What I Talk About When I Talk About Query Optimizer (Part 1): IR Design
We implemented a query optimizer with a flexible intermediate representation in pure Go:
https://github.com/dolthub/go-mysql-server
Getting the IR correct so that it's both easy to use and flexible enough to be useful is a really interesting design challenge. Our primary abstraction in the query plan is called a Node, and is way more general than the IR type described in the article from OP. This has probably hurt us: we only recently separated the responsibility to fetch rows into its own part of the runtime, out of the IR -- originally row fetching was coupled to the Node type directly.
This is also the query engine that Dolt uses:
https://github.com/dolthub/dolt
But it has a plug-in architecture, so you can use the engine on any data source that implements a handful of Go interface.
-
I created an in-memory SQL database called MemSQL as a learning project
Might be interested in https://github.com/dolthub/go-mysql-server, which also does this
-
Implementing the MySQL server protocol for fun and profit
https://github.com/dolthub/go-mysql-server
One item under "Scope of this project":
Provide a runnable server speaking the MySQL wire protocol, connected to data sources of your choice.
- MySQL-mimic - Python implementation of the MySQL server wire protocol.
- Parsing SQL
-
Litetree – SQLite with Branches
I just wanted to say thanks for https://github.com/dolthub/go-mysql-server
This is incredibly useful for anyone who wants to build their own DB or wrap another datasource so it's queryable via MySQL protocol.
-
Dolt Is Git for Data
a very cool project they also maintain is a MySQL server framework for arbitrary backends (in Go): https://github.com/dolthub/go-mysql-server
You can define a "virtual" table (schema, how to retrieve rows/columns) and then a MySQL client can connect and execute arbitrary queries on your table (which could just be an API or other source)
- A Golang library and interface that allows querying anything with SQL
-
The world of PostgreSQL wire compatibility
Thanks for this write up! I've been really interested in postgres compatibility in the context of a tool I maintain (https://github.com/mergestat/mergestat) that uses SQLite. I've been looking for a way to expose the SQLite capabilities over a more commonly used wire-protocol like postgres (or mysql) so that existing BI and visualization tools can access the data.
This project is an interesting one: https://github.com/dolthub/go-mysql-server that provides a MySQL interface (wire and SQL) to arbitrary "backends" implemented in go.
It's really interesting how compatibility with existing protocols has become an important feature of new databases - there's so much existing tooling that already speaks postgres (or mysql), being able to leverage that is a huge advantage IMO
What are some alternatives?
ANTLR - ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
vitess-sqlparser - simply SQL Parser for Go ( powered by vitess and TiDB )
tree-sitter-sql - SQL grammar for tree-sitter
alasql - AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.
lezer-snowsql
sqlite-parser - JavaScript implentation of SQLite 3 query parser
rewrite - Automated mass refactoring of source code.
zetasql - ZetaSQL - Analyzer Framework for SQL
tree-sitter-sql - SQL syntax highlighting for tree-sitter
lakeFS - lakeFS - Data version control for your data lake | Git for data
sbt-antlr4 - Antlr4 plugin for sbt 1.1+ and 0.13.x
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.