| Index: third_party/chrome/tools/json_comment_eater.py
|
| diff --git a/third_party/chrome/tools/json_comment_eater.py b/third_party/chrome/tools/json_comment_eater.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1b1e07a842a26d2b0da758d190b4dcfe253c87d1
|
| --- /dev/null
|
| +++ b/third_party/chrome/tools/json_comment_eater.py
|
| @@ -0,0 +1,40 @@
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +""" Utility to remove comments from JSON files so that they can be parsed by
|
| +json.loads."""
|
| +
|
| +def _ReadString(input, start, output):
|
| + output.append('"')
|
| + in_escape = False
|
| + for pos in xrange(start, len(input)):
|
| + output.append(input[pos])
|
| + if in_escape:
|
| + in_escape = False
|
| + else:
|
| + if input[pos] == '\\':
|
| + in_escape = True
|
| + elif input[pos] == '"':
|
| + return pos + 1
|
| + return pos
|
| +
|
| +def _ReadComment(input, start, output):
|
| + for pos in xrange(start, len(input)):
|
| + if input[pos] in ['\r', '\n']:
|
| + output.append(input[pos])
|
| + return pos + 1
|
| + return pos
|
| +
|
| +def Nom(input):
|
| + output = []
|
| + pos = 0
|
| + while pos < len(input):
|
| + if input[pos] == '"':
|
| + pos = _ReadString(input, pos + 1, output)
|
| + elif input[pos:pos+2] == '//':
|
| + pos = _ReadComment(input, pos + 2, output)
|
| + else:
|
| + output.append(input[pos])
|
| + pos += 1
|
| + return ''.join(output)
|
|
|