<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/compiler/reia_compiler.erl</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,4 +3,5 @@
 -record(float,   {line, value}).
 
 % Operators
--record(op,      {line, type, val1, val2}).
\ No newline at end of file
+-record(unary_op,  {line, type, val}).
+-record(binary_op, {line, type, val1, val2}).
\ No newline at end of file</diff>
      <filename>src/compiler/reia_nodes.hrl</filename>
    </modified>
    <modified>
      <diff>@@ -39,16 +39,16 @@ expr_list -&gt; expr eol expr_list : ['$1'|'$3'].
 
 expr -&gt; add_expr : '$1'.
 
-add_expr -&gt; mult_expr add_op add_expr : {op, line('$1'), op('$2'), '$1', '$3'}.
+add_expr -&gt; mult_expr add_op add_expr :   #binary_op{line=line('$1'), type=op('$2'), val1='$1', val2='$3'}.
 add_expr -&gt; mult_expr : '$1'.
 
-mult_expr -&gt; pow_expr mult_op mult_expr : {op, line('$1'), op('$2'), '$1', '$3'}.
+mult_expr -&gt; pow_expr mult_op mult_expr : #binary_op{line=line('$1'), type=op('$2'), val1='$1', val2='$3'}.
 mult_expr -&gt; pow_expr : '$1'.
 
-pow_expr -&gt; unary_expr pow_op pow_expr : {op, line('$1'), op('$2'), '$1', '$3'}.
+pow_expr -&gt; unary_expr pow_op pow_expr :  #binary_op{line=line('$1'), type=op('$2'), val1='$1', val2='$3'}.
 pow_expr -&gt; unary_expr : '$1'.
 
-unary_expr -&gt; unary_op unary_expr : {op, line('$1'), op('$1'), '$2'}.
+unary_expr -&gt; unary_op unary_expr : #unary_op{line=line('$1'), type=op('$1'), val='$2'}.
 unary_expr -&gt; terminal_expr : '$1'.
 
 % Terminals</diff>
      <filename>src/compiler/reia_parse.yrl</filename>
    </modified>
    <modified>
      <diff>@@ -1,22 +1,21 @@
 %
 % reia_r2e: Reia to Erlang translation layer of the compiler
 % Copyright (C)2009 Tony Arcieri
-% 
+%
 % Redistribution is permitted under the MIT license.  See LICENSE for details.
 %
 
 -module(reia_r2e).
 -export([transform/1]).
 -include(&quot;reia_nodes.hrl&quot;).
-  
+
 %% Numerical types
-transform(Ast = {integer, _, _}) -&gt; Ast;
+transform(Exprs = #integer{}) -&gt; Exprs;
+transform(Exprs = #float{})   -&gt; Exprs;
   
 %% Operators
-transform(#op{line=Line, type=Type, val1=Val1, val2=Val2}) -&gt;
-  reia_operators:transform(#op{
-    line=Line, 
-    type=Type, 
-    val1=transform(Val1), 
-    val2=transform(Val2)
-  }).
\ No newline at end of file
+transform(#unary_op{line=Line, type=Type, val=Val}) -&gt;
+  {op, Line, Type, Val};
+
+transform(#binary_op{line=Line, type=Type, val1=Val1, val2=Val2}) -&gt;
+  {op, Line, Type, Val1, Val2}.
\ No newline at end of file</diff>
      <filename>src/compiler/reia_r2e.erl</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@ string(Str, Binding) -&gt;
 % Evaluate the given set of expressions
 exprs(Expressions, Binding) -&gt;
 	io:format(&quot;Input Code: ~p~n&quot;, [Expressions]),
-  {ok, Module} = reia_bytecode:compile(nonce_filename(), Expressions),
+  {ok, Module} = reia_compiler:compile(nonce_filename(), Expressions),
   {ok, Name, Value} = reia_bytecode:load(Module),
 
 	% FIXME: In the future it's possible eval will create things which persist</diff>
      <filename>src/core/reia_eval.erl</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8cb0e6ab8a50b40d96e90e53220e771246897784</id>
    </parent>
  </parents>
  <author>
    <name>Tony Arcieri</name>
    <email>tony@medioh.com</email>
  </author>
  <url>http://github.com/tarcieri/reia/commit/8291a434ea54cfb5aa2fc5f867939904e82b3be2</url>
  <id>8291a434ea54cfb5aa2fc5f867939904e82b3be2</id>
  <committed-date>2009-10-27T21:20:03-07:00</committed-date>
  <authored-date>2009-10-27T21:20:03-07:00</authored-date>
  <message>Initial reia_compiler module, and factoring of unary and binary ops into separate nodes</message>
  <tree>6443a52e9622c578c1daba52f74e042c00f9ba9b</tree>
  <committer>
    <name>Tony Arcieri</name>
    <email>tony@medioh.com</email>
  </committer>
</commit>
