Commit Graph

  • 31733ce425 bin: update for repline 0.0.12 main John 2026-01-10 01:36:12 -05:00
  • 5d724af37b doughlang: Doc fixes John 2026-01-09 22:37:43 -05:00
  • a7ebf31878 typeck: Begin implementing scoping rules John 2026-01-06 05:57:50 -05:00
  • 2be73d2660 doughlang: symbol interning and AST reparameterization John 2026-01-06 04:57:15 -05:00
  • e4c008bd4b doughlang: Expressions in patterns ast: - Document operators - Parameterize Pat with Annotation - Consolidate Path and Lit into "Value" (Expr) - Consolidate NamedRecord/Namedtuple into PatOp::TypePrefixed - Allow Pat<Pat,*> patterns - Additional helper functions on Expr and Pat John 2026-01-05 15:17:22 -05:00
  • d6104b6a0b Update .gitignore John 2026-01-05 14:33:06 -05:00
  • 4d92954a5f main: expand the repl's capabilities to include debug + all syntactic positions John 2026-01-03 22:03:10 -05:00
  • e199e15804 parser: Tweak type and fn precedence John 2025-12-24 17:44:59 -05:00
  • 4a38a0ebbf main: Put the expression body on line after byte-span John 2025-12-23 05:01:53 -05:00
  • 41b8688438 display: newline-indent bare function bodies(?) John 2025-12-23 05:01:25 -05:00
  • a836de32c7 Use: add alias use foo as bar form John 2025-12-20 06:09:31 -05:00
  • f551e3aef3 ast: Break compatibility John 2025-12-20 05:22:14 -05:00
  • 64ce18d576 examples: add silly to-lisp converter that doesn't produce any actual lisp John 2025-12-16 04:18:30 -05:00
  • cca8347cc2 patterns: make PatOp::ArRep match Op::ArRep John 2025-12-16 04:17:38 -05:00
  • 1887c9c014 parser/pat: allow ranges in function type annotations John 2025-12-05 09:24:57 -05:00
  • 12cf529186 Cargo.toml: Use public version of Repline John 2025-12-02 03:12:52 -05:00
  • e4f57250b5 Cargo.toml: update to repline 0.0.9 John 2025-12-01 23:25:28 -05:00
  • 3b6cac2bcb .cargo: use sparse registry John 2025-12-01 23:25:05 -05:00
  • e566ea62e5 ast: Give for loops a dedicated node and remove eager desugar John 2025-12-01 23:16:47 -05:00
  • 7ea483fe26 fmt: fix write_char not respecting indent string take default indent string from env! John 2025-12-01 23:09:58 -05:00
  • 2e5cd3029f samples: remove receiver.do, fix usable.do John 2025-11-04 09:17:12 -05:00
  • 82ec6770c8 examples: Add sevenfold example demonstrating (and testing) Visit and Fold John 2025-11-02 01:17:39 -04:00
  • bb10056f38 main: Print span of expressions, by parsing them as Anno John 2025-11-02 01:10:36 -04:00
  • 719f98917b ast: separate display impls from node decls John 2025-11-02 01:10:11 -04:00
  • 30871013cd parser/expr: Don't next() the precedences in bind; it makes everything less readable. John 2025-11-02 00:37:28 -04:00
  • 6c4c58dc2e parser/expr: Like I said in the comment... John 2025-11-01 21:11:33 -04:00
  • c1d32f3efc ast: Add Fold, Folder traits, reorganize visit parser: fix precedence of BindOp::Let John 2025-10-29 04:39:41 -04:00
  • 9a0d1232a6 token: docs pat: Token::kind John 2025-10-28 23:02:33 -04:00
  • d5e25a15dc ast: add continue expression John 2025-10-28 22:47:58 -04:00
  • fb8677c937 lib.rs: improve the blurb John 2025-10-28 22:17:43 -04:00
  • 8e2bc5ad85 src: Split parser into modules, reorganize AST John 2025-10-28 22:15:06 -04:00
  • a3cab92b35 parser: clean up unused ExplicitDo John 2025-10-28 04:26:41 -04:00
  • 0d7b89da96 ast: Add Visitor interface John 2025-10-28 04:21:52 -04:00
  • 588606e0c4 src: address a bunch of clippy::pedantic lints John 2025-10-28 02:53:20 -04:00
  • 0bf5a41498 syntax: Merge ALL definitions into Bind, and allow type variable introducers at every Bind John 2025-10-28 02:27:56 -04:00
  • a29adeeef3 ast: move typedef up John 2025-10-24 05:26:07 -04:00
  • 287b57abd7 main: print parse stats when parse errors John 2025-10-24 05:25:38 -04:00
  • 89e4afcc42 parser: "Parse" type variable introducers (and discard them for now) John 2025-10-24 05:24:58 -04:00
  • 64dc8bb279 ast: add ptr patterns John 2025-10-21 08:35:46 -04:00
  • 263d2290c0 token: Make TKind::{Pub, Mod} match their keywords John 2025-10-21 08:35:33 -04:00
  • 3fd089ad11 parser: Move parse_for below impl Parse<'t> for Expr, and allow a single semi at EOF John 2025-10-21 07:44:13 -04:00
  • 6c57263492 token: Remove and and or tokens, since they clash with operator overload function names John 2025-10-21 07:43:04 -04:00
  • 115fe836f9 ast: move implementations of Expr below Op John 2025-10-21 07:42:37 -04:00
  • c7e2e3d31d ast: pub patterns, and, since Pat replaced Ty, !(never) patterns. John 2025-10-21 07:42:04 -04:00
  • ccb6bef6d9 ast: Add use, tackle remaining low-hanging fruit John 2025-10-21 07:09:12 -04:00
  • 9cccac5910 docs: Fix cargo-doc errors John 2025-10-20 04:52:52 -04:00
  • b80a3a55c3 ast: Merge Ty into Pat, merge Mod and Fn into Bind John 2025-10-20 04:24:21 -04:00
  • 22094f4862 main: Clear screen on mode change John 2025-10-20 00:40:22 -04:00
  • 0015ac5f1b ast: rename Let to Bind John 2025-10-20 00:39:56 -04:00
  • 458e95a8ed AST: merge let, const, static, match_arm into one binder John 2025-10-20 00:21:49 -04:00
  • 607615db74 Add .cargo/config.toml, so other people can build Conlang John 2025-10-20 00:07:20 -04:00
  • f625e4181f test.sh: add trailing newline. John 2025-10-17 07:03:36 -04:00
  • 75048c61c9 dummy.do: Semicolon elision! John 2025-10-17 06:57:37 -04:00
  • db9c75b3c6 ast: formatting; main: explicit verbosity John 2025-10-17 06:57:21 -04:00
  • f05d480b35 test.sh: add test script to quickly parse every file in a directory John 2025-10-17 06:26:21 -04:00
  • 6368e68941 doughlang: Preserve errors through entire pipeline John 2025-10-17 06:25:11 -04:00
  • c8f1f082c4 lexer: Document stuff John 2025-10-16 23:08:16 -04:00
  • 70042f4ed0 parser: remove "numeric" module, since (like cl) literals are handled in the lexer. John 2025-10-16 22:50:04 -04:00
  • e1419fa430 doughlang: enums, ref patterns, ref types John 2025-10-16 06:53:09 -04:00
  • 6da201f52f parser: skip comments in peek John 2025-10-16 06:50:17 -04:00
  • 1998558468 doughlang: "fix" semi elision, add "fully qualified" paths, add proper pattern prec parsing. John 2025-10-16 05:49:02 -04:00
  • 03d9682409 doughlang: let else, fn rety ast: - let Pat (= Expr (else Expr)?)?, - fn (args) -> Ty, coagulating do, if/while formatting fixes John 2025-10-16 01:51:14 -04:00
  • 95abb81f4a main: ty parser test mode, visually distinct prompt John 2025-10-16 01:38:52 -04:00
  • f47de24cfb token: reserve "and", "or", "in" as keywords John 2025-10-16 01:37:24 -04:00
  • b5d552376e Move integer and char parsing out of the parser and back into the lexer John 2025-10-10 14:45:08 -04:00
  • 0cbb800c19 lexer: Change base36 sigil to tilde, to match Conlang John 2025-10-10 13:39:58 -04:00
  • 2c63f1af63 ast: Make struct formatting look cool John 2025-10-07 05:43:19 -04:00
  • 4b0f30f78e lexer: Fun little lexer hack to allow trailing commas John 2025-10-07 05:42:44 -04:00
  • 222b2d7b98 ast: struct John 2025-10-07 05:00:51 -04:00
  • bcabbcd39d ast: pub, mod, and Ty::Fn parsing John 2025-09-30 15:32:20 -04:00
  • 46b17a7eb6 dummy: fn main syntax! yay John 2025-09-21 02:58:50 -04:00
  • 8640ec4261 ast: fn main, structification parser: unified post/infix, context-full grammar repl: modes John 2025-09-21 02:57:20 -04:00
  • 434fa225e7 ast: Fix pattern metaidentifier display John 2025-09-21 02:24:43 -04:00
  • b1619f6e4e parser: allow any token to be a metaidentifier John 2025-09-21 02:24:15 -04:00
  • 7b05da1334 do: Elaborate on pattern syntax, add binary as operator John 2025-09-16 04:18:12 -04:00
  • b6949147c4 parser: Refactor coagulated binops as postfix operators John 2025-09-15 10:28:08 -04:00
  • baf94a9dab matchers: rename to "macro_matchers" John 2025-09-15 10:25:50 -04:00
  • c83218d750 Initial Commit John 2025-08-28 02:26:06 -04:00