02239c5ce4
sample-code/ascii: fix reference depth for postfix-call in_range
function
2025-09-15 00:22:38 -04:00
1f9d32f972
cl-lexer: Make strings curly-brace-aware, for future format string work
2025-09-15 00:21:14 -04:00
8dd2920fca
cl-repl/cli: Pretty-print errors in non-repl mode
2025-09-15 00:20:05 -04:00
df6089f84a
cl-interpret: Print function call backtrace on panic
2025-09-15 00:18:51 -04:00
62940b3d24
conlang: More clippy
2025-09-15 00:17:50 -04:00
1fe796dda7
cl-lexer: Bring over new lexer
...
- Different flow, similar action
- Consolidated all the single-purpose di- and trigraph functions
- Gave the lexer explicit access to its entire string, which is can slice.
2025-09-14 23:02:04 -04:00
f0c871711c
compiler: updated to rust 1.84, now we have let chains!
2025-09-14 19:08:59 -04:00
fcab20579a
cl-structures/intern: Debug-print interned objects with custom sigil
2025-09-14 19:02:55 -04:00
239785b322
cl-interpret: Literal[String] a la python
2025-07-20 15:57:11 -04:00
259c9f8bb6
repline: update Crossterm dependency to 0.29.0
2025-07-18 05:40:20 -04:00
c9ffeaddce
conlang: bump version number to 0.0.10
2025-07-18 05:37:23 -04:00
12daf35c07
.gitignore: Ignore cl-typeck table dumpfile
2025-07-18 05:37:09 -04:00
6a0607b93a
sample-code: Add a super hacky format-string implementation using eval
and fmt
builtins
2025-07-18 05:36:38 -04:00
4f40bd4f99
sample-code: Remove "Student" function from match_test
2025-07-18 05:35:57 -04:00
2f94ddd23f
repline: QoL improvement: inserting newline works!
2025-07-18 05:35:00 -04:00
0f9044bb3e
stdlib: Inference engine caught some type errors! Also added some hot garbage.
2025-07-18 05:34:03 -04:00
8732cca3f9
cl-typeck: Get some serious type inference going!
2025-07-18 05:30:23 -04:00
74220d3bff
cl-lexer: Add base-36 literals, lmao
2025-07-18 05:29:31 -04:00
8b0a122dfc
cl-interpret: Environment/stack overhaul + Ref patterns
2025-07-18 05:29:10 -04:00
e165e029dc
cl-embed: Calculator example update!
2025-07-18 05:26:39 -04:00
148ef34a01
ast: add gens for ty and impl, raw ptr types, make fn return value non-optional
2025-07-18 05:25:35 -04:00
6ba62ac1c4
repline: Refactor for fewer redraws and more user control.
...
Definitely has bugs, but eh!
2025-06-17 00:43:21 -04:00
ae026420f1
conlang: Fix rustdoc warnings
2025-06-17 00:43:21 -04:00
d80f2f6315
cl-embed/examples: rename conculator back to calculator, since MI searches by path
2025-05-19 01:23:23 +00:00
89ed9b2a39
test.cl: Never-like enums tempermanently(?) removed
2025-05-18 11:51:22 -04:00
47608668fa
cl-embed: Add an example, and a new sample-code (same file)
2025-05-18 11:50:33 -04:00
6ce27c522f
cl-embed: Create an (unstable) API for embedding Conlang in your projects!
2025-05-18 11:49:43 -04:00
233e4dab4e
visit: docs cleanup
2025-05-18 11:48:22 -04:00
f95c6ee239
cl-interpret: Add convenience function for binding variables
2025-05-18 11:48:04 -04:00
964917d2f0
cl-interpret: let now returns bool
...
This makes debugging monumentally harder, but it's SO NEAT and instantly adds `if let`/`while let` and `let chaining`
2025-05-18 11:47:13 -04:00
6bb855cff7
cl-parser: semantics changes
...
allow let in conditionals (restricts init of let to non-assignment)
allow semicolons after items at file scope
2025-05-18 11:44:44 -04:00
124bb2f680
cl-interpret: Builtins! builtins(), chars(str), and panic(msg)
2025-05-18 11:42:33 -04:00
08b5937fc2
cl-typeck: Twiddle with infer (maybe this will help fix the weird behavior?)
2025-05-18 11:39:54 -04:00
ccfa4c7723
cl-interpret: copy-capture closures
2025-05-18 11:30:17 -04:00
d3e20e53d0
cl-interpret: Unit tests for while-else control flow
2025-05-18 04:01:50 -04:00
e08bf57dc1
cl-typeck: Give inference its own result type
2025-05-18 04:01:13 -04:00
a5590168ee
cl-parser: Misc cleanup
2025-05-18 04:00:43 -04:00
3e2063835b
cl-parser: Dedicated parsing logic for patterns!
2025-05-18 04:00:00 -04:00
e6156343c3
cl-ast: Add inline closure expressions
2025-05-18 03:57:20 -04:00
6c6d2d04a7
cl-ast: Remove variantkind, as it was redundant
2025-05-17 21:28:12 -04:00
a023551d9f
repline: Change newline behavior when not at end of input
...
TODO: This screws with the naming convention of home()/end()
2025-05-17 20:32:24 -04:00
dc1c9bdd6d
stdlib: Add map* for Option and Result
2025-05-05 05:32:23 -04:00
c5e817f1e5
cl-ast: Rearrange
2025-05-05 05:26:43 -04:00
6108d66b0a
stdlib: Add Option and Result types
2025-05-05 04:55:17 -04:00
09fdb14d79
cl-typeck: Progress population and categorization
2025-05-05 04:54:33 -04:00
4228324ab3
cl-typeck: With super
semantics redone, search within self for items
2025-05-05 04:20:40 -04:00
f5f905cd70
cl-ast: more generic impls for weight_of
...
TODO: get rid of weight_of
2025-05-05 04:19:23 -04:00
883387aaf1
yaml: formatting
2025-05-05 04:18:49 -04:00
2d706ff582
desugar: Add primitive constant folding
2025-05-05 04:18:16 -04:00
cd2e3c3e32
cl-parser: change match parse slightly
2025-05-05 04:16:37 -04:00