Using Spoofax to Support Online Code Navigation

Conference Paper (2023)
Author(s)

P.D. Mosses (TU Delft - Programming Languages, Swansea University)

Research Group
Programming Languages
Copyright
© 2023 P.D. Mosses
DOI related publication
https://doi.org/10.4230/OASIcs.EVCS.2023.21
More Info
expand_more
Publication Year
2023
Language
English
Copyright
© 2023 P.D. Mosses
Research Group
Programming Languages
ISBN (electronic)
9783959772679
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Spoofax is a language workbench. A Spoofax language specification generally includes name resolution: the analysis of bindings between definitions and references. When browsing code in the specified language using Spoofax, the bindings appear as hyperlinks, supporting precise name-based code navigation. However, Spoofax cannot be used for browsing code in online repositories. This paper is about a toolchain that uses Spoofax to generate hyperlinked twins of code repositories. These generated artefacts support the same precise code navigation as Spoofax, and can be browsed online. The technique has been prototyped on the CBS (Component-Based Semantics) specification language developed by the PLanCompS project, but could be used on any language after specifying its name resolution in Spoofax.