CMC logo Cave Man Code

Welcome, cave artist. There are many ways to help, and most need no code at all.

Ways to help

Tell a story or report a bump

Open a GitHub issue that says what you tried, what you expected, and what happened. Tiny programs are perfect bug reports:

ugg bug: oga with three things in a binga block
grunk x = 1
binga x == 1
    oga "one", x, "!"
unga

Write examples

The examples folder is the heart of the project. New examples should:

A test runs every example and compares the output, so your .out must match exactly.

Improve the dictionary

Every word lives in src/cmc/words.py. A good entry has:

Translate

The dictionary, the cheat sheet, and the tutorial are the best things to translate first. Keep the CMC words themselves; translate the explanations.

Teach

Classroom materials, posters, wall charts, and videos are all welcome. Tell us how it went -- "the 6 year olds loved skrib but got stuck on X" is valuable design feedback.

Write code

House style

capable.

that add packages will be asked to remove them.

The setup

git clone https://github.com/your-name/caveman-code
cd caveman-code
set PYTHONPATH=src
bin\cmc.exe run examples/01_hello_oga.cmc
bin\ogabooga.exe
powershell -File native\tests\run_tests.ps1

To rebuild the website:

python tools/build_site.py --check

Pull request checklist

The code, cave by cave

FolderWhat lives there
src/cmc/lexer.pyturns text into tokens
src/cmc/parser.pyturns tokens into a tree
src/cmc/interpreter.pyruns the tree
src/cmc/builtins.pyhelper words
src/cmc/codegen.pyCMC to Python
src/cmc/words.pythe dictionary (docs + aliases)
src/ogabooga/the IDE
examples/example programs and expected outputs
tests/the test suite
site_content/the website words, built by tools/build_site.py

Thank you for helping the next cave coder.

Next: Publishing guide.