# Postgres Language Server: implementing the Parser

DevFeed: [Postgres Language Server: implementing the Parser](<https://devfeed.tech/articles/postgres-language-server-implementing-the-parser-505.md>)

Original publisher: [Read original article](<https://supabase.com/blog/postgres-language-server-implementing-parser>)

Author: Philipp Steinrötter

Published: 2023-12-08T07:00:00Z

Content type: article

Language: en

Sources: [Supabase Blog](<https://devfeed.tech/sources/supabase-blog.md>)

Topics: [Parser](<https://devfeed.tech/topics/parser.md>), [servers](<https://devfeed.tech/topics/servers.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Concrete syntax tree](<https://devfeed.tech/topics/cst.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [Supabase](<https://devfeed.tech/topics/supabase.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [code](<https://devfeed.tech/tags/code.md>), [database](<https://devfeed.tech/tags/database.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [programming](<https://devfeed.tech/tags/programming.md>), [server](<https://devfeed.tech/tags/server.md>), [source](<https://devfeed.tech/tags/source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

## AI overview

This article updates Supabase's work on a Postgres Language Server by focusing on its parser. It explains how a parser converts source code into tokens and syntax trees, including concrete syntax trees and abstract syntax trees, so language-server tools can provide features such as linting, error detection, and code intelligence for SQL and Postgres programming.

## Source excerpt

A detailed analysis of our iterations to implement a Parser for Postgres