A unified syntax that compiles into your favorite OOP languages.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Fixed issue template formatting Sep 1, 2018
.vscode Added Prettier (#460) Sep 1, 2018
docs Added StrintToInt(Start|End) commands (#570) Nov 12, 2018
src Added StrintToInt(Start|End) commands (#570) Nov 12, 2018
test Added StrintToInt(Start|End) commands (#570) Nov 12, 2018
util Used project names instead of basename for .csproj generation (#559) Nov 11, 2018
.gitignore Separated end-to-end files into language-specific directories (#547) Nov 10, 2018
.markdownlint.json Docs cleanup: standalone functions; docs linting (#493) Oct 1, 2018
.npmignore Again mentioned aka.ms/gls-demo in README.md May 15, 2017
.prettierignore End to end output tests (#505) Oct 28, 2018
.prettierrc.json Added markdownlint and updated packages to latest (#492) Oct 1, 2018
.travis.yml End to end output tests (#505) Oct 28, 2018
CONTRIBUTING.md Corrected links in contributing.md. Fixes #397 (#398) Oct 14, 2017
LICENSE.md Create LICENSE.md Dec 12, 2016
README.md Docs cleanup: standalone functions; docs linting (#493) Oct 1, 2018
SUMMARY.md Added StrintToInt(Start|End) commands (#570) Nov 12, 2018
gls.json Split language metadata into general, project, and syntax (#468) Sep 17, 2018
package-lock.json Fibonacci end-to-end test (#544) Nov 11, 2018
package.json Fibonacci end-to-end test (#544) Nov 11, 2018
tsconfig.json Bumped packages to latest (#426) Feb 20, 2018
tslint.json Added standardized Main.gls file name conversions (#527) Nov 8, 2018

README.md

GLS - General Language Syntax

Build Status NPM version Greenkeeper badge

A unified syntax that compiles into a number of OOP languages.

GLS is still under development. Don't expect everything to work!

Usage

GLS can be used as a command-line app or via import/require.

CLI

To convert file.gls to file.py:

npm install general-language-syntax gls-cli --global

gls --language Python file.gls

See gls-cli.

Code

npm install general-language-syntax

import { Gls } from "general-language-syntax";

const gls = new Gls("C#");

// System.Console.WriteLine("Hello world!");
gls.convert([`print : ("Hello world!")`]);

Status

GLS is just shy of 0.4.

Deliverable Version Description
C++ Compiler 0.1 Command-line GLS prototype, written in C++.
TypeScript Compiler draft 0.2 GLS compiler as a website, written in TypeScript.
TypeScript Compiler + C# Output 0.3 GLS compiler re-written in TypeScript. Near-working C#, Java, JavaScript, Python, Ruby, and TypeScript output.
Roundtripping Feature Complete 0.4 All features required for roundtripping implemented. Working C# and TypeScript output. Near-working Java, JavaScript, Python, and Ruby output.
Full Language Outputs 0.5 Working C#, Java, JavaScript, Ruby, Python, and TypeScript output.
Powershell, PHP, Misc. 0.6 Onboard or reject those languages and other possibilities.
Language Specification Finalized 0.7 Finalized language spec & cleaned internals of code.
General Release 1.0 Public announcement, glory to everyone. Switched to a better name.

Development

If you'd like to contribute to GLS, see Development.md.

Requires Node >=8