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 |