Commit graph

12 commits

Author SHA1 Message Date
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
785f229eec [CHANGED] subtraction is now implemented it terms of ADD. 2009-05-15 09:37:44 -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