describe('AST', function() {
	var ast = new AST(new Lexer());

	it('should compile a call expression', function() {
		expect(ast.ast('callThisFunction()')).toEqual({
		  "type": "Program",
		  "body": [
		    {
		      "type": "ExpressionStatement",
		      "expression": {
		        "type": "CallExpression",
		        "callee": {
		          "type": "Identifier",
		          "name": "callThisFunction"
		        },
		        "arguments": []
		      }
		    }
		  ]
		});
	});

	it('should compile a simple expression', function() {
		expect(ast.ast('a.b.c.d')).toEqual({
	    "type": "Program",
	    "body": [{
        "type": "ExpressionStatement",
        "expression": {
          "type": "MemberExpression",
          "computed": false,
          "object": {
            "type": "MemberExpression",
            "computed": false,
            "object": {
              "type": "MemberExpression",
              "computed": false,
              "object": {
                "type": "Identifier",
                "name": "a"
              },
              "property": {
                "type": "Identifier",
                "name": "b"
              }
            },
            "property": {
              "type": "Identifier",
              "name": "c"
            }
          },
          "property": {
            "type": "Identifier",
            "name": "d"
          }
        }
	    }]
		});
	});
});

@@ -469,24 +469,511 @@
 %09%09%7D);%0A%09%7D);%0A%0A
+  it('should compile assignment expressions', function() %7B%0A    expect(ast.ast('a = 1;')).toEqual(%7B%0A      %22type%22: %22Program%22,%0A      %22body%22: %5B%7B%0A        %22type%22: %22ExpressionStatement%22,%0A        %22expression%22: %7B%0A          %22type%22: %22AssignmentExpression%22,%0A          %22operator%22: %22=%22,%0A          %22left%22: %7B%0A            %22type%22: %22Identifier%22,%0A            %22name%22: %22a%22%0A          %7D,%0A          %22right%22: %7B%0A            %22type%22: %22Literal%22,%0A            %22value%22: '1'%0A          %7D%0A        %7D%0A      %7D%5D%0A    %7D);%0A  %7D);%0A%0A
 %09it('should 

test case for a simple assignment expression