Skip to content

the-meta-lang/meta

Repository files navigation

Contributors Forks Stargazers Issues MIT License


About The Project

META is a compiler writing language inspired by the META-II Metacompiler from the seminal paper "META II a syntax-oriented compiler writing language" written by Val Schorre in 1963. META allows for the creation of compilers, parsers and interpreters for programming languages using a concise and powerful syntax.

Getting Started

META comes as a standalone binary. You may also compile it for your specific system but as of yet, it has only been tested on Linux x86_64 and the used syscalls WILL NOT WORK on Windows.

The binary takes a single positional argument, a path to a source .meta file containing the syntax definition for your language.

./bootstrap/meta.bin <source>

Replace <source> with the actual filename of your META program source file. The bootstrap compiler will then generate a compiler for your program.

Congratulations! You've just written your first compiler!

If you want to further develop a compiler using hot reloading, you can use the cascade.bash file. This script will watch for changes in any of the supplied files and compile/execute them in order they were passed in. You might use it like this:

bash cascade.bash <root-compiler> <application-compiler> <input>

The output will be printed to the console.

For more examples, please refer to the Documentation

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

About

META is a compiler writing toolchain optimized for speed and reliability. It is easy to pick up and extremely flexible.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published