Giter Site home page Giter Site logo

gwendal-jouneaux / langium Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eclipse-langium/langium

0.0 0.0 0.0 3.48 MB

Next-gen language engineering / DSL framework

Home Page: https://langium.org/

License: MIT License

JavaScript 0.34% TypeScript 99.58% CSS 0.03% HTML 0.05%

langium's Introduction

npm Build Gitter Chat Github Discussions Gitpod Ready-to-Code


Eclipse Langium (IPA: /ˈlæŋɡiəm/, like language and equilibrium) is a language engineering tool for TypeScript with built-in support for the Language Server Protocol. The framework is an all-in-one solution for building programming languages, domain specific languages, code generators, interpreters and compilers. It serves as a spiritual successor to the Eclipse Xtext framework.

  • Semantics First: Building on top of a grammar declaration language, Langium enables you to build the abstract model of your language in parallel to its syntax. Langium parsers are powered by Chevrotain.
  • Lean by Default, Customizable by Design: Langium offers the infrastructure you need to build languages purely by defining their grammar. If that is not enough, you can fine tune every detail of your language using our dependency injection system.
  • Write Once, Run Everywhere: By leveraging the flexibility of JavaScript and the Language Server Protocol, a language written using Langium can run in all kinds of IDEs and browsers or be embedded in CLIs and server applications.

Installation

Build your first language with Langium in our online playground.

Once you're ready to set up a project, you can use yeoman to generate a sample Langium project:

npm i -g yo generator-langium
yo langium

Documentation

You can find the Langium documentation on the website.

If you're new to building programming language, take a look at our overview to see what Langium offers.

The documentation is divided into several sections:

The documentation website is hosted in this repository.

Examples

We host a number of simple examples in our main repo:

  • arithmetics: How to create an expression language + interpreter.
  • domainmodel: How to create a language with fully qualified name identifiers.
  • requirements: How to create a Langium project with multiple languages.
  • statemachine: How to create a code generator.

More complex examples are available as separate repositories in our GitHub organization:

  • lox: Implementation of the Lox language from the popular book Crafting Interpreters.
  • minilogo: Implementation of a logo language dialect. Shows how to integrate Langium in the browser.

Contributing

If you want to contribute to Langium, please take a look at our contributing guide.

Langium is fully MIT licensed.

langium's People

Contributors

msujew avatar spoenemann avatar dhuebner avatar pluralia avatar danieldietrich avatar jbicker avatar sailingkieler avatar gfontorbe avatar kaisalmen avatar lotes avatar montymxb avatar insafuhrmann avatar daumantas-kavolis-sensmetry avatar snarkipus avatar cdietrich avatar emilkrebs avatar claaspetersen avatar yokozuna59 avatar hpopov avatar jindong-zhannng avatar coolya avatar ruediste avatar semperedev avatar sidharthv96 avatar rtulpe avatar luan-xiaokun avatar bjthehun avatar goto40 avatar mikoto2000 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.