Commit Graph

137 Commits

Author SHA1 Message Date
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
Jesse Brault
21d4f6bb69 Some clean up. 2024-11-29 22:39:24 -06:00
Jesse Brault
438d0e7317 Start work on platform calls. 2024-11-29 22:35:01 -06:00
Jesse Brault
4fb7ada6b8 Very skeleton work on parser. 2024-11-29 21:25:21 -06:00
Jesse Brault
921a7fe834 Change crate name to 'deimos'; make compiler bin subproject. 2024-11-29 19:13:59 -06:00
Jesse Brault
66107b4310 Begin work on write_module. 2024-11-29 19:13:30 -06:00
Jesse Brault
c1618ba9a2 Move macros to util; basic work on load_module. 2024-11-29 17:01:43 -06:00
Jesse Brault
6c8911e7c9 Add macros for fetching 32 and 64 bits from instruction pipeline. 2024-11-29 13:13:16 -06:00
Jesse Brault
e4ee8fd2db Implement basic alloc and dealloc functionality. 2024-11-28 08:01:50 -06:00
Jesse Brault
e8019366ee Start implementation of vm. 2024-11-26 23:34:30 -06:00
Jesse Brault
0943dd4cf8 Add spread operator test. 2024-11-24 23:05:43 -06:00
Jesse Brault
07e0e2ae73 Add sketch file; change tokenize return type to Result. 2024-11-24 23:02:45 -06:00
Jesse Brault
88119e3001 Adding more keywords and symbols to lexer. 2024-11-24 20:50:27 -06:00
Jesse Brault
b3177a612f Initial commit. Very rudimentary lexer. 2024-11-24 18:07:16 -06:00