* 0.2.0
* We now have some basic functionality for running a Rack webserver.
... to be filled in..!
* 0.1.10
* Transforms an oo variable variable assignment
# Whats a variable variable?
#
# In Php, you can do this:
#
# $var = "foo";
# $obj->$var = "bar";
#
# and this
#
# $obj->foo == "bar"
#
# would be true
#
* Transforms a while loop
* Tranforms Php's destructuring bind
# http://us3.php.net/list
* Ruby2Ruby consumed a handful of files from PhpNuke
without complaining..
* 0.1.9
* Transformed a switch-case statement
* Transformed Php's error guard, e.g. (@do_something_dangerous();)
into Ruby's error guard, e.g. do_something_dangerous() rescue nil
* 0.1.8
* Transformed entire class definition
* 0.1.7
* Many of the stray :block nodes that I was encountering
have now been fixed.. This let's it handle multiple
if statements in one function body
* 0.1.6
* Foreach now transforms to an each loop
* Array lookup
* Single statement function
* If-else with nested if
* 0.1.5
* Passes tests for the conditional constructs:
* If statements
* If else statements
* Dangling else statements
* Basic boolean operators. Associativity is not quite
correct, but will be fixed later.
* String concatenation
* Array appending
* Increment (++) and decrement (--)
* For loops are unrolled to while loops with setup and update operations.
I might want to change this and use that fancy new Ruby macro
library. I'm wondering how important it is for the PHP and Ruby code
to look similiar to each other. This requires a bit more thought.
* 0.1.4
* Changed + and - to left associativity, fixing the problem
mentioned above
* Transformed function header with assigments, e.g.:
add_column(&$ret, $attributes = array())
into
[:block,
[:args, :ret, :attributes,
[:block,
[:lasgn, :attributes,
[:fcall, :array]]]]]
The formal parameters of a function/method is probably
one of Ruby's more complicated ASTs
* 0.1.3
* Transformed a slightly more complex function definition
The operator associativity is not correct. It current is
parsing:
"$a + $b + $c"
to
(a + (b + c))
when it should be:
((a + b) + c)
* 0.1.2
* Transformed simple function definition to ParseTree's
* 0.1.1
* Transformed simple if statement to ParseTree's AST
* 0.1
* Transformed "hello world" to ParseTree's AST