dpscript

Crates.iodpscript
lib.rsdpscript
version0.2.0
sourcesrc
created_at2024-10-10 23:53:28.541347
updated_at2024-10-10 23:53:28.541347
descriptionA transpiled programming language to aid in Datapack development.
homepage
repositoryhttps://github.com/RedstoneWizard08/DPScript
max_upload_size
id1404714
size725,855
(RedstoneWizard08)

documentation

README

DPScript

DPScript is a transpiled programming language to aid in Datapack development, inspired by CBScript.

Features

  • Extremely comfortable syntax
  • A friendly and familiar syntax
  • An IR form to allow other syntaxes to grow on top of DPScript's framework
  • Advanced conditionals
  • Scoreboard & store manipulation
  • A batteries-included standard library (WIP)
  • Full array support
  • Support for loops
  • Compile-time constants
  • Easy text components and NBT manipulation
  • Functions & subroutines
  • Tags
  • Init & Tick blocks
  • Modules
  • Imports & Exports
  • A language server for auto-completion (Coming Soon!)
  • Support for your favorite IDEs (WIP)
  • A fully-fledged package registry and build system (Coming Soon!)
  • And much more!

DPScript features a fully custom tokenizer, lexer, validator, and AST to provide an extremely comfortable syntax while being very stable. By merging all imported files into a single AST it can provide the best error detection and validation possible. Don't worry anymore about strange issues when making datapacks!

TODO List

Core

  • Tokenizer
  • AST
  • Lexer
  • AST Validator
  • IR (DPIR)
  • Codegen
  • Build System

Language Features

  • Functions
  • Variables
  • Compile-time constants
  • Imports
  • Exports
  • If/else statements
  • Subroutines & goto
  • for entity in selector loops
  • for ... in ... loops
  • for ... in [0..3] loop unrolling

QoL

  • Syntax Highlighting
  • IR Syntax Highlighting
  • More CLI commands and options
  • Language server
  • Code formatter

Future Plans

  • Package Registry
  • Build system support for the package registry
  • IR-level optimizer
Commit count: 57

cargo fmt