Skip to content

trevisharp/orkestra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Orkestra

A technology to build your own technologies.

Table of Contents

Overview

Orkestra is a C# Framework to create compilers and build complex project strcutures with a command line interface for them.

How to install

dotnet new console # Create project
dotnet add package Orkestra # Install Orkestra

Learn by examples

Hello, Compilers

using Orkestra;

Tech.Run(args);

public class MyFirstCompiler : Compiler
{
    Key HELLO = "hello";
    Key COMPILERS = "compilers";

    Rule program;

    public MyFirstCompiler()
    {
        // Accept 'hello' or 'hello compilers'
        program = start(
            [ HELLO ],
            [ HELLO, COMPILERS ]
        );
    }
}

Success on test1.code:

hello compilers

Success on test2.code:

hello

And a error in test3.code:

compilers

See the console:

>> dotnet run run # First run is for C# second run is the parameter for the application
Build started...
Compiling 1 files...
Syntax error in C:\path\test3.code next to 'compilers' on line 1.

Versions

Orkestra v1.0.0 (Coming soon)

  • Added Tree consumer system.

Orkestra v0.8.0 (Coming soon)

  • Auto key finder on rules.
  • Improve Compiler Load and key/rule search process.
  • Fast Compiler easy sintax added.

Orkestra v0.7.0 (Coming soon)

  • Default CLI, Project and Compiler for small projects.
  • New application configuration and start workflow.
  • Use Cache system by default.

Orkestra v0.6.0

  • Add Smart Autocomplete in extension generation.
  • Improve error messages when using LR1 algorithm.
  • Replace the snippet contribute by autocomplete.

Orkestra v0.5.0

  • Improve key definition using intermediary objects. Now ruleA | ruleB, keyA | keyB is allowed.
  • Improve auto convertion between rules and list expressions.
  • one and some rule functions in Compiler class.

Orkestra v0.4.0

  • Add Smart Snipets in extension generation.
  • InstallExtension will not generate .vsix by default.
  • GenerateExtension will generate .vsix now.
  • Consider processings in extension generation.
  • Add comments in extension generation.
  • Bug fixes when create a language with low keywords.

Orkestra v0.3.0

  • Added default VSCode extension generation code with smart highligthing.
  • Improve key and rule definition sintaxes.
  • Improve Processing performance.
  • Many bug fixes in Processing abstraction.

Orkestra v0.2.0

  • Added abstraction for IDE extension generation.
  • Compiler is now non-abstract.
  • Serveral bug fixes.

Orkestra v0.1.0

  • Lexical Analyzer System.
  • Syntactical Analyzer System with LR1 implementation.
  • Cache System.
  • Project definition System.
  • Command Line Interface definition System.

About

Orkestra is a framework to build compilers/languages from scratch.

Resources

License

Stars

Watchers

Forks