Commit Graph

927 Commits

Author SHA1 Message Date
Torsten Ruger
0e2b5665ff add recursive fibo test, but that needs return first 2014-05-27 15:31:31 +03:00
Torsten Ruger
62ae79dfd8 all lights are green in crystal land 2014-05-25 13:45:04 +03:00
Torsten Ruger
1f17262887 fix the handcoded fibonacci (registers again) 2014-05-25 13:34:06 +03:00
Torsten Ruger
5afa6f4239 move the if logic around (execute false first) and fix the parameters passing 2014-05-25 11:35:45 +03:00
Torsten Ruger
5fb1d9825a fixed tests according to new calling convention 2014-05-25 10:57:26 +03:00
Torsten Ruger
6ac92cac3a working on registers, awip (a work in progress) 2014-05-25 08:43:07 +03:00
Torsten Ruger
1e326e00b9 fix tests after register allocation work 2014-05-24 16:52:54 +03:00
Torsten Ruger
61a60abd08 ridiculously easy to implement the if now 2014-05-24 10:41:57 +03:00
Torsten Ruger
00d85156da rename conditional to if expression 2014-05-24 10:18:54 +03:00
Torsten Ruger
6eeefc5617 passes the test, as (did i mention this) it actuall works (he cackles) 2014-05-23 20:30:55 +03:00
Torsten Ruger
7b6d6b9024 more stack tests, just to make sure 2014-05-23 15:08:47 +03:00
Torsten Ruger
c196817568 adds the intel tests, even intel is not integrated. Helps to catch global replace errors 2014-05-22 19:36:13 +03:00
Torsten Ruger
bfa13f9546 moved with better name 2014-05-22 19:34:42 +03:00
Torsten Ruger
c3488724dc moved with better name 2014-05-22 19:34:13 +03:00
Torsten Ruger
dcbbff5527 is now a fragment 2014-05-22 19:32:59 +03:00
Torsten Ruger
ccf88319e0 gives function the list of blocks it needs for branching and documents also the blocks better 2014-05-22 14:18:22 +03:00
Torsten Ruger
a76ba577f2 putint test ok 2014-05-21 22:16:19 +03:00
Torsten Ruger
33fb8e7d2f better test for foo, nice rythm 2014-05-21 21:37:04 +03:00
Torsten Ruger
e3bccaa0fe thats putstring working again (better testing == better code => better sleep, longer life :-) 2014-05-21 21:27:05 +03:00
Torsten Ruger
741c55cba3 start testing the previous runners more rigourusly 2014-05-21 21:13:12 +03:00
Torsten Ruger
56afe575e1 writing before asserting to be able to debug the object, also move to hex 2014-05-21 19:05:40 +03:00
Torsten Ruger
2df2dcc528 function now returns locals, not free registers 2014-05-21 16:42: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
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
8ba79d8de8 fibinacci actually compiles, doesnt mean it works though 2014-05-19 11:29:18 +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
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
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
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
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
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
d6b5d46165 while compiles. jo 2014-05-14 12:02:54 +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
b0302948dd rename machine to c_machine 2014-05-13 17:06:42 +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
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
3974f2516d llvm example 2014-05-11 17:06:13 +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
8faf0ba17f phase 1- get rid of the pesty args in structions 2014-05-10 15:47:27 +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
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
af1df1a104 renamed root parser class to Crystal 2014-05-10 11:03:23 +03:00
Torsten Ruger
db22966de9 hacking to get list of expressions to work (shudder) 2014-05-10 10:59:36 +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
Torsten Ruger
6ee290e0bb fixes all existing parser tests 2014-05-08 21:09:07 +03:00
Torsten Ruger
53a8efaa59 get the conditionals to work again 2014-05-08 19:49:15 +03:00
Torsten Ruger
eaf097752a use debug when parsing 2014-05-08 19:31:36 +03:00
Torsten Ruger
500bc36a29 testing escaped input is awkward 2014-05-08 19:29:35 +03:00
Torsten Ruger
9c2dfe79da at least basic tests work again 2014-05-08 18:42:24 +03:00
Torsten Ruger
4c585e415b output debug for failed parses 2014-05-08 18:38:10 +03:00
Torsten Ruger
5436e6bfc9 testing comments 2014-05-08 18:37:52 +03:00
Torsten Ruger
f0ad11bf8c resistance was useless, wilson is now part of the collective (as intel) 2014-05-08 15:09:56 +03:00
Torsten Ruger
f7f0eee31a adjust program tests to new syntax, hello world works there too -) 2014-05-08 14:14:15 +03:00
Torsten Ruger
ee864fc602 fixed arm tests to use ArmMachine 2014-05-07 14:58:38 +03:00
Torsten Ruger
4135c4d2dc crystal says Hello. 2014-05-06 21:36:28 +03:00
Torsten Ruger
7d20b5e2df at least its in shape to start debugging again (that must count as half full) 2014-05-05 22:21:11 +03:00
Torsten Ruger
69b04d930f cleanup 2014-05-05 15:59:29 +03:00
Torsten Ruger
de66238a9e moved all compile to ast, vm does link and assemble. Getting there 2014-05-05 11:03:43 +03:00
Torsten Ruger
7c7e58ea62 upgrades ast to first class 2014-05-05 09:51:16 +03:00
Torsten Ruger
7c0aa8ae7d getting better, but somethings off 2014-05-05 09:35:40 +03:00
Torsten Ruger
a61170942f so close i can smell it, checkpoint 2014-05-03 22:18:04 +03:00
Torsten Ruger
5608c411bf rename 2014-05-03 18:57:43 +03:00
Torsten Ruger
968556a03e get the tests to work 2014-05-03 18:56:56 +03:00
Torsten Ruger
04e4dc872e check 2014-05-03 18:51:47 +03:00
Torsten Ruger
845a8cab8b more semi random code, a checkpoint 2014-05-03 15:13:44 +03:00
Torsten Ruger
fae0c1ab8c renamed program to assembler (to avoid clashes in vm) 2014-05-02 08:14:38 +03:00
Torsten Ruger
990b4726ba more random code 2014-05-02 08:02:25 +03:00
Torsten Ruger
1954ca562c move non working fibos out of the way 2014-04-29 17:14:26 +03:00
Torsten Ruger
98a907e8e6 with the new framework there are 16 more tests, just doing it thorough 2014-04-29 17:02:38 +03:00
Torsten Ruger
8151ed6b9d moe the last (function) tests to new test model 2014-04-29 16:57:36 +03:00
Torsten Ruger
1593d330ae move assignment test to basic suite 2014-04-29 16:49:37 +03:00
Torsten Ruger
afce197797 move conditional and expression test to new model 2014-04-29 16:47:33 +03:00
Torsten Ruger
76055575a1 moves the function call tests to new model 2014-04-29 16:36:29 +03:00
Torsten Ruger
1af45334b7 move argument and parameter tests to new framework 2014-04-29 16:22:39 +03:00
Torsten Ruger
9e75a50315 improved the framework a bit 2014-04-29 16:21:28 +03:00
Torsten Ruger
585c27c78d adds the concern aproach and explanation 2014-04-29 14:09:10 +03:00
Torsten Ruger
b6e08faa39 folds all basic tests into new directory 2014-04-29 13:50:07 +03:00
Torsten Ruger
2507251f75 start to split tests according to feature 2014-04-29 11:37:43 +03:00
Torsten Ruger
7dfde45373 fixes missing string tests and expression/transformation 2014-04-29 11:17:19 +03:00
Torsten Ruger
9c16d81ad6 some explanation for the parser tests 2014-04-28 22:22:37 +03:00
Torsten Ruger
aaed2ed5a1 More assignment test 2014-04-28 22:07:35 +03:00
Torsten Ruger
92a9372dcc moved nodes to parser (one more layer) and fixed tests. also adds assignment 2014-04-28 21:21:12 +03:00
Torsten Ruger
c1a6003704 move straight to rb files, fixed runner 2014-04-28 16:47:12 +03:00
Torsten Ruger
2fdbb9f3ae imroved and fixed node test (parse and transform) 2014-04-28 16:26:19 +03:00
Torsten Ruger
cfcb9ded2f fixed and tightened transformation tests, also by implementing node == 2014-04-28 16:07:34 +03:00
Torsten Ruger
e04973fc3c making grammar look more like ruby 2014-04-28 15:46:57 +03:00
Torsten Ruger
0a3253c5c3 adds a runner that parses files (and some fibo examples) 2014-04-28 11:19:28 +03:00
Torsten Ruger
74060d6ab6 expanded many rule names, added some tests to find the bugs introduced 2014-04-27 21:41:38 +03:00
Torsten Ruger
408cf98ea5 renamed parser rules for clarity. fixed 2014-04-27 21:12:42 +03:00
Torsten Ruger
28410ab22a adjusted code and tests to use renamed and rearranged parser bits 2014-04-27 18:13:34 +03:00
Torsten Ruger
f628c67188 starting to deompose the parser 2014-04-27 16:30:32 +03:00
Torsten Ruger
96a9cd3270 fixed asserts 2014-04-27 16:09:22 +03:00
Torsten Ruger
5423bc8f7e convert to test case 2014-04-27 15:56:22 +03:00
Torsten Ruger
d72c9a3bb0 fixed tests (namespacing) and finally created a test_all 2014-04-27 15:44:34 +03:00
Torsten Ruger
6fafeda66d block dsl facelift 2014-04-27 15:19:48 +03:00
Torsten Ruger
88ed97ac3b fix the tests with new block syntax 2014-04-25 21:08:19 +03:00
Torsten Ruger
92beb638de better logic with new block class 2014-04-25 18:37:19 +03:00
Torsten Ruger
d08e6702f0 removes the asm from assemble signature (not used) 2014-04-25 11:56:53 +03:00
Torsten Ruger
93e4178017 rewrote as testcase (quicker than checking where spec errors came from) 2014-04-24 21:03:11 +03:00
Torsten Ruger
2b1a56b4fe starting with own node tests 2014-04-24 19:45:22 +03:00
Torsten Ruger
c411ac5df8 removed the structs (code smell) 2014-04-24 17:38:06 +03:00
Torsten Ruger
305f2380a9 folded fake builder, started adapting tests and added example file 2014-04-24 17:17:17 +03:00
Torsten Ruger
601dc22b2e get thnads tests to work 2014-04-24 15:53:48 +03:00
Torsten Ruger
d90ea3dd26 copied thnad to get a kickstart 2014-04-24 15:43:20 +03:00
Torsten Ruger
7d1be1f908 improved requires 2014-04-23 13:57:34 +03:00
Torsten Ruger
69c1f8fccc reduced label mess 2014-04-23 13:52:34 +03:00
Torsten Ruger
ceefa05b2f removed arm subdirectory 2014-04-23 12:51:09 +03:00
Torsten Ruger
8955cf31da really remove externs 2014-04-23 11:14:25 +03:00
Torsten Ruger
778890298c rename data_object to string_node and move the padding there 2014-04-23 00:12:43 +03:00
Torsten Ruger
b240dc5100 fixing address resolution cleans up hello world 2014-04-22 23:55:47 +03:00
Torsten Ruger
2fdc59c13c some renaming 2014-04-22 23:13:16 +03:00
Torsten Ruger
1dedc41e39 rename objects to value sin assembler 2014-04-22 22:24:22 +03:00
Torsten Ruger
e23211602b Hello World 2014-04-22 14:39:47 +03:00
Torsten Ruger
5127deeeff implement offset addressing for load (ie reg+num) 2014-04-22 12:23:55 +03:00
Torsten Ruger
2784a8da98 just use register nodes as registers (no more arrays) 2014-04-22 11:58:17 +03:00
Torsten Ruger
fc81122bc4 renamed code generator to arm assembler (more appropriate) 2014-04-21 21:13:14 +03:00
Torsten Ruger
7478b65fb0 dropped extern functionality for now 2014-04-21 21:02:11 +03:00
Torsten Ruger
ff38bde44e clean and work on labels 2014-04-21 17:27:05 +03:00
Torsten Ruger
f0c0166d1f combines and dries the two program tests 2014-04-21 11:02:15 +03:00
Torsten Ruger
2dffad61b8 fix cp paste 2014-04-21 00:07:03 +03:00
Torsten Ruger
2c57ca773b push and pop were forgotten, fixed and tested 2014-04-20 23:48:04 +03:00
Torsten Ruger
87db8b527e docs were copy paste 2014-04-20 23:47:44 +03:00
Torsten Ruger
b80836c45c start on a printf call 2014-04-20 23:47:02 +03:00
Torsten Ruger
6019fb5d79 minimal test of generating a whole programm (that can be linked and run,yeah) 2014-04-20 18:59:21 +03:00
Torsten Ruger
a89bc3d628 adds the other load store instructions 2014-04-19 19:38:13 +03:00
Torsten Ruger
bef1df8485 test and fix store instruction (syntax was not for coding) 2014-04-19 19:34:04 +03:00
Torsten Ruger
529f109171 found and fixed a real bug 2014-04-18 16:04:14 +03:00
Torsten Ruger
b420bb4993 More and more instructions (now with objdump codes to ptove it) 2014-04-18 15:49:23 +03:00
Torsten Ruger
a9d0ee2754 bic, and and adc tests 2014-04-17 20:24:37 +03:00
Torsten Ruger
5d9c4323bb test no 3 2014-04-17 15:35:55 +03:00
Torsten Ruger
f4315804c1 dried up the test code 2014-04-17 14:43:52 +03:00
Torsten Ruger
36bde218f6 second test hurrah 2014-04-17 12:54:51 +03:00
Torsten Ruger
3431411e63 adds a pie in the sky 2014-04-17 12:53:42 +03:00
Torsten Ruger
8e0494f410 move some unused parse related classes out of the way 2014-04-16 12:10:58 +03:00
Torsten Ruger
1564f9b439 change result to hex because that is what objectdump disasemles 2014-04-16 12:03:12 +03:00
Torsten Ruger
e47b1dcadd first working test (hurray) that checks a mov instruction 2014-04-14 21:53:29 +03:00
Torsten Ruger
2e6b90b12e cleanup, requires, namespacing to actually get it to work 2014-04-14 21:52:16 +03:00
Torsten Ruger
408b290b8a adds first version of the expanded as assembler from mikko 2014-04-14 18:09:56 +03:00
Torsten Ruger
8648647754 jeweler generates its things 2014-04-14 15:58:59 +03:00