Commit Graph

  • 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
  • 145a24c5ff cl-interpret: Assignment 2.0, now with more destructuring! TODO: Destructuring let, destructuring patterns in function args..? John 2025-01-28 06:23:37 -06:00
  • 485afb7843 cl-interpret: Make ConValues act like value types (Aside from the fact that they're smothered in heap allocations) John 2025-01-28 06:20:10 -06:00
  • 01871bf455 cl-interpret: get_line builtin! John 2025-01-28 06:14:05 -06:00
  • fd361f2bea cl-interpret: Upvars 2.0 - Only captures locals John 2025-01-28 06:13:38 -06:00
  • 0eef6b910c cl-interpret/collect_upvars: elide lifetime John 2025-01-23 18:53:07 -06:00
  • c50940a44c cl-interpret: Make an attempt at closures John 2025-01-10 06:51:08 -06:00
  • 3cda3d83d9 typeck: Replace unsafe static mut with tree interning, John 2025-01-16 21:16:46 -06:00
  • e5a51ba6c2 cl-structures: add to_ref associated function on Interned type, for non-borrowing conversion John 2025-01-16 21:01:28 -06:00
  • 883fd31d38 conlang: Elide lifetimes (fixes clippy lint) John 2025-01-16 20:57:33 -06:00
  • d71276b477 cl-structures: Update error type in unstable get_many_mut feature for IndexMap John 2025-01-16 20:32:09 -06:00
  • d8e32ee263 cl-arena: promote to its own independent repository John 2025-01-16 20:30:23 -06:00
  • e419c23769 repline: fix operator precedence bug, clippy lints John 2025-01-16 20:29:43 -06:00
  • 1bd9c021dd sample-code: Fix typo in sqrt.cl John 2024-11-21 21:57:10 -06:00
  • df68d6f2e6 cl-interpret/tests: Fix broken test John 2024-09-19 14:29:21 -05:00
  • ae11d87d68 Merge pull request 'Basic floating point support (WIP)' (#18) from floats into main John 2024-09-19 19:27:51 +00:00
  • 96be5aba6c repline: Add a code sample demonstrating the use of prebaked::read_and John 2024-09-19 14:08:50 -05:00
  • b9f4994930 sample-code: update sqrt.cl to use new float syntax John 2024-09-19 14:02:58 -05:00
  • f4fe07a08b cl-lexer: Hack around ambiguity between 1.0 and 1..0 John 2024-09-19 14:02:02 -05:00
  • 94be5d787f cl-ast: always pretty-print decimal for floats John 2024-09-19 14:00:22 -05:00
  • 5deb585054 cl-ast: Add float support - Smuggle floats as integers to maintain eq - This is bad, but not terrible for spec-compliant floats. Might have issues with NaN. John 2024-09-19 13:20:19 -05:00
  • 56e71d6782 cl-lexer: Add a hacky workaround for float support. John 2024-09-19 13:16:27 -05:00
  • c62df3d8b3 sample-code: Add square root demo John 2024-09-18 01:53:04 -05:00
  • fad28beb05 interpreter: Add float machinery - operators - type casting John 2024-09-18 01:02:09 -05:00
  • 0f8b0824ac cl-parser: Fix precedence of comparison operators John 2024-09-18 00:57:44 -05:00
  • 99a00875a8 cl-intern: Derive Default for StringInterner and TypedInterner John 2024-08-24 18:18:22 -05:00
  • 8675f91aca cl-ast: Remove tail from let (it caused more problems that it could've solved) new_ast John 2024-07-31 03:19:20 -05:00
  • de63a8c123 cl-parser: Outline precedence parser John 2024-07-31 02:55:01 -05:00
  • 533436afc1 cl-parser: Move precedence parser into its own module John 2024-07-31 02:48:39 -05:00
  • 1eb0516baf cl-parser: Rearrange to match cl-ast John 2024-07-31 02:35:41 -05:00
  • 97808fd855 cl-parser: Transliterate to a trait-based parsing implementation John 2024-07-31 01:39:00 -05:00
  • 388a69948e Revert "cl-ast: Unify break, return, and unary expressions" John 2024-07-30 22:31:39 -05:00
  • 5e7ba6de24 cl-ast: Improve formatting of blocks and groups John 2024-07-30 20:40:22 -05:00
  • adb0fd229c cl-ast: Unify break, return, and unary expressions John 2024-07-30 20:16:07 -05:00
  • 0e545077c6 cl-ast: Remove "Continue" struct John 2024-07-30 19:42:28 -05:00
  • b64cc232f9 cl-ast: Move loop expression into unary exprs (with lowest priority) John 2024-07-30 18:21:25 -05:00
  • b0341f06fd cl-ast: Move let into Expr John 2024-07-30 18:02:09 -05:00
  • a3e383b53f cl-token: Flatten TokenKind into a single enum (wow!) John 2024-07-30 16:47:09 -05:00
  • 1b217b2e75 typeck: Add a query for all strings John 2024-07-29 15:55:53 -05:00
  • 5662bd8524 cl-structures: (ab)use the Display trait to print a numbered, sorted list of interned strings. John 2024-07-29 15:55:12 -05:00
  • 28f9048087 cl-typeck: Fix infer.rs doctests John 2024-07-29 15:42:35 -05:00
  • b17164b68b cl-interpret: Write an example for driving the interpreter John 2024-07-29 15:42:05 -05:00
  • ecebefe218 cl-interpret: Knock those modules free! John 2024-07-27 22:47:46 -05:00
  • fc374e0108 ascii.cl: TODO: throw out the interpreter (EVIL) John 2024-07-27 20:00:22 -05:00
  • 4295982876 ascii.cl: Cleanup on aisle "bitwise" John 2024-07-27 19:59:35 -05:00
  • 729155d3a4 ascii.cl: Fix type annotations (though they're not yet evaluated in the interpreter) John 2024-07-27 19:38:41 -05:00
  • 8c0ae02a71 sample-code/ascii.cl: Make it cooler - Compute char value of digit - Substitute C0 control codes for Unicode C0 Control Pictures - Extend through Unicode Latin-1 Supplement - Blank out C1 control code range John 2024-07-27 19:34:37 -05:00
  • 7f7836877e sample-code: Add shebang comments to samples with a main() function John 2024-07-27 18:56:36 -05:00
  • b2733aa171 cl-interpret/builtin: Add len builtin as a quick hack to write more interesting programs. John 2024-07-27 18:43:03 -05:00
  • a233bb18bc cl-lexer: Record the contents of comments John 2024-07-27 18:41:50 -05:00
  • e06a27a5b1 cl-lexer: Treat #!/ | #!\ as a comment John 2024-07-27 18:41:18 -05:00
  • 3f5c5480ae cl-interpret: [NOT FINAL] Add unicode-aware O(n) string indexing John 2024-07-27 18:04:39 -05:00
  • 53cf71608a sample-code/hex.cl: Fix casting TODO, add to_string_radix function John 2024-07-27 17:46:27 -05:00
  • 883c2677d9 cl-parser: Index is NOT a low precedence operator!!! John 2024-07-27 17:37:29 -05:00
  • 7d98ef87d5 sample-code: proper type annotations on HEX_LUT, add FIXME for min and max John 2024-07-26 06:22:29 -05:00
  • a188c5b65e hex.cl: make the lut square John 2024-07-26 06:17:00 -05:00
  • 872818fe7c sample-code/fib.cl: rename fib-iterative -> fibit (easier to type) John 2024-07-26 06:13:59 -05:00
  • 3aef055739 sample-code/ascii: Use as casting to print the entire printable ASCII range John 2024-07-26 06:10:59 -05:00
  • 38a5d31b08 cl-ast: Escape string and char literals when pretty-printing John 2024-07-26 05:51:20 -05:00