a6ad20911d
builtins: Add temp builtin for dumping the global string pool
2025-02-18 21:49:59 -06:00
af9c293907
cl-interpret, cl-repl:
...
Move IO builtins into the CLI, so get_line can use repline keybinds.
2025-02-06 21:35:17 -06:00
d95d35268e
cl-interpret: Builtin refactor
...
- Everything is different now
- Builtins are now built on top of Rust functions, so they can be recursive!
- TODO: allow macro-defined builtins to call each other?
- The builtins! macro is a lot nicer to work with
- No redundant return value
- Maps the result over Into::into, allowing for type inference!
- Uses explicit pattern syntax instead of weird binding, where possible
- Does not #[allow(unused)], so you'll get unused variable warnings now!
2025-01-31 03:34:45 -06:00
0c2b0002ce
conlang: Docs!
2025-01-29 05:07:08 -06:00
026681787a
cl-interpret: Add a new pretty-debug-printer builtin
2025-01-29 04:16:28 -06:00
01871bf455
cl-interpret: get_line
builtin!
2025-01-28 06:14:05 -06:00
c50940a44c
cl-interpret: Make an attempt at closures
...
(It kinda sucks, but it emulates closures half decently)
2025-01-23 16:23:42 -06:00
fad28beb05
interpreter: Add float machinery
...
- operators
- type casting
2024-09-18 01:02:09 -05:00
b2733aa171
cl-interpret/builtin: Add len
builtin as a quick hack to write more interesting programs.
...
This is temporary, I just want a way to get the length of a thing atm.
2024-07-27 18:43:03 -05:00
15c4b89bce
cl-interpret: builtin.rs whitespace changes
2024-07-11 04:43:25 -05:00
aa7612926e
cl-interpret: Add format builtin
...
Might as well add some new features to play around with until I rip 'em all out
2024-07-11 04:42:36 -05:00
b446677eda
cl-interpret: Enforce wrapping behavior
2024-07-09 06:13:55 -05:00
0beb121f32
cl-interpret: Change print to print without newline, add new println builtin
2024-07-09 06:13:05 -05:00
406bfb8882
cl-interpret: Stop kidding myself, I'll be replacing the interpreter before I get rid of this.
2024-05-19 15:16:22 -05:00
3fe5916a4f
cl-ast: Switch from old string interner to new string interner
...
Update cl-parser, et. al. to match.
2024-04-27 20:24:11 -05:00
40ec9b30e4
conlang: Use interned strings (Sym
) for all symbols
2024-04-24 19:34:29 -05:00
9dc0cc7841
cl-interpret: Give the interpreter a little love
...
And stop copying strings around.
2024-04-19 10:49:25 -05:00
90a3818ca0
conlang: Move all cl-libs into the compiler directory
2024-04-19 07:39:23 -05:00