Analysing Golang Syntax Structure with Gastly

| 2 min read

Syntax trees (commonly Abstract Syntax Trees) are hierarchical tree data structures used to represent the syntactic structure of a source code. They are an essential apparatus for various tasks such as code analysis, optimization, and transformation. ASTs break down the source code into a tree of nodes or tokens, each representing a specific construct, such as functions, variables, or control flow statements.

# Why Gastly?

Gastly Editor
On-the-fly parsing and rendering of Golang syntax with Gastly

Gastly is a developer tool that simplifies the process of parsing and visualising Go syntax structures. With Gastly, it is easy to navigate the trees and to understand the properties of each token. This is achieved by processing the input source code on the fly and rendering the syntax tree in the browser.

ASTs are fundamental for many developer tools or language-specific tasks, e.g. linters, debuggers, code generation, etc., but they can be challenging to comprehend especially for complex code structures. Visualizing the tree can make it significantly easier to understand the structure and relationships between different parts of your code. This visualization can help in debugging, code review, and refactoring.

# Features

Gastly brings a set of features that make it a valuable tool for developers:

  • Parser: Gastly parses Go code to construct an AST representation, preserving the hierarchical structure of the code.
  • Browser-Based Rendering: The parsed AST is rendered directly in your web browser, providing an interactive and intuitive visualization of the code’s structure.
  • Export Functionality[1]: Gastly lets you export the rendered AST as a downloadable JSON or Text file for offline analysis or sharing with others.
  • Navigation[2]: Gastly allows you to navigate through the AST by clicking on nodes, and highlighting their corresponding code in the source file.
  • Annotations[2:1]: You can add annotation at any nodes with additional information.

# Try Gastly

The source code is available https://github.com/chumaumenze/gastly. A hosted version of Gastly is available at https://gastly.chumaumenze.com/


  1. Work in progress. Some functionalities are already available. ↩︎

  2. Planned feature. ↩︎ ↩︎