Commit graph

122 commits

Author SHA1 Message Date
pommicket
b13e16b517 fixed prefix -- parsing; codegen for unary + - ~ ! 2022-02-11 13:52:56 -05:00
pommicket
017a70ee7e generating code for casts! 2022-02-10 21:11:53 -05:00
pommicket
bba56d2b51 return, integer literals 2022-02-10 18:09:44 -05:00
pommicket
d8bb5b8957 first working executable! 2022-02-10 16:06:17 -05:00
pommicket
b88de92fc7 fix some calling convention stuff 2022-02-10 13:24:02 -05:00
pommicket
3d44eba388 start codegen 2022-02-09 22:44:27 -05:00
pommicket
d74dc53b0b more parsing tests, fixed more bugs
- we now handle incomplete structs properly
- small fix in for loop printing
2022-02-09 15:50:02 -05:00
pommicket
c548b12bbb fixed #include -> #include in certain cases, found a new bug 2022-02-08 22:17:28 -05:00
pommicket
d7a9a565a9 fix declaring multiple variables after struct definition 2022-02-08 21:53:14 -05:00
pommicket
0a2d05bdd5 more parsing tests, more fixes
- #elif now actually works properly (hopefully)
- fixed some array decaying bugs (hopefully), and generally simplified typing
2022-02-08 20:09:08 -05:00
pommicket
26fccf7cd7 fix #elif line number problem with parse test 2022-02-07 17:23:26 -05:00
pommicket
aba654c36d fix a bunch of problems from parsing test
- ll suffixes (15ll => 15l)
- newlines between string literals to be concatenated
- fix *x++ = 1;
- default
- printing conditionals & decaying conditional operands
2022-02-07 17:02:57 -05:00
pommicket
16bad1636d fix multi-line fmacro invocations 2022-02-07 16:33:27 -05:00
pommicket
e21c1c39a7 capital number suffixes (oops) 2022-02-07 16:07:55 -05:00
pommicket
0752c66291 handle object macro definitions beginning with ( oops 2022-02-07 16:03:31 -05:00
pommicket
cfe52e2cfe handle fmacros with no parameters 2022-02-07 16:01:35 -05:00
pommicket
ef1100ad08 defined in #if (forgot about that earlier) 2022-02-07 15:53:44 -05:00
pommicket
4b6fe5266a cleanup - declaring functions without defining them, etc. 2022-02-07 15:16:26 -05:00
pommicket
9372a72d43 proper call typing? 2022-02-07 14:52:50 -05:00
pommicket
c2377fa40f parsing calls, mostly 2022-02-07 12:18:41 -05:00
pommicket
bbd9eb17e0 using function names 2022-02-06 20:00:30 -05:00
pommicket
b404c21bfc function parameters, fix local variables 2022-02-06 18:24:52 -05:00
pommicket
dd035eb224 switch, for 2022-02-06 16:52:50 -05:00
pommicket
029be0600d do 2022-02-06 13:52:26 -05:00
pommicket
2186650d77 while 2022-02-06 13:42:43 -05:00
pommicket
a61c4f88f9 local variables in expressions 2022-02-05 19:41:45 -05:00
pommicket
41f122f01e braced initializers in local declarations 2022-02-05 19:22:47 -05:00
pommicket
ebe96b9e85 start local declarations 2022-02-05 18:41:01 -05:00
pommicket
d718819ee7 block static variables seem to be working 2022-02-05 18:07:42 -05:00
pommicket
c5e2556d31 start local static declarations 2022-02-05 15:50:49 -05:00
pommicket
267b52814e bugfix, planning static variables 2022-02-04 23:21:33 -05:00
pommicket
d75b4154d3 parse goto, case 2022-02-04 22:36:22 -05:00
pommicket
dfce9118b9 parsing break, continue, return 2022-02-04 19:31:45 -05:00
pommicket
d1167f03d0 start parsing statements (not a lot yet) 2022-02-03 22:53:38 -05:00
pommicket
fd02968c23 dereferencing function pointers 2022-02-03 21:46:36 -05:00
pommicket
3e6cacfb7c parsing C is annoying 2022-02-03 19:19:12 -05:00
pommicket
04c5e1af8a fixed cast parsing bug
i hope casts weren't at a different precedence level for a reason
2022-02-02 23:05:33 -05:00
pommicket
be9a3b4bd5 arrays decay to pointers - also found bug 2022-02-02 23:02:31 -05:00
pommicket
e8378ddac0 fixed bug when evaluating division 2022-02-02 22:38:21 -05:00
pommicket
c19bed7454 struct initializers, found some bugs (not fixed yet) 2022-02-02 15:12:28 -05:00
pommicket
2a65d49d59 union initializers, fix bug with array initializers 2022-02-02 14:07:08 -05:00
pommicket
6ccef91d52 array initializers more or less working 2022-02-02 13:43:20 -05:00
pommicket
f4a8333751 various simplifications, start array initializers 2022-02-02 11:57:11 -05:00
pommicket
92293e83ac string literal initializers, global variable expressions 2022-02-02 09:49:56 -05:00
pommicket
22859ac40a start string initializers 2022-02-01 22:53:57 -05:00
pommicket
44e11303be little corrections 2022-01-29 11:13:56 -05:00
pommicket
1fd79e0ad7 normal (i.e. non-brace) initializers 2022-01-29 11:10:43 -05:00
pommicket
217794afce start top level decls - also oops forgot about sizeless arrays 2022-01-28 15:07:23 -05:00
pommicket
01b8a4d728 switch to using mmap for output file 2022-01-27 18:52:39 -05:00
pommicket
b5a498aa52 sizeof structs and structs-in-structs working 2022-01-27 18:23:10 -05:00