Commit Graph

  • 893b716c86 cl-structures: Rename the deprecated "intern pool" (lmao) John 2024-04-25 23:53:44 -05:00
  • e49b171bea Rename DefItem/DefSource/DefSorcerer to better reflect their meaning John 2024-04-25 16:07:26 -05:00
  • 901e9d1d5b cl-typeck: Remove nightly-only debug_closure_helpers John 2024-04-25 15:55:32 -05:00
  • aa3f357fca conlang: Misc. doc fixes John 2024-04-24 20:05:55 -05:00
  • d4432cda7a cl-structures: Give the StringArena a new home. John 2024-04-24 19:52:56 -05:00
  • 40ec9b30e4 conlang: Use interned strings (Sym) for all symbols John 2024-04-24 19:34:29 -05:00
  • ede00c3c86 cl-structures: Cleanup for GlobalSym John 2024-04-24 18:11:21 -05:00
  • be604b7b45 cl-structures: Use hashbrown's hash table implementation for deduplication. John 2024-04-24 17:43:02 -05:00
  • e70ffd1895 cl-structures: Global (ew!) and local string interning! John 2024-04-24 17:11:41 -05:00
  • f24bd10c53 cl-structures: intern_pool isn't unsafe John 2024-04-24 17:00:58 -05:00
  • 8453b092f1 cl-typeck: Fix list in doc comment getting mistaken for a doctest John 2024-04-24 16:50:30 -05:00
  • 42307d2ab4 cl-typeck: Sketch out a new way to store definition metadata John 2024-04-22 23:17:50 -05:00
  • 45d75bb552 cl-structures: Make Span and Loc functions const (now you can make a const Span!) John 2024-04-22 21:44:12 -05:00
  • b74c4cd5bf cl-parser: Forego RAII scopeguard finalization pattern in impl Fold for ModuleInliner John 2024-04-22 21:43:30 -05:00
  • 0c518b47e6 cl-ast: Give Path some inherent methods John 2024-04-22 21:04:30 -05:00
  • 169f61144b cl-ast: Fix typo in ast_impl::convert impl From<AsRef<str>> for PathPart John 2024-04-22 20:52:12 -05:00
  • a3a87e0b67 test.cl: Fix moved i32 to module ::num John 2024-04-22 15:47:37 -05:00
  • ed9b73a1a3 repline: Remove default-features from crossterm, since we don't use the event API John 2024-04-22 02:18:57 -05:00
  • 9b11543396 Update readme.md John 2024-04-22 02:06:46 -05:00
  • 2ed8481489 cl-repl: Switch from argh to argwerk John 2024-04-22 02:03:04 -05:00
  • a3bb1ef447 stdlib: fix errant let in test.cl John 2024-04-22 02:02:25 -05:00
  • f483d690e2 Revert "Cargo.toml: Add documentation key" John 2024-04-22 00:07:44 -05:00
  • 087969e117 Cargo.toml: Add documentation key John 2024-04-21 23:49:24 -05:00
  • 116d98437c cl-typeck: Promote some top-module notes to doc comments John 2024-04-21 23:42:45 -05:00
  • 8121c1c8bb Move typeck.rs from cl-repl to cl-typeck John 2024-04-21 23:41:38 -05:00
  • 2a5e965edf sample-code: Add hello.cl John 2024-04-21 23:07:16 -05:00
  • bf16338166 cl-typeck: Outline all modules. John 2024-04-21 23:05:06 -05:00
  • 9449e5ba06 cl-typeck: Sketch out a new path resolver algorithm, and reparent some unused cruft John 2024-04-21 22:48:52 -05:00
  • b796411742 cl-typeck: Module imports v0.1 John 2024-04-21 22:43:25 -05:00
  • ef190f2d66 cl-structures: Add get_many_mut implementation for Pool (currently delegates to unstable std) John 2024-04-21 22:32:47 -05:00
  • 9c3c2e8674 cl-parser: Implement a module inlining pass John 2024-04-21 22:31:01 -05:00
  • 02323ae6f2 cl-parser: Sync error::Parsing with cl-ast John 2024-04-21 21:20:55 -05:00
  • e36a684422 grammar: Make UseTree less ultra-janky John 2024-04-21 18:57:46 -05:00
  • 5341631781 conlang: Add constructor expression for structs! John 2024-04-20 15:02:16 -05:00
  • efd442bbfa conlang: Import items into scope with use! John 2024-04-20 14:51:54 -05:00
  • 9dc0cc7841 cl-interpret: Give the interpreter a little love John 2024-04-19 10:49:25 -05:00
  • 90a3818ca0 conlang: Move all cl-libs into the compiler directory John 2024-04-19 07:39:23 -05:00
  • 2a62a1c714 repline: Promote to its own crate! John 2024-04-19 07:30:17 -05:00
  • 01ffdb67a6 cl-ast: Add Fold and Visit traits, to more easily map or collect nodes in the AST John 2024-04-19 03:21:07 -05:00
  • de024b6cb7 cl-repl: Remove references to the old Resolver John 2024-04-19 03:01:24 -05:00
  • 2834e4a8ea cl-ast: Fix typo in format.rs John 2024-04-19 02:47:55 -05:00
  • 4ff101f0ee yaml.rs: Fix extraneous pair in While John 2024-04-18 23:58:44 -05:00
  • 1fa027a0c2 cl-ast: Move AST into its own module John 2024-04-18 21:31:46 -05:00
  • 9a687624fc stdlib: Add some funky syntax tests John 2024-04-18 21:10:11 -05:00
  • e102ae25b4 typeck.rs: Make the REPL output a little less unreadable John 2024-04-18 21:05:59 -05:00
  • a56ee38b15 cl-parser: General cleanup and maintenance - Made infallible rules infallible - Don't double-check keywords where keywords are required. - Of course, this change means rules aren't self-contained - Rename the Call precedence level - Made member-access operators left-associative - Removed the useless Nothing error type. :( John 2024-04-18 21:04:16 -05:00
  • f315fb5af7 cl-ast: Overhaul pretty-printing using std::fmt::Write adapters. John 2024-04-18 20:47:28 -05:00
  • e4f270da17 cl-ast: Re-order items for aesthetic reasons John 2024-04-18 20:22:08 -05:00
  • 17a522b633 cl-parser: Make break bodies actually optional John 2024-04-18 16:42:48 -05:00
  • 736fc37a81 repline: Remove Ignore trait, make debug output backspace-able John 2024-04-18 01:56:45 -05:00
  • 02b775259e cl-ast: Change loop expression to take any expression as its argument, for later desugaring. John 2024-04-18 01:53:32 -05:00
  • 00d72b823a conlang: Add unconditional loop expression, for desugaring John 2024-04-17 00:29:09 -05:00
  • ec1a1255ad cl-structures: Add helper for getting index from pool. May delete later. John 2024-04-16 23:48:05 -05:00
  • 0e8b4f68c3 repline: Word-deletion, and proper history reloading! John 2024-04-16 23:47:10 -05:00
  • eee9e99aed cl-ast: add todo about slice and array type-expressions John 2024-04-16 23:46:24 -05:00
  • f6e44f3773 cl-ast: Print space between items :-) John 2024-04-16 23:45:54 -05:00
  • 9e90eea7b6 cl-typeck: Computer! Define "types!" John 2024-04-16 23:45:24 -05:00
  • 83694988c3 cl-ast: Let Ty handle the complexities of VariantKind::Tuple's type list John 2024-04-16 20:40:02 -05:00
  • 98868d3960 cl-ast: allow TyRef to be mutable yaml.rs: Print AddrOf and TyRef the same way John 2024-04-16 20:35:27 -05:00
  • 75adbd6473 cl-ast: Separate function *signature* from function bindings, for cl-typeck John 2024-04-16 20:31:23 -05:00
  • d0ed8309f4 cl-ast: Don't store type metadata in TyTuple. Allow arbitrary TyKind in TyFn args. John 2024-04-14 23:16:35 -05:00
  • 0fab11c11b cl-parser: Fix visability qualifier coming before attributes while parsing Item John 2024-04-14 23:13:17 -05:00
  • f958bbcb79 cl-ast: Hash everything John 2024-04-14 23:11:48 -05:00
  • d07a3e1455 cl-ast: Separate Display impl for Ty and TyKind John 2024-04-14 23:10:02 -05:00
  • 489a1f7944 cl-structures: Give Pool an iterator over its keys John 2024-04-14 23:09:12 -05:00
  • bc33b60265 cl-parser: Parse Impl/ImplKind John 2024-04-14 18:01:58 -05:00
  • 89cd1393ed cl-ast: Give Impl/ImplKind some love John 2024-04-14 18:01:30 -05:00
  • 3bebac6798 cl-parser: cleanup doc comments + add new error type John 2024-04-14 17:59:29 -05:00
  • 6ea99fc6f5 cl-ast: Fix formatting for Index expression John 2024-04-13 23:26:06 -05:00
  • 6589376870 Update .gitignore John 2024-04-13 03:38:32 -05:00
  • fc3cbbf450 Conlang v0.0.5: Pratternization v0.0.5 John 2024-04-13 03:33:26 -05:00
  • 2c36ccc0cf cl-parser: Misc. cleanup John 2024-04-13 03:02:54 -05:00
  • 265db668ed cl-parser: Reword an error message John 2024-04-13 02:57:29 -05:00
  • fa51f14db5 Remove collect-identifiers example John 2024-04-13 02:54:30 -05:00
  • 3b0190b389 cl-interpret: remove Loc from error type This allows removal of intermediate expression metadata from the AST John 2024-04-13 02:54:02 -05:00
  • 21c9909f0c cl-token: make Token fields public No sense in having them private, they're just plain old data. John 2024-04-13 02:48:16 -05:00
  • 290ede2fa3 cl-token: Break operators into their own separate enum, to make future pratt parsing easier John 2024-04-12 16:20:24 -05:00
  • 2091cce570 cl-token: Rename Type to TokenKind, Data to TokenData to match the project's general style John 2024-04-12 14:36:26 -05:00
  • 902494e95a cl-token: Merge token_type::Type and token_type::Keyword into a single enum John 2024-04-12 14:25:49 -05:00
  • a213c7f70a grammar: Minor cleanup, fix compat with Grammatical parser John 2024-04-11 19:59:00 -05:00
  • 8dfddb739e cl-ast: Remove unused monovariant MemberKind enum John 2024-04-06 01:03:01 -05:00
  • a31d285d99 grammar.ebnf: Clean up grammar - TODO: Member access is totally broken lmao John 2024-04-06 01:02:31 -05:00
  • a036ce260d cl-ast: Add doc comments for every node This improves the rustdoc output somewhat John 2024-04-03 13:19:57 -05:00
  • 4a52d2bc6a conlang: Update type checker - cl-typeck: Add modules, intrinsic types, unify definition ids - cl-ast: make attribute lists Default - cl-structures: Add functions to iterate through a pool - cl-repl: Create an example REPL for the type checker John 2024-04-01 05:14:06 -05:00
  • 614d20ea2c cl-parser: parse enums + enum variants John 2024-04-01 04:28:30 -05:00
  • 7b40ddc845 cl-ast: destination side of type alias should be an identifier John 2024-04-01 04:20:26 -05:00
  • bdf0bb68ca cl-ast: improve formatting of enums John 2024-04-01 04:18:31 -05:00
  • 8ee318f26b cl-ast: Move ExprKind::Assign outside the box, to be more consistent with other uses of Expr John 2024-03-28 16:34:24 -05:00
  • ba148ef5de cl-typeck: Continue work on symbol namespaces - Refactor for cl-structures intern pool - Create a list of types the compiler is supposed to care about/have implementations for (Intrinsic/primitive types) - Add modules and projects (the sym equivalent of ast::File) - Flesh out value definitions - TODO: Create an IR for statements and expressions, and lower the AST into it John 2024-03-27 01:54:19 -05:00
  • 8cbe570811 cl-structures: Sketch out a type-safe generic interning pool John 2024-03-27 01:26:27 -05:00
  • 66c29d601c cl-structures: Tree cleanup John 2024-03-27 01:25:19 -05:00
  • 9f9a21b4c3 cl-repl: Add example that prints the AST in a more friendly way than Debug but in a more verbose way than Display John 2024-03-27 01:24:28 -05:00
  • 2cdf112aa6 cl-structures: add todo w/r/t tree traversal api John 2024-03-15 05:53:26 -05:00
  • af35dd1bb3 cl-structures: add a sized, monotype stack John 2024-03-15 05:11:47 -05:00
  • ecde44910f cl-structures: Add a simple potted tree structure, for future use in the module system John 2024-03-15 05:10:34 -05:00
  • a74cd0b8ac cl-structures: break span into its own file. John 2024-03-12 19:32:11 -05:00
  • 2eade74d3a cl-repl: Terminal pipe support + fun stylistic fixups John 2024-03-01 05:33:35 -06:00
  • 9cae7e4eb8 cl-lexer: switch to unicode-ident crate, since a dependency of cl-repl depends on it. John 2024-03-01 04:11:38 -06:00
  • a07312bf92 cl-lexer: fix link in doc comment John 2024-03-01 03:17:43 -06:00
  • a9b834e012 conlang: bump version number v0.0.4 John 2024-03-01 03:16:02 -06:00