Skip to content

JoshuaKasa/CASO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

232 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CASO

CASO is a small programming language that transpiles to Java.

This repository contains the CASO toolchain:

  • Lexer (src/caso_lexer.py)
  • Token-level desugaring (src/caso_desugar.py)
  • Parser + AST (src/caso_parser.py)
  • Java transpiler (src/caso_transpiler.py)
  • Module resolution for incorp (src/caso_modules.py)
  • Standard library modules (src/stdlib/*.caso)

Quickstart

Transpile a sample program from src/test/:

python -m caso transpile test_1.caso

Run unit tests:

python -m caso test

Documentation (MkDocs)

Book-level docs live under docs/ and are built with MkDocs Material.

python -m pip install -r requirements-docs.txt
mkdocs serve

Development Notes

  • Generated Java output is written under src/build/ (treat as build artifacts; avoid committing changes).
  • CASO supports embedding raw Java via caso___native_java_start/end; treat CASO inputs as untrusted code and do not run generated Java unless you trust the source.

Contributing

See docs/internals/contributing.md and repository guidelines in AGENTS.md.

About

Simple Java transpiled language built with Python ☕

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors