Go to file
Devine Lu Linvega 4cfda08fe9 Starting tokenizer 2024-04-04 09:29:36 -07:00
src Starting tokenizer 2024-04-04 09:29:36 -07:00
.clang-format Trying a c parser 2024-04-04 09:04:27 -07:00
.gitignore Trying a c parser 2024-04-04 09:04:27 -07:00
README.md Init 2024-03-31 12:18:37 -07:00
build.sh Init 2024-03-31 12:18:37 -07:00
combinators.modal Updated python source 2024-04-01 17:17:53 -07:00
concat.modal Added concat example 2024-03-31 14:27:55 -07:00
lisp.modal Print reduction steps 2024-04-01 19:26:29 -07:00
makefile Trying a c parser 2024-04-04 09:04:27 -07:00
modal.py Trying a c parser 2024-04-04 09:04:27 -07:00
prelude.modal Init 2024-03-31 12:18:37 -07:00
prelude2.modal Added concat example 2024-03-31 14:27:55 -07:00
test.modal Starting tokenizer 2024-04-04 09:29:36 -07:00

README.md

Modal

Modal is a language based a model of computation that uses pattern matching and replacement to rewrite trees.

All Modal code is represented as a series of rules applied to a given tree, formatted textually as tokens delimited with parenthesis, which gets continually modified until no rules match any given part of the tree.

A pattern/replacement can be:

A token: foo, bar, baz
A variable: ?foo, ?bar, ?baz
A sequence of the above: (foo bar baz), (foo ?bar baz), foo (bar (baz))

Run

python3 ./modal.py

Credits

Created by wryl, Immediate Mode Technologies.