Commit Graph

1371 Commits

Author SHA1 Message Date
Torsten Ruger f8b3fa1877 creates methods from method statement 2017-04-08 17:22:53 +03:00
Torsten Ruger b0e3978b15 starts on local variable collection
500 tests (in under 2 seconds), yippie
2017-04-08 12:28:31 +03:00
Torsten Ruger ea41f9cae9 fixes ivar collection 2017-04-08 12:18:10 +03:00
Torsten Ruger d00fbb233e adds ivar collection with tests 2017-04-08 12:11:52 +03:00
Torsten Ruger 8942f42310 adds collect for the statements 2017-04-08 12:10:42 +03:00
Torsten Ruger 0fe5685ad4 makes own file for statement base class
adds some functionality to it
moves the requires from compiler there
2017-04-08 12:09:25 +03:00
Torsten Ruger db8f99409b move vool statements into own directory
also tests for guard to work
2017-04-06 19:11:11 +03:00
Torsten Ruger 3fe286b5ed enforces data encapsulation in vool tree
gets rid of attraccessor
2017-04-06 16:06:51 +03:00
Torsten Ruger b9caad937a rename bools compiler to ruby_compiler
as that is what is does, compile ruby strings into vool st
2017-04-06 15:36:41 +03:00
Torsten Ruger 3683aa8976 vool method fix 2017-04-06 14:02:18 +03:00
Torsten Ruger 488af5b8f7 small cleanup 2017-04-05 14:03:48 +03:00
Torsten Ruger 4de57dbe4d start a vool readme 2017-04-05 14:02:34 +03:00
Torsten Ruger de8b48975b adds logical statements to vool 2017-04-04 18:35:15 +03:00
Torsten Ruger 91fdfb0c1e remove unused classes and cases from vool 2017-04-04 18:21:11 +03:00
Torsten Ruger d6e346d9c0 adds instance assignment to vool 2017-04-04 18:10:28 +03:00
Torsten Ruger 73964aeb6e adds modules to vool 2017-04-04 18:00:21 +03:00
Torsten Ruger 5f70067fa0 adds instance and class variables to vool 2017-04-04 14:04:35 +03:00
Torsten Ruger 83ab197d03 fix and test vool return statement 2017-04-04 10:42:20 +03:00
Torsten Ruger c545bfdfc6 adds while statement to vool 2017-04-03 11:49:21 +03:00
Torsten Ruger f343ad934c a start on conditionals 2017-04-02 19:12:42 +03:00
Torsten Ruger 443fd13980 adds super
with and without args
current thinking is to fill the name of the method later as we carry no
context currently, but this may change
2017-04-02 18:42:52 +03:00
Torsten Ruger ac7b9138ff bit of cleaning 2017-04-02 18:25:30 +03:00
Torsten Ruger 539ab692a3 add scope and kwbegin
scope is just a list of statements
2017-04-02 13:24:09 +03:00
Torsten Ruger 27e4e9f501 add assignment and self 2017-04-02 12:59:07 +03:00
Torsten Ruger d62e996f7c add send statement 2017-04-02 12:57:05 +03:00
Torsten Ruger 93f9d16209 add vool hashes 2017-04-02 10:57:39 +03:00
Torsten Ruger d5af6dad42 adds arrays to vool
also symbols and some cleanup
2017-04-02 10:43:22 +03:00
Torsten Ruger 8f03d98330 adds basic values (bools ints strings) 2017-04-02 09:44:56 +03:00
Torsten Ruger b341c722fd copied stash over 2017-04-01 21:28:57 +03:00
Torsten Ruger 34fdf7b2cd adds method_statement to vool 2017-04-01 16:27:32 +03:00
Torsten Ruger 295782d9e6 start on vool, the virtual oo language
start with syntax tree, not linked into existing code until finished
2017-04-01 15:57:39 +03:00
Torsten Ruger aa79e41d1c rename register to risc
seems to fit the layer much better as we really have a very reduced
instruction set
2017-01-19 09:02:29 +02:00
Torsten Ruger da5823a1a0 move parfait up one, as per its module structure 2017-01-18 20:09:43 +02:00
Torsten Ruger f0c0128b38 improve to_code a bit
variable names mainly, some description
2017-01-18 12:24:15 +02:00
Torsten Ruger a39fc76a12 create vm file to require vm parts 2017-01-18 08:45:42 +02:00
Torsten Ruger 7abd777d05 rename melon to rubyx
melon was still from the salama days and rubyx describes it much better
2017-01-18 00:05:36 +02:00
Torsten Ruger 54b8a9f6de minor 2017-01-17 21:25:18 +02:00
Torsten Ruger 2a57a59c8e do not create already existing classes
wrong logic, also messes with parfait
2017-01-17 21:25:02 +02:00
Torsten Ruger cd211f970f make method creation class methods in MethodCompiler
and pass the wish to use main explicitly, which is really a test
feature
2017-01-17 21:23:58 +02:00
Torsten Ruger 7223ca9a1c clean and refactor 2017-01-16 17:44:34 +02:00
Torsten Ruger 4ba182a822 rename compilers to passses 2017-01-16 17:24:32 +02:00
Torsten Ruger 5f7ea08a43 Splitting NameExpression into three, Known,Local,Argument
The decision which to use can be made higher up, in ruby, and so it
should.
2017-01-16 09:33:49 +02:00
Torsten Ruger 96f19d18c0 starting on ruby send 2017-01-15 20:30:47 +02:00
Torsten Ruger cf0a123866 boot_function test 2017-01-15 20:04:52 +02:00
Torsten Ruger fc96f1d2da checking classes don't get created twice 2017-01-15 16:59:29 +02:00
Torsten Ruger 83f2459a8a implement ivar assignment 2017-01-15 14:44:23 +02:00
Torsten Ruger 680fc7ecce minor fixes 2017-01-15 14:44:11 +02:00
Torsten Ruger 85eec2f3cb adding instance variables to class 2017-01-15 14:21:57 +02:00
Torsten Ruger f9824079d6 splitting assignment into three, for args, locals and ivars
The decision on which is moving up to the ruby  compiler, so it can at
the same time emit the correct assignment form.
Just another example of moving away from a language and to an
intermediate form (that has no language equivalent)
2017-01-15 13:01:28 +02:00
Torsten Ruger a0cf5bffc0 small rename to align has_locals and has_arguments
for semantic and code unification
2017-01-15 12:59:03 +02:00