CREED
A concatenative language for text processing script, inspired by ed
and sam
CREED is written in C and runs on POSIX platforms. CREED has unicode support
out of the box.
language
A running program is called a state. A state has a buffer, a stack and the mark. The mark is a slice of the buffer. CREED has four data types - numbers, text, symbols and groups. Groups double as functions and arrays.
numbers
Numbers are currently signed ints. Writing them in a program pushes them onto the stack.
1 2 plus dump => [1] 3
text
Text is a sequence of characters. Text is written inside ""
.
"hello" a
symbols
Symbols are an identifier. If you just write a symbol, CREED will apply a
group associated with the symbol (using bind
). If you prefix a symbol with
'
, it will push the symbol to the stack.
'put put => put
groups
Groups are just array of code which can be run. The are written inside {}
{ 456 } { 123 } apply dump => [1] ,group 123
links
build instructions
dependencies
For build you need:
- make
- C99 (or newer) compiler (I only tested this with clang. If your find problems with other compilers, contact me at my email)
CREED also uses these libraries:
- libreadline
- libpcre2-32
- some POSIX C extensions
build
- Obtain the source code.
make
This will build creed
and libcreed.a
.