Skip to content
/ neon Public

A programming language that targets minecraft data packs

License

Notifications You must be signed in to change notification settings

Innf107/neon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Neon Programming Language

Neon is a programming language that compiles down to Minecraft data packs, while operating at a significantly higher level of abstraction than regular functions.

Neon is work in progress and very incomplete at the moment. Some language constructs work already, but there are going to be many more to come.

Comparison to similar projects

Trident is probably the most popular project that fills this nieche. Then again, trident is not a direct competitor to Neon, since both projects have very different goals.

Trident is not as much a standalone language as it is a fairly advanced preprocessor for minecraft functions.

By contrast, neon is an entirely separate language. Neon has (well, is going to have) inline commands to allow interaction with the wider Minecraft ecosystem, but these are more comparable to inline assembly in C/Rust than Trident's commands.

Also, Trident is in an actually usable state at the moment.

Roadmap

These are some important features that are currently missing from the language. If any of this sounds interesting and you would like to contribute, feel free to open an issue. Any help is appreciated!

  • Source code positions in diagnostics
  • Arithmetic (-, *, //, mod)
  • Remaining comparison operators (<, >, >=, ==, !=)
  • If expressions
  • Expression blocks (like {} expressions in Rust)
  • Inline commands
  • Hindley Milner type inference
  • Structs (and compound shapes in MIR)
  • Zero sized types
  • Variant types
  • Polymorphism (via monomorphization)
  • Traits
  • Function closures

About

A programming language that targets minecraft data packs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published