Update Homebrew instructions to include repository details
Merge pull request #46 from Daniel15/patch-1

Update Homebrew instructions to include repository details
XHP requires GCC to build

Similar change to 8aa2d9fa6bf3a114e113ba5c554181279545fb2f
Update INSTALL
Merge pull request #47 from Daniel15/patch-2

Update INSTALL Brew instructions - XHP requires GCC to build
Bugfix ?

Shouldn't it be switch to HTML , when asp-tag + end %> ? it switches to PHP , but it's already PHP. 

compare to 
<PHP> '?>' {
      state = HTML;
      continue;
    }

where it switches to HTML in a similar condition. 

Maybe nobody tested asp-tags, seams to be broken in master.
Update INSTALL

Added information about forcing Homebrew to use Apple's GCC 4.2 compiler.
Merge pull request #51 from ayurmedia/patch-1

Good catch.
Rename :x:base to :xhp

Summary:
We did this internally a while ago, and some tooling assumes
that `:xhp` is the root of the inheritance heirarchy. Rename externally
as well, for maximum compatibility between said tools and external code.
Leave a shim around as `:x:base` as to try to be minimally invasive to
existing code.

Test Plan:
`git grep x:base` shows only the shim remaining. Run this code,
see no errors:

{P7197267}

Reviewers: sparker

Reviewed By: sparker

CC: glevi, ptarjan, joelm

Differential Revision: https://phabricator.fb.com/D1217524

Task ID: 3911343
Support Arbitrary Array Attribute Declarations

This adds support for an unbound level of array type descriptors.
Basically, you can specify your array attributes like this now:

`
attribute
  array a,
  array<int> b,
  array<float> c,
  array<string> d,
  array<bool> e,
  array<array> f,
  array<callable> g,
  array<Foo> h,
  array<string => int> i,
  array<int => string> j,
  array<array<string => int>> k;
`

Just something to remember, PHP type-casts numeric string keys into
integers. So array(‘123’ => 123) will fail an attribute looking for an
array with string keys. Because PHP.
Fixing Use Statement Spacing

`use X as Y` was becoming `use XasY`.
Prevent __toString() not handling all exceptions

There were cases where XHP could throw exceptions when type-casting to
a string, which PHP doesn’t like. Wrapping everything in try/catch
instead of just the private validation calls.
Remove references to FB's HTML() function

When Facebook was just starting to use XHP and transitioning over all
of its HTML strings, it needed a way to migrate non-upgraded code to
work with XHP. The HTML() function was a way to basically just bypass
XHP validation and render strings as HTML. We don’t need to use this
anymore and it never should have been in the open source version
anyways.
Update HTML Spec

Updated to the latest HTML 5.1 spec as of February 4, 2014.
http://www.w3.org/TR/2014/WD-html51-20140204/
Add "mixed" attribute type

This is synonymous with “var” and is just to match the Hack keyword.
Make get(First|Last)Children public

It’s a little short-sided to think that these should not be available
outside of XHP objects themselves.
Fix missed cases

Forgot to make the abstract versions public too.
Use the + operator instead of array_merge()

The + operator is noticeably (on a large scale) faster than
array_merge() and behaves the same way with string keys.
Correct order of + operator

Forgot that the order is reversed when using + as opposed to array_merge
Add Contexts to XHP

This introduces the idea of contexts, which is basically key/value
pairs that get propagated to all children and rendered roots. The
primary use case for something like this is when you want a
higher-level component to control the context in which a descendant XHP
will belong. For instance, say you have a blog post with comments and
by default you want all comments visible on the permalink, but only the
two most recent comments visible when viewed from a feed. You can set a
context at the page-level and your comments XHP object can look for it
to render accordingly.