Go to the Wiki for documentation and more.
Related: CaffeineScript Wiki
npm install caffeine-mc
Next: Get Started
What is a Meta-Compiler?
It is a compiler for your compiler. CaffeineMC can 'compile' (create) a brand new compiler, on a file-by-file basis. Most the time, though, it is used to select and configure a compiler. For example, see the custom.caf below.
Reason 1: Accelerated Language Evolution
When you can change the compiler programmatically on a per-file basis, languages can evolve arbitrarily without worrying about breaking existing code. This frees languages to evolve rapidly without constraints.
Reason 2: CaffeineMC + CaffeineScript
CaffeineMC really starts to shine when you have a language which is designed to be extensible. CaffeineScript is a modular programming language designed to take maximum advantage of CaffeineMC's per-project and per-file configurability. (modular-CaffeineScript is coming soon)
Reason 3: Custom Source-code 'Views'
Source-code is a "view" into a program's actual semantics. Just like word-processors or spread sheets let you configure your view on a per-file basis, you should be able to change your code's view, its 'language,' on a per-file basis without affecting other files.
Reason 4: Accelerated New Language Development
Focus on writing your new language instead of building all the boiler-plate tools needed to make it useful. CaffeineMC's caf command-line tool, interactive shell, NodeJs-loader and Webpack-loader work for all Caffeine-MC enabled languages. Just create a Caffeine-MC compatible compiler and you get all the standard compiler machinery for free.