Chromium Code Reviews| Index: tools/json_schema_compiler/json_schema.py |
| diff --git a/tools/json_schema_compiler/json_schema.py b/tools/json_schema_compiler/json_schema.py |
| index 370bc9b3cb35b917fbbe70f712a3d3908c207ce4..d0342b60fe8f66204768dea0b1ae2e7232fc73d2 100644 |
| --- a/tools/json_schema_compiler/json_schema.py |
| +++ b/tools/json_schema_compiler/json_schema.py |
| @@ -9,22 +9,28 @@ import sys |
| import json_parse |
| import schema_util |
| -def DeleteNocompileNodes(item): |
| - def HasNocompile(thing): |
| - return json_parse.IsDict(thing) and thing.get('nocompile', False) |
| +# The text to look for, that means "do not generate" for each language. |
| +nocompile_text = { |
| + 'dart': 'nodart', |
| + 'c++': 'nocompile' |
| +} |
| + |
| +def DeleteNocompileNodes(item, lang='c++'): |
|
not at google - send to devlin
2013/01/25 18:14:33
how about renaming this to DeleteNodes(item, key)
sashab
2013/01/29 08:27:13
Done; moved this language-specific decision to com
|
| + def HasNocompile(thing, lang): |
| + return json_parse.IsDict(thing) and thing.get(nocompile_text[lang], False) |
| if json_parse.IsDict(item): |
| toDelete = [] |
| for key, value in item.items(): |
| - if HasNocompile(value): |
| + if HasNocompile(value, lang): |
| toDelete.append(key) |
| else: |
| - DeleteNocompileNodes(value) |
| + DeleteNocompileNodes(value, lang) |
| for key in toDelete: |
| del item[key] |
| elif type(item) == list: |
| - item[:] = [DeleteNocompileNodes(thing) |
| - for thing in item if not HasNocompile(thing)] |
| + item[:] = [DeleteNocompileNodes(thing, lang) |
| + for thing in item if not HasNocompile(thing, lang)] |
| return item |