]>
git.mdlowis.com Git - proto/obnc.git/log
Michael D. Lowis [Wed, 21 Jul 2021 02:51:47 +0000 (22:51 -0400)]
much scaffolding for SSA
Michael D. Lowis [Mon, 19 Jul 2021 20:55:16 +0000 (16:55 -0400)]
started modifying parser to generate ssa directly
Michael D. Lowis [Mon, 19 Jul 2021 20:37:45 +0000 (16:37 -0400)]
sketched out new ssa-based API
Michael D. Lowis [Mon, 19 Jul 2021 03:18:17 +0000 (23:18 -0400)]
removed distinction between unop and binop in API
Michael D. Lowis [Mon, 19 Jul 2021 02:07:31 +0000 (22:07 -0400)]
cleaned up module entries in the symbol file
Michael D. Lowis [Fri, 16 Jul 2021 20:56:07 +0000 (16:56 -0400)]
minor cleanup and update of TODO list
Michael D. Lowis [Fri, 16 Jul 2021 02:46:13 +0000 (22:46 -0400)]
added type cache output to symbol file
Michael D. Lowis [Thu, 15 Jul 2021 20:37:44 +0000 (16:37 -0400)]
reorganized file
Michael D. Lowis [Thu, 15 Jul 2021 20:36:35 +0000 (16:36 -0400)]
started writing rudimentary symbol export logic
Michael D. Lowis [Thu, 15 Jul 2021 20:07:07 +0000 (16:07 -0400)]
implemented first pass at module coped identifiers. Still need to add symbol file genration and loading
Michael D. Lowis [Wed, 14 Jul 2021 20:47:50 +0000 (16:47 -0400)]
sketched out strategy for module importing and aliasing as well as symbol resolution
Michael D. Lowis [Wed, 14 Jul 2021 17:14:07 +0000 (13:14 -0400)]
implemented function calls
Michael D. Lowis [Wed, 14 Jul 2021 14:41:59 +0000 (10:41 -0400)]
Got If statements and procedure definitions working. AST creation now self optimizes by performing constant folding, block coalescing and dead code removal during creation. This will result in less work for the optimizer.
Michael D. Lowis [Tue, 13 Jul 2021 20:57:25 +0000 (16:57 -0400)]
tweaked ast printing
Michael D. Lowis [Mon, 12 Jul 2021 20:52:37 +0000 (16:52 -0400)]
sketched out really rough logic for array indexing
Michael D. Lowis [Mon, 12 Jul 2021 17:54:51 +0000 (13:54 -0400)]
re-enabled variable and type declarations
Michael D. Lowis [Mon, 12 Jul 2021 17:04:27 +0000 (13:04 -0400)]
non-record type definitions are working now.
Michael D. Lowis [Mon, 12 Jul 2021 16:40:17 +0000 (12:40 -0400)]
got basic expression parsing back up and running. Verified using constant evaluation logic
Michael D. Lowis [Mon, 12 Jul 2021 16:11:02 +0000 (12:11 -0400)]
cleanup dead code from old architecture.
Michael D. Lowis [Mon, 12 Jul 2021 11:56:16 +0000 (07:56 -0400)]
added constant operations for binary operators
Michael D. Lowis [Fri, 9 Jul 2021 19:14:15 +0000 (15:14 -0400)]
unary constant operations are working
Michael D. Lowis [Wed, 7 Jul 2021 20:55:03 +0000 (16:55 -0400)]
started integrating AST generation. Null pointer making its way into printing or generation. haven't tracked it down yet
Michael D. Lowis [Tue, 6 Jul 2021 01:41:27 +0000 (21:41 -0400)]
push ast.c
Michael D. Lowis [Thu, 24 Jun 2021 20:25:42 +0000 (16:25 -0400)]
created ast.c
Michael D. Lowis [Wed, 23 Jun 2021 20:55:09 +0000 (16:55 -0400)]
added very basic AST definition. Considering ditching ssa-like IR for simpler AST format
Michael D. Lowis [Fri, 11 Jun 2021 20:45:40 +0000 (16:45 -0400)]
fixed up constants and constant unary ops
Michael D. Lowis [Thu, 10 Jun 2021 20:44:21 +0000 (16:44 -0400)]
commented out a bunch of code in preparation for IR overhaul
mike lowis [Thu, 10 Jun 2021 11:44:50 +0000 (07:44 -0400)]
attempted to flesh out ssa backend. Considering scrapping it and moving to a tree form instead...
mike lowis [Wed, 9 Jun 2021 11:45:35 +0000 (07:45 -0400)]
added new backend
mike lowis [Tue, 8 Jun 2021 11:33:19 +0000 (07:33 -0400)]
got rid of next pointer for Symbol type
Michael D. Lowis [Mon, 7 Jun 2021 20:44:27 +0000 (16:44 -0400)]
started sketching API for intermediate language implementation
Michael D. Lowis [Mon, 7 Jun 2021 16:19:16 +0000 (12:19 -0400)]
fixed up function calls
Michael D. Lowis [Mon, 7 Jun 2021 16:05:14 +0000 (12:05 -0400)]
fixed up code generation with new symbol table approach.
mike lowis [Mon, 7 Jun 2021 02:46:31 +0000 (22:46 -0400)]
reworked function definitions and scoping with new symbol table
mike lowis [Sat, 5 Jun 2021 02:42:45 +0000 (22:42 -0400)]
new symbol table functioning
Michael D. Lowis [Sat, 5 Jun 2021 01:53:56 +0000 (21:53 -0400)]
reworking symbol table...very broken
mike lowis [Tue, 1 Jun 2021 04:04:57 +0000 (00:04 -0400)]
checkpoint commit
Michael D. Lowis [Fri, 28 May 2021 18:21:26 +0000 (14:21 -0400)]
partial fix-up of array access. Need to generate index calculations
Michael D. Lowis [Fri, 28 May 2021 16:08:18 +0000 (12:08 -0400)]
moved TODO to dedicated file. removed offset from item type. Defined types for possible SSA form
Michael D. Lowis [Thu, 27 May 2021 19:55:05 +0000 (15:55 -0400)]
cleaned up record access code
mike lowis [Thu, 27 May 2021 01:31:37 +0000 (21:31 -0400)]
wrapped up initial record support
mike lowis [Wed, 26 May 2021 00:43:09 +0000 (20:43 -0400)]
implemented record types and record member access
mike lowis [Mon, 24 May 2021 02:22:58 +0000 (22:22 -0400)]
reworked field addition to records
Michael D. Lowis [Wed, 19 May 2021 15:56:11 +0000 (11:56 -0400)]
added some helpful info
mike lowis [Tue, 18 May 2021 11:44:20 +0000 (07:44 -0400)]
implemented alignment and size calculation on records and arrays. Also added a list of undefined behaviors in C to keep in mind.
Michael D. Lowis [Fri, 14 May 2021 21:01:56 +0000 (17:01 -0400)]
segfaults everywhere
Michael D. Lowis [Fri, 14 May 2021 20:23:50 +0000 (16:23 -0400)]
added export bit for fields
Michael D. Lowis [Fri, 14 May 2021 20:23:03 +0000 (16:23 -0400)]
initial record pass using symbols. Added a field type, should convert to using that over the symbol type when specifying record fields
Michael D. Lowis [Fri, 14 May 2021 13:00:58 +0000 (09:00 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc
mike lowis [Fri, 14 May 2021 01:50:53 +0000 (21:50 -0400)]
commented out broken stuff...really gotta get it working...
Michael D. Lowis [Wed, 12 May 2021 13:02:11 +0000 (09:02 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc
Michael D. Lowis [Wed, 12 May 2021 13:02:04 +0000 (09:02 -0400)]
minor cleanup
mike lowis [Wed, 12 May 2021 02:03:58 +0000 (22:03 -0400)]
added grammar rule for record fields. adding fields doesnt work yet though
Michael D. Lowis [Tue, 11 May 2021 18:03:47 +0000 (14:03 -0400)]
fully implemented first pass at array indexing with range checks
mike lowis [Tue, 11 May 2021 03:00:49 +0000 (23:00 -0400)]
added array temporaries but assignment is still busted
mike lowis [Tue, 11 May 2021 00:44:26 +0000 (20:44 -0400)]
added some error checking to array indexing
Michael D. Lowis [Fri, 7 May 2021 20:52:26 +0000 (16:52 -0400)]
started adding array indexing
mike lowis [Fri, 7 May 2021 03:51:15 +0000 (23:51 -0400)]
started implementing array subscripting
Michael D. Lowis [Thu, 6 May 2021 20:50:16 +0000 (16:50 -0400)]
functions and function calls fully working now
mike lowis [Thu, 6 May 2021 03:52:24 +0000 (23:52 -0400)]
function calls are almost working....
Michael D. Lowis [Wed, 5 May 2021 20:38:36 +0000 (16:38 -0400)]
removed dead code
Michael D. Lowis [Wed, 5 May 2021 16:35:35 +0000 (12:35 -0400)]
Added logic for parsing args and adding them to symbol table
Michael D. Lowis [Wed, 5 May 2021 14:03:58 +0000 (10:03 -0400)]
mostly fixed symbol table. Need to fix the procedure code generation
mike lowis [Wed, 5 May 2021 02:26:51 +0000 (22:26 -0400)]
partial overhaul of symbol table...
Michael D. Lowis [Tue, 4 May 2021 20:49:38 +0000 (16:49 -0400)]
restructured parser for readability
Michael D. Lowis [Tue, 4 May 2021 19:29:01 +0000 (15:29 -0400)]
started working on argument parsing
mike lowis [Tue, 4 May 2021 03:14:52 +0000 (23:14 -0400)]
Added declarations section to procedure declarations
mike lowis [Tue, 4 May 2021 02:48:53 +0000 (22:48 -0400)]
started parsing procedure declarations
mike lowis [Mon, 3 May 2021 03:20:43 +0000 (23:20 -0400)]
checkpoint commit
Michael D. Lowis [Fri, 30 Apr 2021 20:21:41 +0000 (16:21 -0400)]
reworked global generation to take into account export marker
Michael D. Lowis [Fri, 30 Apr 2021 14:25:47 +0000 (10:25 -0400)]
added array base type handling
Michael D. Lowis [Fri, 30 Apr 2021 13:13:54 +0000 (09:13 -0400)]
implemented code generation for if statements. Only the C backend for now
mike lowis [Fri, 30 Apr 2021 03:08:22 +0000 (23:08 -0400)]
cleaned up loops
Michael D. Lowis [Thu, 29 Apr 2021 17:59:24 +0000 (13:59 -0400)]
added parsing rules for array types
Michael D. Lowis [Thu, 29 Apr 2021 15:59:56 +0000 (11:59 -0400)]
split up and reorganized files
mike lowis [Thu, 29 Apr 2021 03:28:18 +0000 (23:28 -0400)]
added if statement to parser. need to add codegen hooks
Michael D. Lowis [Wed, 28 Apr 2021 18:50:06 +0000 (14:50 -0400)]
added handling of most operators
Michael D. Lowis [Wed, 28 Apr 2021 17:44:49 +0000 (13:44 -0400)]
started fleshing out a C backend
Michael D. Lowis [Wed, 28 Apr 2021 15:17:52 +0000 (11:17 -0400)]
reorganized folder strcuture to allow fo rmultipl backends
mike lowis [Wed, 28 Apr 2021 03:03:00 +0000 (23:03 -0400)]
added more operations
mike lowis [Tue, 27 Apr 2021 03:55:04 +0000 (23:55 -0400)]
fleshed out more kinds of operations
mike lowis [Mon, 26 Apr 2021 03:36:17 +0000 (23:36 -0400)]
added a single case of code generation for binary operators using variables
mike lowis [Fri, 23 Apr 2021 02:56:20 +0000 (22:56 -0400)]
tweaked module code generation. global var references don't work yet
mike lowis [Fri, 23 Apr 2021 02:00:35 +0000 (22:00 -0400)]
add calls to module init functions
Michael D. Lowis [Thu, 22 Apr 2021 20:45:18 +0000 (16:45 -0400)]
added code to define variables
Michael D. Lowis [Thu, 22 Apr 2021 20:12:28 +0000 (16:12 -0400)]
got primitive code generation working for assignments
Michael D. Lowis [Thu, 22 Apr 2021 13:46:52 +0000 (09:46 -0400)]
scaffolding is in place for assignment statements. Need to decipher level handling and generate the proper code for the assignments (and expressions)
mike lowis [Thu, 22 Apr 2021 02:06:48 +0000 (22:06 -0400)]
added scaffolding to generate assembly code
Michael D. Lowis [Wed, 21 Apr 2021 20:25:41 +0000 (16:25 -0400)]
reformatted OSP.mod for readability. Started building parser rules for statements. Focusing on if statements, assignments, and function calls first
Michael D. Lowis [Wed, 21 Apr 2021 19:46:00 +0000 (15:46 -0400)]
added module-level variable declarations
Michael D. Lowis [Wed, 21 Apr 2021 17:58:42 +0000 (13:58 -0400)]
condensed constant declaration tests
Michael D. Lowis [Wed, 21 Apr 2021 17:55:34 +0000 (13:55 -0400)]
rearranged grammar to minimize need for forward declarations
mike lowis [Wed, 21 Apr 2021 03:33:30 +0000 (23:33 -0400)]
implemented constant identifier lookups
mike lowis [Wed, 21 Apr 2021 02:41:05 +0000 (22:41 -0400)]
constant expressions are almost completely implemented. need to add identifier lookups
Michael D. Lowis [Tue, 20 Apr 2021 20:55:15 +0000 (16:55 -0400)]
added scaffolding for arithmetic operators. will fill in details later for constant calculations
Michael D. Lowis [Tue, 20 Apr 2021 19:28:35 +0000 (15:28 -0400)]
started implementing item based transformation based on oberon0 compiler
Michael D. Lowis [Tue, 20 Apr 2021 19:28:02 +0000 (15:28 -0400)]
Add oberon0 code from wirth for reference
mike lowis [Tue, 20 Apr 2021 03:44:07 +0000 (23:44 -0400)]
implemented basic constant folding ops..
Michael D. Lowis [Mon, 19 Apr 2021 20:33:26 +0000 (16:33 -0400)]
added global and local symbol list
Michael D. Lowis [Mon, 19 Apr 2021 20:31:32 +0000 (16:31 -0400)]
added scaffolding for constant expression evaluation and code generation