)]}'
{
  "commit": "04d7d22bb835408a82600244e09b9dcacbc0fa11",
  "tree": "0285bda63c691a3665bc7b781fdd065fa5151862",
  "parents": [
    "355989bcfce8e79ad98b35bd7fd0d68ec0b2d8da"
  ],
  "author": {
    "name": "alokp@chromium.org",
    "email": "alokp@chromium.org@736b8ea6-26fd-11df-bfd4-992fa37f6226",
    "time": "Wed May 16 19:24:07 2012 +0000"
  },
  "committer": {
    "name": "alokp@chromium.org",
    "email": "alokp@chromium.org@736b8ea6-26fd-11df-bfd4-992fa37f6226",
    "time": "Wed May 16 19:24:07 2012 +0000"
  },
  "message": "Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -\u003e MacroExpander -\u003e DirectiveHandler -\u003e MacroExpander -\u003e DefinedFilter -\u003e Tokenizer. This chain dynamically changes depending on the current context.\n\nAlso added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work.\nReview URL: https://codereview.appspot.com/6203060\n\ngit-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "531493686635b3469914fb64d12fce3c8ec04443",
      "old_mode": 33188,
      "old_path": "src/build_angle.gyp",
      "new_id": "8933709891b9968d305fc4e5361ecdaf79c7e7d1",
      "new_mode": 33188,
      "new_path": "src/build_angle.gyp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a76a9814529bffd2846926dcc8a1a1d36e7bcdde",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/DirectiveParser.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "46189e7438d46eefac08a01e90493475928961f3",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/DirectiveParser.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c45e1ac8dfd6906e7846a2380c35421d9f05c3c4",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/ExpressionParser.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3573135750b4e1ea7963e0c931650e330f33000d",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/ExpressionParser.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "390d83e20a965a5647ed85c0381a09d80b1fed20",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/ExpressionParser.y"
    },
    {
      "type": "delete",
      "old_id": "6f0b8069eeb194b65aeadfd439417de277604d16",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/Lexer.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b469cea9d5e7e7c5d097ef80d972ee8efaa2d931",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/Lexer.h",
      "new_id": "1154f1605a3e9defb92930b2e8ba70bc414037f8",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Lexer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3829ef2aae80477e9c4eb11d359a3f16ba82efff",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/MacroExpander.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "56a9697859caddce0374863237c57925b0c57681",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/MacroExpander.h"
    },
    {
      "type": "modify",
      "old_id": "73ff978fd5d3172802520a5479608ac27049d392",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/Preprocessor.cpp",
      "new_id": "3c2285882ed80aa4f5273f6bf1650e036510f9cf",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Preprocessor.cpp"
    },
    {
      "type": "modify",
      "old_id": "d1c470e96a134f7de91735fdb31c310801a3a320",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/Preprocessor.h",
      "new_id": "a3db7fe260612c6576f3b5bca84b4c89f76bbd28",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Preprocessor.h"
    },
    {
      "type": "modify",
      "old_id": "9f9a19205eb62f5da3bc9b2f4b24f9148730a018",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/Token.h",
      "new_id": "5c08f1ea0658258b4efb26206ead6dfe419a42b6",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Token.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ebd1e75d53a7e0f1ff07415b797004df4ab27df8",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Tokenizer.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e76aa97184d686d8565f3f1845da6063f69ee43",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Tokenizer.h"
    },
    {
      "type": "rename",
      "old_id": "7934fa493b6ce838f35afccc863bece50c479b09",
      "old_mode": 33188,
      "old_path": "src/compiler/preprocessor/new/pp.l",
      "new_id": "070463c227c5f1aafe2117c25f6662949fd6d6b5",
      "new_mode": 33188,
      "new_path": "src/compiler/preprocessor/new/Tokenizer.l",
      "score": 78
    },
    {
      "type": "modify",
      "old_id": "5b32f71ac2af5f494e5d0b434451821beec06362",
      "old_mode": 33261,
      "old_path": "src/compiler/preprocessor/new/generate_parser.sh",
      "new_id": "e9c70b13b53503c0769fa47df08b83494b59a818",
      "new_mode": 33261,
      "new_path": "src/compiler/preprocessor/new/generate_parser.sh"
    }
  ]
}
