Prototype of an incremental Cobol compiler front-end for IBM Enterprise Cobol 5.1 for zOS syntax.
This prototype is a work in progress and is currently written in C#.
The solution was uploaded to Github using Visual Studio 2015 Community RC and the GitHub Extension for Visual Studio.
The best way to test this project is to download and install both tools (for free) on your local machine, login to Github from Visual Studio Team Explorer, then refresh this page and click on the Open in Visual Studio button which should appear on the right of the repository : this action will clone the solution in your local Git repository and open it in Visual Studio.
The solution contains 4 projects :
- TypeCobol is the main project, it implements a complete Cobol compiler front-end
- TypeCobol.Grammar uses Antlr4 to generate C# parsers for Cobol compiler directives and Cobol statements
- TypeCobol.Test provides unit tests which can be launched from the Test Explorer in Visual Studio
- TypeCobolStudio is a sample code editor used for visual demos
The following librairies are included in the Visual Studio projects by the Nuget package manager :
-
ANTLR 4 : The C# target of the ANTLR 4 parser generator for Visual Studio 2010+ projects.
-
ANTLR 4 Runtime : The runtime library for parsers generated by the C# target of ANTLR 4. This package supports projects targeting .NET 2.0 or newer, and built using Visual Studio 2008 or newer.
-
Reactive Extensions - Main Library : Reactive Extensions Main Library combining the interfaces, core, LINQ, and platform services libraries. The Reactive Extensions (Rx) is a library to compose asynchronous and event-based programs using observable collections and LINQ-style query operators.
-
System.Collections.Immutable : This package provides collections that are thread safe and guaranteed to never change their contents, also known as immutable collections. Like strings, any methods that perform modifications will not change the existing instance but instead return a new instance. For efficiency reasons, the implementation uses a sharing mechanism to ensure that newly created instances share as much data as possible with the previous instance while ensuring that operations have a predictable time complexity.
-
AvalonEdit : AvalonEdit is a WPF-based text editor component. It was written by Daniel Grunwald for the SharpDevelop IDE. Starting with version 5.0, AvalonEdit is released under the MIT license.