sjs
e20e1399bd
[NEW] some notes on x86 encoding.
2009-05-19 17:04:18 -07:00
sjs
3f070cd0db
[NEW] Emit x86 code for the mov instruction. Barely works 1/2 the time.
...
The supporting infrastructure includes a C program for reading a
binary blob of x86 code and wrapping it in an ELF executable for Linux
x86. Unsure about getting the data for other sections of the binary
besides .text.
2009-05-19 17:01:14 -07:00
sjs
221efca282
[NEW] while, until, repeat, and break keywords.
...
While and until loops work as in C and Ruby. Repeat loops infinitely
(or until a break is encountered). Break is used to break out of the
innermost loop construct.
2009-05-17 08:13:43 -07:00
sjs
e547804711
[CHANGED] only generate required labels in if-else
2009-05-16 15:40:43 -07:00
sjs
0431cd60f3
[CHANGED] if statement supports else clause
2009-05-16 15:34:14 -07:00
sjs
f5678a312e
[NEW] Rudimentary if statement. No else yet.
2009-05-16 14:49:26 -07:00
sjs
cc83fdfabc
[NEW] Added the bare-bones interpreter with i/o primitives.
2009-05-15 09:38:16 -07:00
sjs
785f229eec
[CHANGED] subtraction is now implemented it terms of ADD.
2009-05-15 09:37:44 -07:00
sjs
e7a6162e7b
added .gitignore
2009-05-14 13:21:07 -07:00
sjs
bd0408fa2f
[NEW] ignore most whitespace. Fixed division (use cdq before idiv).
2009-05-14 01:12:48 -07:00
sjs
c008ed007a
[NEW] Parse numbers of any length, instead of only one digit.
2009-05-13 23:29:52 -07:00
sjs
42ca4451a8
[NEW] Parse identifiers of any length, instead of only one char.
2009-05-13 23:27:47 -07:00
sjs
268c6f6c29
[NEW] Parse assignment statements. Added template and test code.
2009-05-13 23:20:51 -07:00
sjs
ff2b68a8f2
[NEW] Expression grouping with parens. (end of part 2)
2009-05-13 21:16:51 -07:00
sjs
af95bd9dec
Initial commit of a compiler in Ruby.
2009-05-13 20:56:46 -07:00