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.
翻译:Spoofax 是一个语言工作框。 Spoofax 语言规格通常包括名称分辨率: 定义和引用之间的约束性分析。 当使用 Spoofax 以指定语言浏览代码时, 绑定值将显示为超链接, 支持基于精确名称的代码导航 。 但是, Spoofax 无法用于在线存储库的浏览代码 。 本文涉及一个工具链, 使用 Spoofax 生成代码存储库的超链接双胞胎。 这些生成的手工艺支持与 Spoofax 相同的精确代码导航, 并且可以浏览到网上 。 该技术已经在 PLanCompS 项目开发的 CBS( compent- based Smantics) 规格语言上进行了原型, 但可以在 Spoofax 中指定名称分辨率后用于任何语言 。</s>