Commit Graph

  • 89ed9b2a39 test.cl: Never-like enums tempermanently(?) removed main John 2025-05-18 11:51:22 -04:00
  • 47608668fa cl-embed: Add an example, and a new sample-code (same file) John 2025-05-18 11:50:33 -04:00
  • 6ce27c522f cl-embed: Create an (unstable) API for embedding Conlang in your projects! John 2025-05-18 11:49:43 -04:00
  • 233e4dab4e visit: docs cleanup John 2025-05-18 11:48:22 -04:00
  • f95c6ee239 cl-interpret: Add convenience function for binding variables John 2025-05-18 11:48:04 -04:00
  • 964917d2f0 cl-interpret: let now returns bool John 2025-05-18 11:47:13 -04:00
  • 6bb855cff7 cl-parser: semantics changes John 2025-05-18 11:44:44 -04:00
  • 124bb2f680 cl-interpret: Builtins! builtins(), chars(str), and panic(msg) John 2025-05-18 11:42:33 -04:00
  • 08b5937fc2 cl-typeck: Twiddle with infer (maybe this will help fix the weird behavior?) John 2025-05-18 11:39:54 -04:00
  • ccfa4c7723 cl-interpret: copy-capture closures John 2025-05-18 11:30:17 -04:00
  • d3e20e53d0 cl-interpret: Unit tests for while-else control flow John 2025-05-18 04:01:50 -04:00
  • e08bf57dc1 cl-typeck: Give inference its own result type John 2025-05-18 04:01:13 -04:00
  • a5590168ee cl-parser: Misc cleanup John 2025-05-18 04:00:43 -04:00
  • 3e2063835b cl-parser: Dedicated parsing logic for patterns! John 2025-05-18 04:00:00 -04:00
  • e6156343c3 cl-ast: Add inline closure expressions John 2025-05-18 03:57:20 -04:00
  • 6c6d2d04a7 cl-ast: Remove variantkind, as it was redundant John 2025-05-17 21:28:12 -04:00
  • a023551d9f repline: Change newline behavior when not at end of input John 2025-05-17 20:32:24 -04:00
  • dc1c9bdd6d stdlib: Add map* for Option and Result John 2025-05-05 05:32:23 -04:00
  • c5e817f1e5 cl-ast: Rearrange John 2025-05-05 05:26:43 -04:00
  • 6108d66b0a stdlib: Add Option and Result types John 2025-05-05 04:55:17 -04:00
  • 09fdb14d79 cl-typeck: Progress population and categorization John 2025-05-05 04:54:33 -04:00
  • 4228324ab3 cl-typeck: With super semantics redone, search within self for items John 2025-05-05 04:20:40 -04:00
  • f5f905cd70 cl-ast: more generic impls for weight_of John 2025-05-05 04:19:23 -04:00
  • 883387aaf1 yaml: formatting John 2025-05-05 04:18:49 -04:00
  • 2d706ff582 desugar: Add primitive constant folding John 2025-05-05 04:18:16 -04:00
  • cd2e3c3e32 cl-parser: change match parse slightly John 2025-05-05 04:16:37 -04:00
  • 8c23aea4af to_c: oops John 2025-05-05 04:14:30 -04:00
  • d6c0a6cf1b cl-ast: Allow c-like enums to take an expr John 2025-05-05 02:22:50 -04:00
  • fc80be5fcc conlang: Remove "self" keyword John 2025-05-05 02:20:47 -04:00
  • 7c2dd1468b cl-ast: Finally figure out how visit and walk are supposed to work John 2025-05-05 00:24:52 -04:00
  • 4747b65414 stdlib: Add Result and Option types John 2025-04-22 08:00:59 -04:00
  • 8ff17fd475 cl-ast: Add syntax support for generics John 2025-04-22 07:22:44 -04:00
  • 681fbc88d3 cl-typeck: More type inference John 2025-04-22 06:33:57 -04:00
  • 7cf485fade cl-typeck/infer: Fix some inference errors John 2025-04-21 05:37:34 -04:00
  • 3b96833fcb cl-typeck: Early type inference for let John 2025-04-21 04:52:59 -04:00
  • 65b75f95ce cl-repl: Oops, add dependencies. John 2025-04-21 04:27:17 -04:00
  • 4c4b49ce00 cl-typeck: Implement a framework for type inference ...And also implement a bunch of the inference rules, too. John 2025-04-21 04:26:07 -04:00
  • 7ba808594c cl-ast: Cleanup - Function bind is now one Pattern - TyRef now allows &Ty (i.e. &[i32], &(char, bool) - Range patterns (they cannot bind, only check whether a value is in range - ArrayRep repeat has been reverted to usize, for now, until early consteval is implemented. John 2025-04-21 04:17:45 -04:00
  • ef92d8b798 examples: Adapt examples/yaml to a broken C generator! woo! John 2025-04-16 04:13:39 -04:00
  • 8c8f1254e0 examples/yaml: Remove unnecessary uses of todo!() John 2025-04-16 04:13:04 -04:00
  • 82e62ab4ac cl-parser: Dereference first(?) John 2025-04-15 23:44:56 -04:00
  • b09a610c6c interpreter: Include location in error type John 2025-04-15 23:42:21 -04:00
  • fa5244dcf9 cl-interpret: References, part 3 John 2025-03-14 08:33:46 -05:00
  • 9b460afed4 cl-interpret/pattern: Fail on mismatch again John 2025-03-14 07:00:10 -05:00
  • 27d1d07ed8 conlang: Update to Rust Edition 2024 John 2025-03-14 06:09:39 -05:00
  • 68e676eda4 repline: Clippy lints unbuffered readers now John 2025-03-14 06:09:00 -05:00
  • c988193049 cl-structures/stack: constify all (most of) the things! John 2025-03-14 06:07:48 -05:00
  • 2ecb2efc09 cl-structures: IndexMap::get_disjoint_mut to match Rust 1.86 🎉 John 2025-03-14 04:35:47 -05:00
  • a4176c710e cl-ast: Add filename to File John 2025-03-14 04:11:22 -05:00
  • cdb9ec49fe cl-ast: Estimate the "weight" of an AST, for debugging? John 2025-03-14 04:02:14 -05:00
  • 6d33c4baa9 cl-ast: Break ast-impl into submodules John 2025-03-14 03:58:40 -05:00
  • 33e13425a9 cl-ast: Clean up "to", "extents", Module."kind" John 2025-03-14 00:52:43 -05:00
  • 11c8daaed0 cl-ast: Re-add(?) the Infer type-pattern John 2025-03-12 01:20:58 -05:00
  • 584207fc8c cl-structures::Interned: Change to_ref() from assoc. function to member function (it's so much nicer) John 2025-03-12 01:16:51 -05:00
  • dcdb100a8a cl-interpret: Try having separate globals again? John 2025-03-11 23:33:49 -05:00
  • fdf076c272 cl-ast: Remove Option-like "*Kind"s John 2025-03-11 23:32:58 -05:00
  • 2fc847fff2 Listen to the truthmachine! Scream your falsehoods. John 2025-03-11 05:03:52 -05:00
  • 4bc088f277 cl-interpret: Pure value stack v1, references v2 John 2025-03-11 05:01:49 -05:00
  • 06bcb6b7c6 interpret: try out Ref == RcRefCell. Subject to change! John 2025-03-11 01:31:02 -05:00
  • 7e311cb0ef conlang: RIP THE EXPRKIND BANDAGE OFF John 2025-03-11 00:36:42 -05:00
  • c0ad544486 cl-interpret/convalue: Destructure with (Rust) pattern matching John 2025-02-28 20:36:24 -06:00
  • fd54b513be cl-interpret/pattern: Doc changes, minor format John 2025-02-28 20:35:20 -06:00
  • adbabc66c5 cl-interpret: impls v1 John 2025-02-23 04:06:14 -06:00
  • 5c99bf09ab stdlib: Make stdlib not error out w/ undefined symbols, add ranges. John 2025-02-23 03:29:15 -06:00
  • 4d9b13f7a1 cl-interpret: Enums, pt 1: C was right the whole time!!1 John 2025-02-23 03:22:48 -06:00
  • d9ac9e628d cl-interpret: Stage items within a file in resolution order. John 2025-02-23 03:21:34 -06:00
  • 632ddf0eab cl-interpret: cleanup John 2025-02-23 03:00:00 -06:00
  • e39b390441 cl-parser, cl-repl: Add ./[mod].cl to module search path John 2025-02-23 02:44:26 -06:00
  • 2fd08193fd cl-parser: Promote match scrutinee to position John 2025-02-23 02:43:22 -06:00
  • 7d3f189100 conlang: Introduce ..rest Patterns, refactor Ranges John 2025-02-23 02:41:41 -06:00
  • cc6168b55e cl-ast: Remove Param, replace with flat Pattern John 2025-02-23 02:01:38 -06:00
  • e3d94d8949 conlang: Unify binding operations! John 2025-02-22 05:16:37 -06:00
  • 7a8da33de9 cl-interpret: Tuple structs + fix tuple member access John 2025-02-22 03:31:27 -06:00
  • 697d139cfd conlang: Add Tuple-Struct Patterns - Patterns are no longer parsed with the highest precedence - Function calls with just a path and a tuple of args can now be transformed into a Pattern John 2025-02-22 01:37:08 -06:00
  • 5d2c714bc1 conlang: Patterns...2! John 2025-02-22 01:00:29 -06:00
  • b115fea71b cl-interpret: fix import in builtin! doctest John 2025-02-21 22:49:14 -06:00
  • eebabf02fb repline: change error formatting John 2025-02-20 22:05:43 -06:00
  • 088cd4d1e4 cl-interpret: Change format of todo for Impl John 2025-02-20 22:05:23 -06:00
  • 0fd9c002fc cl-interpret: Interpret items in a file in a particular order John 2025-02-20 22:04:27 -06:00
  • 772286eefa conlang: Single-expression functions John 2025-02-20 21:59:42 -06:00
  • 3cb85c7f42 toki: pona toki-pona John 2025-02-19 04:04:40 -06:00
  • 3b14186b70 sample-code: Add match_test.cl John 2025-02-18 21:53:32 -06:00
  • a6ad20911d builtins: Add temp builtin for dumping the global string pool John 2025-02-18 21:49:59 -06:00
  • 01cf9d93e2 cl-repl: Usability improvements - Don't print empty - Don't needlessly append newline to cleared screen John 2025-02-18 21:48:36 -06:00
  • edabbe1655 cl-interpret: process use items and imports in the interpreter John 2025-02-18 21:44:52 -06:00
  • af9c293907 cl-interpret, cl-repl: Move IO builtins into the CLI, so get_line can use repline keybinds. John 2025-02-06 21:35:17 -06:00
  • 0e3ba342c4 cl-interpret: make the error type smaller (at the cost of a heap allocation) John 2025-01-31 03:35:35 -06:00
  • d95d35268e cl-interpret: Builtin refactor John 2025-01-31 03:34:45 -06:00
  • 0c2b0002ce conlang: Docs! John 2025-01-29 05:07:08 -06:00
  • 3534be5fbc conlang: bump version number for pattern matching and destructured bindings John 2025-01-29 04:16:53 -06:00
  • 026681787a cl-interpret: Add a new pretty-debug-printer builtin John 2025-01-29 04:16:28 -06:00
  • 80e1219808 cl-interpret: Tests for new pattern matching behavior TODO: Expand control flow tests John 2025-01-29 04:15:57 -06:00
  • 6ee9bbd72e conlang: PATTERN MATCHING AND DESTRUCTURED BINDINGS WOOOOO John 2025-01-29 04:15:33 -06:00
  • 6e94b702c9 cl-ast: Add pattern and match nodes, and associated behaviors John 2025-01-29 04:05:11 -06:00
  • d21683ad61 conlang: Add Quote expression as a hack for testing John 2025-01-29 03:56:19 -06:00
  • 518fbe74a1 cl-ast: Fix AddrOf misbehavior John 2025-01-29 03:31:24 -06:00
  • bc955c6409 conlang: Bump version number :D John 2025-01-28 06:56:48 -06:00
  • 678c0f952c sample-code: Add demo for get_line() John 2025-01-28 06:56:30 -06:00
  • 86c4da0689 cl-repl: Don't print ConValue::Empty return values John 2025-01-28 06:55:03 -06:00
  • 5db77db6b8 cl-interpret: Use dyn dispatch for iterators. - This is a hack because the language has the syntax but no concept of iterators John 2025-01-28 06:25:04 -06:00