Commit Graph

163 Commits

Author SHA1 Message Date
Jesse Brault
fcca1b7aba More work on ast-generation. 2025-08-27 12:35:43 -05:00
Jesse Brault
6f727e1cdf Refactor UseStatement to an enum type; remove UseStatementLast. 2025-05-29 21:37:07 -05:00
Jesse Brault
234f40ec58 Use ast walking to verify that identifiers have saved symbols and linking symbols are resolved. 2025-05-26 16:24:40 -05:00
Jesse Brault
d38b30b755 Add depth-first traversal (walk_depth_first) to walk.rs. 2025-05-26 12:53:07 -05:00
Jesse Brault
22deb90c3e Move ast nodes to new ast/node module. 2025-05-26 08:30:15 -05:00
Jesse Brault
cbf7921c95 Refactor name-analysis module to use new AST api. 2025-05-26 07:48:35 -05:00
Jesse Brault
20dcb4f6ce Major refactoring of AST module: private properties and accessors, building clearer, using Boxes. 2025-05-25 17:27:15 -05:00
Jesse Brault
f5f247e636 Add class-member symbols to symbol table display. 2025-05-21 22:31:51 -05:00
Jesse Brault
41ab922f2c Add interface/class test case. 2025-05-21 12:25:23 -05:00
Jesse Brault
d8fe97b401 Miscellaneous gather work and related. 2025-05-21 08:54:21 -05:00
Jesse Brault
f614d00575 Add shadow import failing test. 2025-05-20 11:11:29 -05:00
Jesse Brault
4c68d0dc28 Flesh out gather and resolve, add todos, refactor a bit. 2025-05-20 11:09:06 -05:00
Jesse Brault
88270e0cdd Add basic name-analysis phase documentation. 2025-05-20 08:44:26 -05:00
Jesse Brault
02d6a16cf8 Refactor name-analysis tests. 2025-05-19 20:22:13 -05:00
Jesse Brault
0c2d9f8b2f Add primitive type uses and related. 2025-05-19 13:52:42 -05:00
Jesse Brault
abb7aab3a4 Refactoring of name-analysis. 2025-05-19 09:58:43 -05:00
Jesse Brault
c606432be2 Work to properly resolve imports. 2025-05-18 18:29:25 -05:00
Jesse Brault
6b6ba1d712 Major refactor of name analysis and related. 2025-05-18 18:05:03 -05:00
Jesse Brault
dcb261fd84 Remove useless DiagnosticsContainer struct; params_seen failing because unresolved types. 2025-05-18 16:26:05 -05:00
Jesse Brault
4f74136d97 Much work on use-statements and symbols. 2025-05-18 16:18:19 -05:00
Jesse Brault
8cd5e588a0 Add gathering and resolving for various constructs; two-file test still failing but fails correctly. 2025-05-18 10:26:38 -05:00
Jesse Brault
c54e005b62 Add build for platform function. 2025-05-18 09:02:35 -05:00
Jesse Brault
938391ae09 Add use statements. 2025-05-18 08:32:16 -05:00
Jesse Brault
0c18b976d7 Refactor name-analysis for multiple files; set up (failing) test case for multiple files. 2025-05-18 08:00:32 -05:00
Jesse Brault
3026d22750 Remove dbg in assert_builds. 2025-05-17 19:59:07 -05:00
Jesse Brault
e0f2810764 Fix pretty-print operator bug. 2025-05-17 19:53:16 -05:00
Jesse Brault
692411e232 Change grammar to properly allow if, while, and for loops (without confusing it with closures). 2025-05-17 17:30:55 -05:00
Jesse Brault
bf06407d16 Implement if/if-else statements in grammar, build, unparse, and pretty-print. 2025-05-17 12:36:29 -05:00
Jesse Brault
35d616a538 Implement closure in ast building, unparsing, and pretty printing. 2025-05-17 10:32:14 -05:00
Jesse Brault
2de45817d4 Add BacktickString building. 2025-05-17 08:44:39 -05:00
Jesse Brault
78e7271950 Add DString building. 2025-05-17 08:36:55 -05:00
Jesse Brault
bae2048aef Add number literal building to build.rs. 2025-05-16 19:38:53 -05:00
Jesse Brault
17285e84eb Add indexing to build.rs. 2025-05-16 19:29:39 -05:00
Jesse Brault
15abcc92d3 Add indoc and indexing to grammar. 2025-05-16 19:08:18 -05:00
Jesse Brault
f5a82c414c Much work to produce better errors during name analysis. 2025-05-16 15:58:42 -05:00
Jesse Brault
dda86f75e7 Begin name-analysis testing. 2025-05-16 11:21:44 -05:00
Jesse Brault
4224055860 Refactor name-analysis code into separate module/files. 2025-05-16 10:56:57 -05:00
Jesse Brault
6ab9efa8fd Add codespan-reporting to project for awesome error reporting. 2025-05-16 09:09:25 -05:00
Jesse Brault
2b4e042602 Change unparse to work with IndentWriter. 2025-05-16 08:05:59 -05:00
Jesse Brault
ce20cece21 Work on basic name analysis. 2025-05-15 21:13:43 -05:00
Jesse Brault
9805a3aad5 Finish current version of pretty print. 2025-05-15 16:12:17 -05:00
Jesse Brault
58c66b437e More work on pretty print; add dmc p3 command. 2025-05-15 11:27:05 -05:00
Jesse Brault
1c2e5300ac Start on pretty_print.rs for pretty-printing ASTs. 2025-05-15 11:06:30 -05:00
Jesse Brault
68a2c22be7 Delete trie.rs. 2025-05-15 11:05:08 -05:00
Jesse Brault
a9457c1ab9 Successful work to compile, parse, and unparse basic Deimos. 2025-05-15 09:40:39 -05:00
Jesse Brault
a9fe5b473c Delete old compile sketch files. 2025-05-15 08:54:02 -05:00
Jesse Brault
c980eb8a72 Fix up unparse.rs. 2025-05-15 08:52:34 -05:00
Jesse Brault
e3dc46e023 Enough work to hopefully make hello world parse and build AST. 2025-05-15 08:13:34 -05:00
Jesse Brault
63dec99cb5 Add expression rules and basic left-recursive AST-expression building. 2025-05-14 20:07:44 -05:00
Jesse Brault
487d0383c5 Add many rules to build.rs. 2025-05-14 19:24:59 -05:00
Jesse Brault
9df681e07c Refactoring grammar to be easier to work with. 2025-05-14 17:24:57 -05:00
Jesse Brault
373120d34e Add class-level declarations and components. 2025-05-14 12:04:07 -05:00
Jesse Brault
9d843097bc Much work on build.rs and related. 2025-05-14 10:04:31 -05:00
Jesse Brault
16e180180b Work on grammar and reorganize src/ast/mod.rs. 2025-05-13 19:00:14 -05:00
Jesse Brault
e4c93f319d Fix formatting. 2025-05-13 10:42:08 -05:00
Jesse Brault
82af6b4dfb Much work on grammar, AST building and unparsing. 2025-05-13 09:46:24 -05:00
Jesse Brault
e8aff842ed Create and implement AST structs/enums and Unparse traits. 2025-05-11 09:28:42 -05:00
Jesse Brault
1a365481ab Add smoke screen tests for parser; add some function grammar rules. 2025-05-07 15:05:39 -05:00
Jesse Brault
084ed4a00b Write expressions grammar, basic testing. 2025-04-21 09:11:02 -05:00
Jesse Brault
90a3c40ac3 Work on object access and number literal grammar; basic parser testing. 2025-04-20 14:11:03 -05:00
Jesse Brault
815168603c Update grammar. 2025-04-16 09:12:48 -05:00
Jesse Brault
aa3f4b3a8b Start translating ast to instructions. 2025-04-15 18:58:30 -05:00
Jesse Brault
ae8f89bb4e Update calling conventions. 2025-04-15 14:31:41 -05:00
Jesse Brault
1263d84802 Work on grammar and AST building. 2025-04-14 08:00:05 -05:00
Jesse Brault
94f496a63d Sketch DvmObjectFile type and related functions. 2025-04-14 07:59:51 -05:00
Jesse Brault
71ee49761e Updated dvm/main.rs to use new refactored dvm. 2025-04-13 10:20:29 -05:00
Jesse Brault
26d87acff5 More refactoring of dvm; add DvmValue::String and related. 2025-04-13 09:34:09 -05:00
Jesse Brault
172e82025d Rename to implementation.rs. 2025-04-12 21:21:01 -05:00
Jesse Brault
22e8605cc6 Major refactoring of virtual machine. 2025-04-12 21:20:08 -05:00
Jesse Brault
1d3a1593ee Organized module source files. 2025-02-03 11:03:25 -06:00
Jesse Brault
5c75b7ab82 Remove unused import. 2025-02-03 10:39:05 -06:00
Jesse Brault
36955295bc Add enough to AST building to parse current std lib. 2025-02-03 10:30:56 -06:00
Jesse Brault
80c3aa9f19 Create dmc bin. 2025-01-31 19:12:30 -06:00
Jesse Brault
18551af61a More work upon AST building. 2025-01-31 14:40:46 -06:00
Jesse Brault
040961ed67 Finally building an AST with Pest. 2025-01-30 18:36:35 -06:00
Jesse Brault
d4fb4680a5 Update to Pest grammar for hello world. 2024-12-31 17:23:36 -06:00
Jesse Brault
2967ceb2fc Remove old lexer/parser code, in preparation for Pest usage. 2024-12-31 09:48:29 -06:00
Jesse Brault
fc9cfcdf7c Clean up of references and Rcs; better information hiding. 2024-12-30 16:27:33 -06:00
Jesse Brault
68553a756b Remove old, unused code from vm; remove pub from various struct fields. 2024-12-30 12:50:55 -06:00
Jesse Brault
258fe824bd Add dvm_panic macro for dumping state before panic call. 2024-12-29 10:36:15 -06:00
Jesse Brault
5322e441c5 Fix memory leak of constant by no longer needing to make copy of constant. 2024-12-29 10:23:16 -06:00
Jesse Brault
7aa93c3986 Clean up op codes. 2024-12-28 15:35:35 -06:00
Jesse Brault
9c4ca23765 Remove deprecated op codes. 2024-12-28 15:14:24 -06:00
Jesse Brault
420db38f70 Properly implement load and store instructions. 2024-12-28 15:10:56 -06:00
Jesse Brault
376ac2fa3a Rename DmAllocObject to DvmObject. 2024-12-28 10:23:05 -06:00
Jesse Brault
652c1dd7f2 Add basic, but failing, implementation of load/store object. 2024-12-28 08:52:35 -06:00
Jesse Brault
e7a7cba26d Successfully printed greeting! 2024-12-26 23:05:59 -06:00
Jesse Brault
a6d6ca3f70 Small cosmetic change in op_codes.rs. 2024-12-26 15:09:55 -06:00
Jesse Brault
3edb00ceb0 A little bit further. 2024-12-26 15:05:09 -06:00
Jesse Brault
21250ea695 Everything compiling and testing successfully. 2024-12-26 14:52:08 -06:00
Jesse Brault
d5153cc9fb Various work on running byte code. 2024-12-13 20:18:02 -06:00
Jesse Brault
6190beaed2 Massive work just to try to start printing a String. 2024-12-08 22:11:33 -06:00
Jesse Brault
97376bad72 Work on Trie. 2024-12-07 16:23:24 -06:00
Jesse Brault
d4280f40e1 More work on DvmValues and such to eventually be able to call to_string and get String bytes for printing. 2024-12-06 15:18:19 -06:00
Jesse Brault
cccbc6d819 Work on vm and DvmValues and DmTypes. Added pest to get parser off the ground. 2024-12-06 10:58:19 -06:00
Jesse Brault
7903c1cfb3 Attempt to implement runtime types. 2024-12-01 12:02:52 -06:00
Jesse Brault
9bc27b841b Fix move errors with clone. 2024-12-01 08:50:37 -06:00
Jesse Brault
0dd58cdfdc Add array types/values and misc. work. 2024-12-01 08:42:24 -06:00
Jesse Brault
5732c4d197 All the work to print 42 via a platform call. 2024-11-30 16:03:22 -06:00
Jesse Brault
a14eb550ce Much work on dvm implementation; not compiling yet. 2024-11-30 08:09:19 -06:00