Modify BuildFileToJsonParser to use Gson's streaming parser.

Instead of using our hand-tuned streaming parser, use the default one in Gson.
This also enables us to parse arbitrary JSON structures instead of only arrays
of arrays of primitives.

This changes `BuildFileToJsonParser` to take `isServerMode` as a constructor param
so that we are explicit. Despite what the comment on `BuildFileToJsonParser#isServerMode`
says, I don't believe that we can use "regular mode" going forward.
That is, because the output from `` includes an `__includes` entry,
we cannot read a single JSON object in isolation because there may be context
from the `__includes` entry that it needs.

Test Plan: Sandcastle builds.
5 files changed
tree: 6251d7a5d5970009f1bc69a98e9987d49e382fc9
  1. .buckconfig
  2. .classpath
  3. .gitignore
  4. .idea/
  5. .project
  6. .travis.yml
  7. DEFS
  10. bin/
  11. buck.iml
  12. build.xml
  13. config/
  14. docs/
  15. lib/
  16. plugin/
  17. pmd/
  18. scripts/
  19. src/
  20. test/
  21. testdata/
  22. third-party/


Buck is an Android build tool. To see what Buck can do for you, check out the documentation at

Build Status


To build Buck, run the following:

git clone
cd buck
./bin/buck --help


Apache License 2.0