Commit Graph
100 Commits
Author SHA1 Message Date
Torsten Ruger 2df2dcc528 function now returns locals, not free registers 2014-05-21 16:42:36 +03:00
Torsten Ruger e1f889fd10 fix fibo with new syntax. certainly works for operators, but not everything 2014-05-21 12:47:40 +03:00
Torsten Ruger 16a07d5aa2 fixed method_missing to check whether local var exists (not gobble everything up) 2014-05-21 12:44:36 +03:00
Torsten Ruger 53cfeb72a4 fix test and remove hack for - 2014-05-21 12:42:54 +03:00
Torsten Ruger 9d873d3cba implement string loading and convert hello test 2014-05-20 19:21:29 +03:00
Torsten Ruger c7a2ce5af9 phase 2, add/sub instructions work with +- operator 2014-05-20 11:54:59 +03:00
Torsten Ruger c3c6928dc8 phase one, assignment for constants (moves) work 2014-05-20 11:14:18 +03:00
Torsten Ruger 7056f6f05c first step of assignment magic 2014-05-20 11:03:18 +03:00
Torsten Ruger e8660d92db merged the fibo arm test to small_programs, as that is what it is 2014-05-20 10:35:46 +03:00
Torsten Ruger fcf76eed34 better testing for small assembly (for coming changes) 2014-05-20 10:29:08 +03:00
Torsten Ruger 0fa47d204e minor 2014-05-20 10:28:34 +03:00
Torsten Ruger f34fddd383 minor 2014-05-19 21:28:18 +03:00
Torsten Ruger e07682b6a3 make the asm fibo output its result. slam dunk 2014-05-19 21:04:15 +03:00
Torsten Ruger fe1414f383 adds hand coded fibo, works 2014-05-19 17:32:41 +03:00
Torsten Ruger 285988f173 putint works, work on syntax goes on 2014-05-19 15:44:12 +03:00
Torsten Ruger 76ce9aa654 improve argument handling for puntint 2014-05-19 12:18:01 +03:00
Torsten Ruger 8ba79d8de8 fibinacci actually compiles, doesnt mean it works though 2014-05-19 11:29:18 +03:00
Torsten Ruger c56b7cdf09 minor 2014-05-19 11:28:37 +03:00
Torsten Ruger 59952f8503 more work on instruction format 2014-05-19 11:28:13 +03:00
Torsten Ruger db4f074b75 last split control/stack tests 2014-05-19 11:27:20 +03:00
Torsten Ruger 76f1537174 fix some arguemnt names 2014-05-18 12:34:53 +03:00
Torsten Ruger 9fc8bfbb55 fixin up mov arguments 2014-05-18 12:30:49 +03:00
Torsten Ruger 2be96dccdc fix logic instruction arguments 2014-05-18 12:18:57 +03:00
Torsten Ruger 6abd10f278 started naming instruction arguments properly, starting with compare 2014-05-18 11:11:26 +03:00
Torsten Ruger f65ad813af move first arg into derived intruction constructor 2014-05-18 10:27:35 +03:00
Torsten Ruger a35bba39bc merge logichelper into last class that uses it 2014-05-18 10:24:14 +03:00
Torsten Ruger 7b1b2c5d87 aliased add_code to <<, to give a bit of the stream feel 2014-05-18 10:15:43 +03:00
Torsten Ruger 53666e8b33 bit of evaling 2014-05-16 23:33:25 +03:00
Torsten Ruger a08661955f a bit of cleanup and the good news is, we can output a (small) number 2014-05-16 23:24:19 +03:00
Torsten Ruger fee82643e5 strangely the coredumps stopped. sure didnt feel like they would 2014-05-16 23:08:45 +03:00
Torsten Ruger 88eeb2bf65 increment implementation (start) and more splitting 2014-05-16 23:08:03 +03:00
Torsten Ruger 7e2210f772 renaming update_status_flag to just update_status 2014-05-16 19:56:13 +03:00
Torsten Ruger b3f7b66ceb coding the weird udiv10 and utoa 2014-05-16 19:55:46 +03:00
Torsten Ruger 823c11a381 more work on instrucitons, mov this time 2014-05-16 17:31:01 +03:00
Torsten Ruger 3d497ca622 some tests 2014-05-16 17:30:26 +03:00
Torsten Ruger 155066aac8 own dir for arm tests and split logic off 2014-05-16 15:19:38 +03:00
Torsten Ruger 4030f32ead finally coded the logic Shifting (what a beast) 2014-05-16 12:55:51 +03:00
Torsten Ruger 87e0f297e3 rename extra to right in logic inst 2014-05-16 11:27:30 +03:00
Torsten Ruger ccafb09224 rename first hash argument from right to left in logic inst 2014-05-16 10:54:56 +03:00
Torsten Ruger ef17bbf9dd rename left to first in instruction and started on logic instruction cleanup 2014-05-16 10:42:25 +03:00
Torsten Ruger 009c0895f4 change right syntax to 1.9 style, looks a little nicer 2014-05-15 21:35:45 +03:00
Torsten Ruger a0f0d08e81 named the first intruction constructor argument 2014-05-15 19:41:51 +03:00
Torsten Ruger b4c79d218f work on Integer.to_s , not a simple task as it turns out 2014-05-15 16:54:23 +03:00
Torsten Ruger 918ede1c02 arm program to generate optimal devision code for constants 2014-05-15 16:53:47 +03:00
Torsten Ruger 054f94d68b add some comment and tests (but small bugs still there) 2014-05-14 22:34:53 +03:00
Torsten Ruger c9ffb78e82 allowing comments instead of newlines and not capturing comments (leave that for later as it messes the output) 2014-05-14 22:19:20 +03:00
Torsten Ruger 3912e0cd31 fix register issues, some typos 2014-05-14 22:04:03 +03:00
Torsten Ruger e10f4863ee exporting labels to elf for (a lot) better readability 2014-05-14 16:15:47 +03:00
Torsten Ruger d8d536aa2c while assembles, now for some nice assmbler reading 2014-05-14 12:54:23 +03:00
Torsten Ruger a5b4f3d9ad remove NumLiteral, replace with IntegerConstant 2014-05-14 12:08:06 +03:00
Torsten Ruger d6b5d46165 while compiles. jo 2014-05-14 12:02:54 +03:00
Torsten Ruger d50c38f5ad add more functionality to get while to work (not there yet) 2014-05-14 11:33:23 +03:00
Torsten Ruger 2230a4f25e clean up intruction instantiation and fix tests 2014-05-14 10:47:30 +03:00
Torsten Ruger 46ea1df51e rename function_call to call_site in all levels to avoid confusion 2014-05-13 21:15:02 +03:00
Torsten Ruger 04af367bc0 coming together, more and more each day 2014-05-13 21:06:12 +03:00
Torsten Ruger f6711ea49c checkpointing on the mad road to register allocation 2014-05-13 18:21:24 +03:00
Torsten Ruger b0302948dd rename machine to c_machine 2014-05-13 17:06:42 +03:00
Torsten Ruger d7f31e7f39 introduce constant class and add block to compile signature(wip, work in progress) 2014-05-13 16:24:19 +03:00
Torsten Ruger dd05b30230 ads to_s to ast for better readability 2014-05-13 10:49:26 +03:00
Torsten Ruger 140d33b167 c fibs (need to loop a lot to use time on it) 2014-05-13 10:36:44 +03:00
Torsten Ruger cd67589f3e life must go on, compunds must go (for now) 2014-05-13 08:35:49 +03:00
Torsten Ruger 61d72a74ad fixes array test for previous rename 2014-05-13 08:35:17 +03:00
Torsten Ruger 72de0089b2 small renames 2014-05-13 08:24:55 +03:00
Torsten Ruger ff612446be using hash_key and value rules 2014-05-12 21:44:51 +03:00
Torsten Ruger fdb5dd4f67 a good stab at array anf hash constants 2014-05-12 21:36:38 +03:00
Torsten Ruger 25a7c3ea68 fixed fibonacci example 2014-05-12 14:24:36 +03:00
Torsten Ruger 1170b0798b make condition brackets optional 2014-05-12 13:57:24 +03:00
Torsten Ruger 956d1eb135 newline fiddling in the parser yields goods results 2014-05-12 13:47:47 +03:00
Torsten Ruger ee4d8033af redid while with brackets and just one condition expression 2014-05-12 12:26:38 +03:00
Torsten Ruger e2fb0a5f34 rename conditional to control in parser 2014-05-12 12:20:31 +03:00
Torsten Ruger 7940efc64d still trying that while loop. Check as everything else works 2014-05-12 12:14:04 +03:00
Torsten Ruger 4a27314533 fix the tests for oprerators. Also naming keywords demands change 2014-05-11 18:38:02 +03:00
Torsten Ruger cc5915135a add lots of operators. Assignment becomes operator. fix the mess 2014-05-11 18:37:26 +03:00
Torsten Ruger 3974f2516d llvm example 2014-05-11 17:06:13 +03:00
Torsten Ruger b4af123c9e operator docs 2014-05-11 17:05:21 +03:00
Torsten Ruger be4825579d finally remove kaspers example from which the oprerator stuff is copied 2014-05-10 21:43:03 +03:00
Torsten Ruger 2d389d2e00 adds basic math operators, thanks to kasper associative and prioritised 2014-05-10 21:41:46 +03:00
Torsten Ruger 6378209f33 leave assignee as name_expression in assignment, fix tests accordingly 2014-05-10 19:11:32 +03:00
Torsten Ruger 47f1608685 start to add while loop 2014-05-10 19:02:51 +03:00
Torsten Ruger e600911fe8 adds variable, something compliles , but... 2014-05-10 17:55:02 +03:00
Torsten Ruger 5b002c0ff6 little more attribute filing 2014-05-10 16:08:53 +03:00
Torsten Ruger 9e5b60dfab moving many attributes into the attributes hash, but not nearly all 2014-05-10 15:59:46 +03:00
Torsten Ruger 8faf0ba17f phase 1- get rid of the pesty args in structions 2014-05-10 15:47:27 +03:00
Torsten Ruger 3f88fe15b4 some reagganging on my way to retire logic_helper 2014-05-10 15:34:05 +03:00
Torsten Ruger cba171cc7d remove the old asm (that is now arm) 2014-05-10 15:27:10 +03:00
Torsten Ruger 79a28ac5fa trying to get function calls to work (but will have to rework regeister handling) 2014-05-10 15:24:56 +03:00
Torsten Ruger 7d69132d90 first root test 2014-05-10 12:57:10 +03:00
Torsten Ruger 94e8a947d9 debug helper 2014-05-10 12:55:22 +03:00
Torsten Ruger e69decee90 slight shuffling 2014-05-10 12:54:31 +03:00
Torsten Ruger 20128627c7 implements inspect for copy paste into tests 2014-05-10 12:54:10 +03:00
Torsten Ruger 051b0ea7dc remove the double transform rules (as not using maybe anymore) 2014-05-10 12:02:11 +03:00
Torsten Ruger b66b5ceff7 fix the runner to handle list of expressiosn 2014-05-10 11:23:45 +03:00
Torsten Ruger 8f2a22d12f add a repeat to the root parser rule (need to test the root more) 2014-05-10 11:18:39 +03:00
Torsten Ruger b266bb84ba splitting the parser up more 2014-05-10 11:14:34 +03:00
Torsten Ruger af1df1a104 renamed root parser class to Crystal 2014-05-10 11:03:23 +03:00
Torsten Ruger 31aa9c8768 actually ads a value to Value 2014-05-10 10:59:56 +03:00
Torsten Ruger db22966de9 hacking to get list of expressions to work (shudder) 2014-05-10 10:59:36 +03:00
Torsten Ruger 7341586d15 more expressions compile 2014-05-10 10:58:25 +03:00
Torsten Ruger 8e6297dcff improving the string according to kasper 2014-05-09 13:51:47 +03:00
Torsten Ruger e4dce2394c one test slipped through 2014-05-08 21:14:26 +03:00