Skip to content

protasm/jvmud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JVMud

JVMud is an experimental LPMUD platform for the JVM. This repository is a monorepo: the LPC compiler lives under compiler/, a basic LPC mudlib lives under mudlib/, and future runtime/server work will live under runtime/.

Repository Layout

Path Purpose
compiler/ JVMud compiler Java source. It currently contains the LPC scanner, preprocessor, parser, semantic analysis, IR, bytecode compiler, efun interfaces, and host-facing runtime loader classes.
runtime/ Placeholder for JVMud runtime/server code that will host compiled LPC objects and provide game-engine services.
mudlib/ Basic LPC mudlib content. It currently includes reusable objects under obj/ and rooms/world content under room/.
docs/ Static project site published from simple HTML.

Compiler Status

The compiler source is present at:

compiler/src/main/java/io/github/protasm/jvmud/compiler/

The compiler is now under the JVMud umbrella package, io.github.protasm.jvmud.compiler.

Important compiler packages include:

  • preproc: include resolution, macro expansion, conditional directives, and source mapping.
  • scanner and token: lexical analysis and token model.
  • parser: Pratt parser, parselets, AST nodes, and LPC type/operator models.
  • semantic and ir: semantic analysis, type checking, and typed intermediate representation.
  • bytecode: JVM bytecode generation using ASM.
  • efun, runtime, and exec: efun contracts, generated-code helpers, class loading, and host-facing runtime APIs.
  • pipeline: orchestration for preprocessing, scanning, parsing, semantic analysis, IR lowering, and bytecode generation.

io.github.protasm.jvmud.compiler.JvmudCompiler is the current facade and command-line entry point. It compiles one LPC source file to a JVM class file when invoked with:

JvmudCompiler <source-file> [output-dir]

Build Notes

There is not yet a repository-level Maven or Gradle build descriptor checked in. When adding build wiring, keep it aligned with the monorepo layout. The compiler source imports ASM, so the compiler module will need an ASM dependency once build metadata is added.

Development Notes

  • Keep changes scoped to the relevant top-level area (compiler/, runtime/, mudlib/, or docs/).
  • Treat runtime/ and mudlib/ as intentionally separate from compiler internals: compiler helpers used by generated bytecode currently remain under compiler/src/main/java/io/github/protasm/jvmud/compiler/runtime/.

About

JVMud

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors