Commit Graph

1757 Commits

Author SHA1 Message Date
Torsten Ruger
398516a596 fixes parfaits hash by implementing array
basic concept holds up as parfaits hash is now
working on parfaits own array
2015-05-12 18:52:01 +03:00
Torsten Ruger
b980def84e move space to parfait
Also make the machine the singleton
and space hang off it

Many repercussions, not all fixed in this commit
2015-05-12 15:36:44 +03:00
Torsten Ruger
6f2affaf36 fix name expression and test
plus various cleaning and rename off call_site
2015-05-08 14:34:46 +03:00
Torsten Ruger
2fde50c27a some more tests fixed 2015-05-06 15:15:53 +03:00
Torsten Ruger
4f1508ca61 moved slots to own directory 2015-05-06 08:38:29 +03:00
Torsten Ruger
cdea4915f9 bit more cleanup after compiler 2015-05-05 15:11:09 +03:00
Torsten Ruger
001af3f8b6 reviving more tests 2015-05-05 14:04:37 +03:00
Torsten Ruger
e4c799ecb6 first tests comping through after ast/compile change 2015-05-04 23:03:52 +03:00
Torsten Ruger
8180c67d48 move sof to own repo 2015-05-03 20:38:13 +03:00
Torsten Ruger
2a0dc7242a better test doc 2015-04-06 10:28:44 +03:00
Torsten Ruger
5b10f09ea1 fix test 2015-03-28 21:12:03 +02:00
Torsten Ruger
e2e692e25d test readme and test sof 2015-03-25 18:31:18 +02:00
Torsten Ruger
451b1c409c update read me 2015-03-15 11:58:17 +00:00
Torsten Ruger
6e6dd257e4 rename 2014-10-18 13:53:01 +03:00
Torsten Ruger
7968cadaf9 remove singleton in arm machine and use class methods 2014-10-04 17:34:51 +03:00
Torsten Ruger
fba66371c0 (semi) proper fix for large moves, integers or virtual constants(was buggy) 2014-09-30 12:07:21 +03:00
Torsten Ruger
527e591e75 fix add instruction and test 2014-09-29 21:04:38 +03:00
Torsten Ruger
ae65952d0a more precise tests 2014-09-29 20:28:24 +03:00
Torsten Ruger
45adf7173c naming, clean 2014-09-29 20:28:05 +03:00
Torsten Ruger
e0c479f778 split some tests, create more and especially big move 2014-09-18 17:06:30 +03:00
Torsten Ruger
914d8af8c6 move object equality here 2014-09-16 16:06:11 +03:00
Torsten Ruger
c51dbf51e1 renamed true,false,nil class to constant (from value) 2014-09-14 18:15:33 +03:00
Torsten Ruger
5a5e977b8f get some old builtin code backonline and improve imports 2014-09-09 18:03:13 +03:00
Torsten Ruger
d94ec6c72c fix parfait test 2014-09-04 14:22:28 +03:00
Torsten Ruger
0271045ff4 corrected unit name 2014-08-30 20:46:38 +03:00
Torsten Ruger
be8284efd9 list all working tests in test_all 2014-08-30 19:47:03 +03:00
Torsten Ruger
ccb5b37a3c reinserted arm for now, until dependecy is cleaned up. fixed tests 2014-08-30 19:40:37 +03:00
Torsten Ruger
18f33770b5 fix and use object writer in test 2014-08-30 14:17:00 +03:00
Torsten Ruger
da3cd69a5c fixed the old list tests for hash, and fixed hash to pass them 2014-08-28 16:28:25 +03:00
Torsten Ruger
7d35732923 renamed method definition to compiled method 2014-08-28 08:10:33 +03:00
Torsten Ruger
fc9615a649 short hash, inline like for array. with curly braces off course 2014-08-27 14:46:34 +03:00
Torsten Ruger
97f68a1a54 basic assembly frame 2014-08-26 22:35:56 +03:00
Torsten Ruger
b4419fc438 start on linking and assembly (again, hurra) 2014-08-25 17:03:39 +03:00
Torsten Ruger
0b65e5840e move space accesor to boot_space 2014-08-24 21:32:21 +03:00
Torsten Ruger
a7bfb6e6ee rename (corrected) method def to instance methods in class 2014-08-23 23:57:47 +03:00
Torsten Ruger
a63e37fc50 scaffold for instance variable get implementation 2014-08-23 10:59:35 +03:00
Torsten Ruger
4783e6c326 more renaming ripples 2014-08-22 18:00:23 +03:00
Torsten Ruger
91ce05364a add FunctionCall instruction and the missing puts (stub) 2014-08-22 15:08:46 +03:00
Torsten Ruger
e19b7be111 getting to where where the puts should be, but it aint there 2014-08-22 10:21:12 +03:00
Torsten Ruger
b305a56576 more work on send 2014-08-22 09:21:59 +03:00
Torsten Ruger
5b1e86da49 more work on send, remove yaml hack in test 2014-08-21 22:57:20 +03:00
Torsten Ruger
2260c680b2 getting the passes back and starting on send 2014-08-21 17:46:12 +03:00
Torsten Ruger
b5792c155c added a test for class refs 2014-08-21 15:40:13 +03:00
Torsten Ruger
9608e5f626 supressing nil attributes on objects 2014-08-20 22:33:08 +03:00
Torsten Ruger
1371d395ec pretty much redid the variable idea (now slot) 2014-08-20 17:14:52 +03:00
Torsten Ruger
ba71e568ef made a test for short object feature 2014-08-19 23:23:03 +03:00
Torsten Ruger
52ca7110c3 ad a preliminary syntax for class objects, which is just the class name 2014-08-19 23:01:19 +03:00
Torsten Ruger
e13801c764 moving (back) to 1.9 style hash, clearer that it is an association. didnt like the double colon 2014-08-18 17:19:34 +03:00
Torsten Ruger
81f8f0f3a2 actually using volotile attributes and outputting sof in test. very readable 2014-08-18 17:16:18 +03:00
Torsten Ruger
a594b716bc inlining references into objects as simple data 2014-08-18 14:54:03 +03:00
Torsten Ruger
a874bd49d2 short version for array 2014-08-18 14:28:28 +03:00
Torsten Ruger
1dee9a4bd1 adding the actual references for referenced objects 2014-08-18 13:53:05 +03:00
Torsten Ruger
67c3fb6cb0 recursive object test 2014-08-18 13:37:35 +03:00
Torsten Ruger
338c669a00 fix level bug that became obvous with recursion 2014-08-18 13:33:40 +03:00
Torsten Ruger
ad4aaaff8a fix recursive arrays 2014-08-18 13:22:03 +03:00
Torsten Ruger
9f292ba618 fix weird object bug 2014-08-18 12:49:38 +03:00
Torsten Ruger
a3c9ab7e29 simpler but more verbose node model fixes everything but one 2014-08-18 08:19:48 +03:00
Torsten Ruger
b0472753f4 fixing arrays/hashs and starting complex objects 2014-08-17 21:44:34 +03:00
Torsten Ruger
9669831f78 fix all existing (hash) tests 2014-08-16 15:16:07 +03:00
Torsten Ruger
90e4837b2e broaden the node hierachy 2014-08-16 12:34:25 +03:00
Torsten Ruger
2f84c0dfa6 fixing array tests, seperated nodes into different types 2014-08-16 11:43:41 +03:00
Torsten Ruger
7f7a174554 fixes object 2014-08-16 09:56:11 +03:00
Torsten Ruger
b0a54cb8c2 working up 2014-08-15 18:27:32 +03:00
Torsten Ruger
0a7814a07b add hash with object 2014-08-15 17:18:15 +03:00
Torsten Ruger
16261f96b0 adds simple hash and test 2014-08-15 17:14:49 +03:00
Torsten Ruger
2d6a43cf0e array with object 2014-08-15 15:13:36 +03:00
Torsten Ruger
1415079659 test with array in array in array 2014-08-15 15:08:45 +03:00
Torsten Ruger
716bc93e4a test for array with array 2014-08-15 15:04:13 +03:00
Torsten Ruger
198e70b6bd fix array with object 2014-08-15 14:59:38 +03:00
Torsten Ruger
85dad14cc8 fix simple array 2014-08-14 20:24:26 +03:00
Torsten Ruger
6b19b915a1 rewrote write to use known attributes or instance variables, simple values inline 2014-08-14 19:49:20 +03:00
Torsten Ruger
0a33f940cf moving away from the attributes aproach, tests fixed 2014-08-14 19:24:18 +03:00
Torsten Ruger
2c2ae14928 getting some sof output and adding some tests. issues though. abound 2014-08-14 17:40:56 +03:00
Torsten Ruger
7e60827dd3 redoing the ifs with new (old) block structure 2014-08-13 20:05:32 +03:00
Torsten Ruger
200228a33d adding the blocks to virtual machine and store instructions in array not list 2014-08-13 11:59:51 +03:00
Torsten Ruger
c2ae184e6e simple test for get type 2014-08-07 15:41:13 +03:00
Torsten Ruger
a9ab3ca13e forgot to add compiled methods to the class, fixed 2014-08-07 15:37:32 +03:00
Torsten Ruger
b9e259e11a first ginger parfait test 2014-08-06 18:49:20 +03:00
Torsten Ruger
629c6e56e0 adds test before functionality (deres a good boy) 2014-07-31 21:38:01 +03:00
Torsten Ruger
8effcc866a more machinery to the machine 2014-07-30 21:43:12 +03:00
Torsten Ruger
5add9c42f2 juggle into the machine 2014-07-30 21:07:48 +03:00
Torsten Ruger
7b6f364ba8 namechange 2014-07-29 18:33:11 +03:00
Torsten Ruger
8718ebf476 last inherited test 2014-07-27 10:09:31 +03:00
Torsten Ruger
1a95835442 adds message get and set instructions 2014-07-25 20:28:38 +03:00
Torsten Ruger
7df1490da8 mostly comments 2014-07-25 11:48:06 +03:00
Torsten Ruger
e427bcef43 change method and frame around in calling, easier to understand static first 2014-07-24 14:56:27 +03:00
Torsten Ruger
e408b0e4b9 fixed while instruciton linking after change in method add 2014-07-22 23:27:13 +03:00
Torsten Ruger
25e26f613d fix one more test 2014-07-22 11:57:56 +03:00
Torsten Ruger
a6e78ec837 fixed the yaml output order for much better readability of failed tests 2014-07-19 21:56:17 +03:00
Torsten Ruger
eb44011177 fixed that branch numbering bug 2014-07-19 21:15:27 +03:00
Torsten Ruger
c03c4f9cc9 add return instruction and fix the tests 2014-07-18 11:56:46 +03:00
Torsten Ruger
cf00a6e490 changed marker 2014-07-18 11:16:56 +03:00
Torsten Ruger
23e1b2519e fix all the test data to be yaml 2014-07-18 00:30:47 +03:00
Torsten Ruger
2e79caa791 using yaml as the storage format of the result as it handles graphs out of the box 2014-07-18 00:30:36 +03:00
Torsten Ruger
e02c6ed082 codes the while, but the testing throws stack too deep because loop detection is missing 2014-07-17 16:46:17 +03:00
Torsten Ruger
337b1a8ee0 renamed to kide(crystal) 2014-07-17 02:26:13 +03:00
Torsten Ruger
fb105cb895 had to let go of crystal (sniff) as the name was taken 2014-07-17 01:00:15 +03:00
Torsten Ruger
efeb910843 move branch counter to branch instruction (from if) in preperation of while 2014-07-16 22:28:28 +03:00
Torsten Ruger
7534626d87 fix the if test by naming branch and label and stitching them in constructor 2014-07-16 21:16:08 +03:00
Torsten Ruger
4185758532 slight rename tremours 2014-07-16 20:16:10 +03:00
Torsten Ruger
1ff7ae2b0a rename method 2014-07-16 19:24:41 +03:00
Torsten Ruger
55cb6bd2d6 working on if 2014-07-16 13:20:47 +03:00
Torsten Ruger
4d725ea1ae adds explicit load_self instruction 2014-07-15 18:27:13 +03:00
Torsten Ruger
930740e1db fixes the tests after fixing hierarchy 2014-07-15 10:35:29 +03:00
Torsten Ruger
9891da88a4 fix all tests 2014-07-15 00:00:00 +03:00
Torsten Ruger
b59a9da34e reduce method return type to type and introduce a single instruction for instance get 2014-07-14 21:28:21 +03:00
Torsten Ruger
b1893482ff adds an all test, uncomment not implemented 2014-07-14 21:25:53 +03:00
Torsten Ruger
16a378e3da fix class function test 2014-07-14 17:08:52 +03:00
Torsten Ruger
93bdd8a243 removing exceptions 2014-07-14 16:19:47 +03:00
Torsten Ruger
c7c4387e16 adds self reference and improve methods a little 2014-07-14 14:29:33 +03:00
Torsten Ruger
db8b1488d0 function test, slow but steady 2014-07-14 14:06:09 +03:00
Torsten Ruger
122452c21b patch another test 2014-07-14 11:31:46 +03:00
Torsten Ruger
d531a24930 first method test 2014-07-14 11:29:38 +03:00
Torsten Ruger
c1f475070b and another one, and another one.... 2014-07-13 16:00:48 +03:00
Torsten Ruger
ae21863245 one more basic test back online 2014-07-13 14:12:43 +03:00
Torsten Ruger
dc6cb2bb52 a lot of work to get one more test to pass 2014-07-12 21:59:17 +03:00
Torsten Ruger
c505db490f brainstorming mode on the new way (tm) 2014-07-10 17:14:38 +03:00
Torsten Ruger
f74999af57 zwischenstopp 2014-07-01 18:58:25 +03:00
Torsten Ruger
7045a4b256 update reader and implement singletons 2014-07-01 15:57:13 +03:00
Torsten Ruger
94d1140686 remove intel as it is in own rep now 2014-06-30 15:34:51 +03:00
Torsten Ruger
84d27ce9d9 remove arm as it is in own rep now 2014-06-30 15:28:39 +03:00
Torsten Ruger
18faeeb042 add the idea of a frame 2014-06-29 19:05:35 +03:00
Torsten Ruger
16ceb2a60d hurra, a first test. looks a lot.... but lets not spoil th efeeling 2014-06-26 18:39:02 +03:00
Torsten Ruger
525f9d45c5 rename 2014-06-26 17:52:15 +03:00
Torsten Ruger
33c62a7db1 update reader 2014-06-26 17:48:33 +03:00
Torsten Ruger
9d0d5aa431 update reader 2014-06-26 11:34:48 +03:00
Torsten Ruger
d28df7671d add the simplest possible hash replacement with tests 2014-06-25 16:00:24 +03:00
Torsten Ruger
fe337fad79 rename and a tiny start 2014-06-25 15:20:46 +03:00
Torsten Ruger
43a2649635 new list test and debugs 2014-06-24 12:25:03 +03:00
Torsten Ruger
a859951a8f slight cleanup and rename test case 2014-06-17 14:25:33 +02:00
Torsten Ruger
0dbaebf647 fix all tests and a little cleaning 2014-06-14 10:59:25 +03:00
Torsten Ruger
12a92e4db0 move boot* classes to boot directory 2014-06-13 23:51:53 +03:00
Torsten Ruger
a7551ea8b6 still working on the method dispatch 2014-06-13 23:41:45 +03:00
Torsten Ruger
ebf117a63a update tests, all green 2014-06-12 21:43:06 +03:00
Torsten Ruger
017d93d929 add to_asm debug output functions 2014-06-12 21:40:25 +03:00
Torsten Ruger
ea0572c836 fixed while compilation (block order) and fixed and improved fibo 2014-06-12 16:23:57 +03:00
Torsten Ruger
506f98da5a fixed foo and hello, next putint 2014-06-12 09:07:03 +03:00
Torsten Ruger
b125a7c5c7 fix passes, add noop reduction, remove the wretched value operators 2014-06-11 21:36:22 +03:00
Torsten Ruger
e9519d4f05 move the code insertion functionality up to function. makes more sense. block still carries code though 2014-06-10 23:57:56 +03:00
Torsten Ruger
b66c4157d5 keep track of used and assigned registers for each block 2014-06-08 01:41:56 +03:00
Torsten Ruger
fbcfa844de renaming and small fixes 2014-06-08 00:56:40 +03:00
Torsten Ruger
0a14cffefb fixing fragment tests, most done 2014-06-07 23:22:32 +03:00
Torsten Ruger
36f237c633 removed the (too) fancy dsl. Also introduce register indirection 2014-06-07 17:59:44 +03:00
Torsten Ruger
c59f22f11f first oo program to compile. But no worries, there is still work left to be done 2014-06-05 18:17:00 +03:00
Torsten Ruger
f523d0946d fix the lasts tests 2014-06-05 16:27:25 +03:00
Torsten Ruger
f2e8e644bd changes tests to only compare the tested function output, not the whole binary 2014-06-05 13:02:36 +03:00
Torsten Ruger
7cc4c6344c remove the parse code and fix the rest to work with the gem (from git for now) 2014-06-04 22:03:45 +03:00
Torsten Ruger
72d4adc7af another step closer to a working oo system 2014-06-03 22:16:57 +03:00
Torsten Ruger
ca19f5cb16 move to syms for names 2014-06-03 20:47:06 +03:00
Torsten Ruger
b7c2089046 the further down this goes, the smaller the circles. Soon the point will come. And then back out 2014-06-03 14:49:02 +03:00
Torsten Ruger
f60bbfa9ca add a fail case, that anoyingly hangs 2014-06-03 09:41:39 +03:00
Torsten Ruger
7c1c5431bc add qualification to function definitions 2014-06-02 14:00:30 +03:00
Torsten Ruger
1cff296ab5 small fixes, wown parse for class test 2014-06-02 13:45:08 +03:00
Torsten Ruger
31a55b07ac makes memory a three operand instruction, like add etc. But 3 regs are still undone 2014-06-01 21:20:44 +03:00
Torsten Ruger
08bbad0fdc more on classes, have to work on asm next 2014-06-01 21:03:08 +03:00
Torsten Ruger
1d10c2c03e had forgotten calls on instance variables. corrected + tests 2014-06-01 14:46:16 +03:00
Torsten Ruger
9ea0acf2e3 first oo steps are wobbly, but a string.plus parses 2014-06-01 14:24:54 +03:00
Torsten Ruger
86431120d5 add also calls on classes and more tests for that 2014-05-31 17:58:26 +03:00
Torsten Ruger
5756e0b325 move that test to core (cant be done in compiled code) and focus on string addition instead 2014-05-31 16:43:03 +03:00
Torsten Ruger
cdfc1ac891 kernel functions are not fixed to be Object functions 2014-05-31 16:19:44 +03:00
Torsten Ruger
a6f02d6be3 let the BootClasses carry functions, ie one level squeezed between object_space and funtion, the class is coming to life 2014-05-31 14:35:33 +03:00
Torsten Ruger
3713d08748 renamed program to boot_space, as in object_space at boot time. thats the way its going 2014-05-31 12:52:29 +03:00
Torsten Ruger
3156887a81 add instance variables and module name as basic types (as name was there already) and add tests 2014-05-30 14:25:08 +03:00
Torsten Ruger
497211f027 fix class tests and link them into all. 352 tests 2014-05-30 12:24:38 +03:00
Torsten Ruger
806960a4d6 fixing module and class rules to actually use module names. fix all tests 2014-05-30 12:17:11 +03:00
Torsten Ruger
f03d445f3d add module names and instance variables as parse rules 2014-05-30 12:06:42 +03:00
Torsten Ruger
3e93517986 adds class definition with tests 2014-05-30 10:59:49 +03:00
Torsten Ruger
e7a823bf3e renamed module_def too module_definition and fixed leading space tests 2014-05-30 10:42:43 +03:00
Torsten Ruger
caec5ee6f0 add module to root parse and tests 2014-05-30 10:31:25 +03:00
Torsten Ruger
c69a44f316 define modules and tests, no compiling 2014-05-29 15:57:33 +03:00
Torsten Ruger
5e8688c417 small fixes to get all the tests to pass/run 2014-05-28 21:00:52 +03:00
Torsten Ruger
25cd80c76b small fix to return gets recursive fibonacchi to work 2014-05-28 20:13:03 +03:00
Torsten Ruger
5c0f62ebb9 upgrade calls with operator argument and chaining. Almost feels like cheating, too easy 2014-05-28 15:22:37 +03:00
Torsten Ruger
0f118c591d fix return compilation and use it on the while fibo. worked immediately :-) 2014-05-28 15:03:54 +03:00
Torsten Ruger
5a415aed92 fix fragment tests to actually execute on the pi and check the output 2014-05-28 14:55:13 +03:00
Torsten Ruger
c01c19209a fix tests 2014-05-28 14:27:18 +03:00
Torsten Ruger
6bfe643032 add some return test to functions 2014-05-27 16:51:37 +03:00
Torsten Ruger
fbaf292bb6 add a simple return, ie the normal kind, not with trailing statements 2014-05-27 16:33:24 +03:00
Torsten Ruger
21a53c6a7f fix the compound type parser tests 2014-05-27 15:41:34 +03:00
Torsten Ruger
a6ea45b203 fixed deprication 2014-05-27 15:33:08 +03:00
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