Commit Graph

714 Commits

Author SHA1 Message Date
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
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
b82c2241b7 get parameter lists to work again (no more ifs as function arguments:-) 2014-05-08 19:41:27 +03:00
Torsten Ruger
9c609ee299 make machine init default to the running one with ruby config 2014-05-08 19:30:46 +03:00
Torsten Ruger
9c2dfe79da at least basic tests work again 2014-05-08 18:42:24 +03:00
Torsten Ruger
034ae4f7ca add comment and remove newline from space (starting a long whitespace battle) 2014-05-08 18:38:49 +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
fa123e0354 move kernel to core and apply the classmethod pattern to all core classes 2014-05-06 12:47:07 +03:00
Torsten Ruger
12b6800efe work on function entry and exit. fix stack instructions 2014-05-06 12:42:43 +03:00
Torsten Ruger
22b5117c8b getting a _start and _exit, just missing the actual code 2014-05-06 00:12:04 +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
99da6f5be3 gets rid of conversion approach, ast compiles 2014-05-05 10:13:49 +03:00
Torsten Ruger
c67ee7f6f3 extracted ast classes to own files 2014-05-05 10:02:02 +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
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
1c86ecb84e copied asm here so that stays working while i break (an) arm 2014-05-03 15:13:15 +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
90e2658bc0 small poslish 2014-04-29 16:22:12 +03:00
Torsten Ruger
7dfde45373 fixes missing string tests and expression/transformation 2014-04-29 11:17:19 +03:00
Torsten Ruger
874f080ba2 Semi random code for the next step 2014-04-28 22:08:09 +03:00
Torsten Ruger
129f9f5c57 space and order fiddling (gets assignments to work better) 2014-04-28 22:07:13 +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
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
18c2abfd2b some docs 2014-04-27 21:51:06 +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
583e6f0c9f add keyword and operators as seperate parser modules 2014-04-27 21:12:24 +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
032758db8b using new modules 2014-04-27 18:13:10 +03:00
Torsten Ruger
d8f228da11 more basic types (untested) 2014-04-27 18:12:32 +03:00
Torsten Ruger
4e4099e552 adds tokens as own parser module 2014-04-27 18:12:04 +03:00
Torsten Ruger
f628c67188 starting to deompose the parser 2014-04-27 16:30:32 +03:00
Torsten Ruger
d72c9a3bb0 fixed tests (namespacing) and finally created a test_all 2014-04-27 15:44:34 +03:00
Torsten Ruger
436a5dac5a created own directory for parser 2014-04-27 15:38:07 +03:00
Torsten Ruger
b1203363d4 vendored parslet, deemed stable enough and better without dependency 2014-04-27 15:34:35 +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
7af46d210b rename label to block and assembler to program 2014-04-25 18:36:40 +03:00
Torsten Ruger
75873ea18e cleaned intruction initialization and fixed a test accidentally (was schoddy code) 2014-04-25 15:07:47 +03:00
Torsten Ruger
eca9e66f73 renamed instruciton tools to arm machine 2014-04-25 13:34:10 +03:00
Torsten Ruger
f1a7993b47 bit of renaming , cleaning and documentation 2014-04-25 13:29:12 +03:00
Torsten Ruger
6261451c4b adds code class as base for anything that can be assembled 2014-04-25 12:28:23 +03:00
Torsten Ruger
d08e6702f0 removes the asm from assemble signature (not used) 2014-04-25 11:56:53 +03:00
Torsten Ruger
3f316cda63 fixed root 2014-04-24 21:02:27 +03:00
Torsten Ruger
f39eef38a1 complier was deemed redundant, as the java stuff 2014-04-24 21:02:00 +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
f97205300f cleaned up BIG time, instruction hierachy, better names, DRYd up a lot 2014-04-23 23:40:35 +03:00
Torsten Ruger
c98547137b first step to overloading assemble 2014-04-23 19:59:55 +03:00
Torsten Ruger
b2f45d9f9c move a function out of the builder to tools for clarity 2014-04-23 14:02:58 +03:00
Torsten Ruger
ced82628d4 forgot a puts 2014-04-23 14:02:39 +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
bc60e1d265 actually remoe the unused relocation stuff 2014-04-23 13:11:48 +03:00
Torsten Ruger
89a92f80c9 merged arm_assembler and assmbler (who are we kidding, right) 2014-04-23 13:02:02 +03:00
Torsten Ruger
f4299de120 finally cleaned up those pestey parse errors 2014-04-23 12:58:59 +03:00
Torsten Ruger
ceefa05b2f removed arm subdirectory 2014-04-23 12:51:09 +03:00
Torsten Ruger
1423b8a845 renove Node class as it wasnt doing anything 2014-04-23 12:38:38 +03:00
Torsten Ruger
8955cf31da really remove externs 2014-04-23 11:14:25 +03:00
Torsten Ruger
dc9bba58e2 move unused addr table out of the way 2014-04-23 11:09:38 +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
7ff8fa8802 a little renaming and moving around of constants 2014-04-22 23:35:15 +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
40a6437893 most the relocation stuff is going 2014-04-21 21:38:39 +03:00
Torsten Ruger
f724883691 adds position to instruction 2014-04-21 21:21:45 +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
5237ff9e40 move towards simpler relocation model 2014-04-21 20:59:48 +03:00
Torsten Ruger
1b8f15a3fc rename write to assembler for builders 2014-04-21 20:51:13 +03:00
Torsten Ruger
82ea5730f3 math node went too, more clarity 2014-04-21 17:39:10 +03:00
Torsten Ruger
c87967c95d removes ArgNode which just served to make long names (unused) 2014-04-21 17:35:38 +03:00
Torsten Ruger
fc3f5d5402 remove some of the node mess 2014-04-21 17:34:24 +03:00
Torsten Ruger
ff38bde44e clean and work on labels 2014-04-21 17:27:05 +03:00
Torsten Ruger
49ee2af8af slightly better name for builder 2014-04-21 00:28:26 +03:00
Torsten Ruger
98a197a0ca better builder names and remove the funny make syntax 2014-04-21 00:07:33 +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
6226521abb figuring relocations 2014-04-20 02:28:57 +03:00
Torsten Ruger
4e075e3a81 ast was used in parsing 2014-04-20 02:28:15 +03:00
Torsten Ruger
091a93f368 fix names and requires to get some elf out again (still crashes though) 2014-04-19 23:25:46 +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
4bb74a0de2 fix block initialization style by adding init methods 2014-04-18 19:19:57 +03:00
Torsten Ruger
529f109171 found and fixed a real bug 2014-04-18 16:04:14 +03:00
Torsten Ruger
4fa00371e5 remove lines and columns 2014-04-18 15:58:42 +03:00
Torsten Ruger
5d9c4323bb test no 3 2014-04-17 15:35:55 +03:00
Torsten Ruger
f38c94d8e9 add accessor for the s instruction postfix (affecting status flag) 2014-04-17 12:54:37 +03:00
Torsten Ruger
a7af1a4664 small doc 2014-04-16 12:45:36 +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
69b0f7a0e3 lift the nodes out of the parser 2014-04-16 12:03:39 +03:00
Torsten Ruger
5bd4be313c lift label out of the code generator 2014-04-16 12:02:28 +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