Syntax-From-Doc
Producing syntax highlighting, code completion, and context-aware code documentation in IDEs is hard. It is especially hard at SAS where the age and complexity of the SAS programming language begets quirks and edge cases. To support the features expected in modern IDEs, SAS has historically relied on syntax information produced in an unscalable, opaque manual process. This article presents a case study of the multi-year project to replace this legacy process with a "syntax-from-doc" REST service that stores and serves syntax information as JSON objects that are extracted from SAS XML documentation. The goal of the project is to produce a scalable, continually updated single-sourcing process by which all SAS syntax information can be made uniform and available across our myriad products and services. Though not without bumps and bruises to show for the stumbles along the way, this project serves as an interesting example of leveraging modern continuous integration/continuous delivery tooling, multiple markup languages, and a diverse technology stack to solve a hard problem.