Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(499)

Side by Side Diff: third_party/google_input_tools/builder.py

Issue 701603002: Update to google-input-tools version 1.0.5.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import argparse 6 import argparse
7 import json 7 import json
8 import os 8 import os
9 import re 9 import re
10 import sys 10 import sys
11 11
12 _BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)' 12 _BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
13 require_regex = re.compile(_BASE_REGEX_STRING % 'require') 13 require_regex = re.compile(_BASE_REGEX_STRING % 'require')
14 provide_regex = re.compile(_BASE_REGEX_STRING % 'provide') 14 provide_regex = re.compile(_BASE_REGEX_STRING % 'provide')
15 15
16 base = os.path.join('third_party',
17 'closure_library',
18 'closure',
19 'goog',
20 'base.js')
16 21
17 def ProcessFile(filename): 22 def ProcessFile(filename):
18 """Extracts provided and required namespaces. 23 """Extracts provided and required namespaces.
19 24
20 Description: 25 Description:
21 Scans Javascript file for provided and required namespaces. 26 Scans Javascript file for provided and required namespaces.
22 27
23 Args: 28 Args:
24 filename: name of the file to process. 29 filename: name of the file to process.
25 30
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 return 92 return
88 93
89 # Export requirements before file. 94 # Export requirements before file.
90 if source_filename in requirements: 95 if source_filename in requirements:
91 for namespace in requirements[source_filename]: 96 for namespace in requirements[source_filename]:
92 if namespace in providers: 97 if namespace in providers:
93 dependency = providers[namespace] 98 dependency = providers[namespace]
94 if dependency: 99 if dependency:
95 Export(target_file, dependency, providers, requirements, processed) 100 Export(target_file, dependency, providers, requirements, processed)
96 101
102 processed.add(source_filename)
103
97 # Export file 104 # Export file
98 processed.add(source_filename)
99 for name in providers: 105 for name in providers:
100 if providers[name] == source_filename: 106 if providers[name] == source_filename:
101 target_file.write('// %s%s' % (name, os.linesep)) 107 target_file.write('// %s%s' % (name, os.linesep))
102 source_file = open(source_filename, 'r') 108 source_file = open(source_filename, 'r')
103 try: 109 try:
104 comment_block = False 110 comment_block = False
105 for line in source_file: 111 for line in source_file:
106 # Skip require and provide statements. 112 # Skip require statements.
107 if (not re.match(require_regex, line) and not 113 if (not re.match(require_regex, line)):
108 re.match(provide_regex, line)):
109 formatted = line.rstrip() 114 formatted = line.rstrip()
110 if comment_block: 115 if comment_block:
111 # Scan for trailing */ in multi-line comment. 116 # Scan for trailing */ in multi-line comment.
112 index = formatted.find('*/') 117 index = formatted.find('*/')
113 if index >= 0: 118 if index >= 0:
114 formatted = formatted[index + 2:] 119 formatted = formatted[index + 2:]
115 comment_block = False 120 comment_block = False
116 else: 121 else:
117 formatted = '' 122 formatted = ''
118 # Remove // style comments. 123 # Remove full-line // style comments.
119 index = formatted.find('//') 124 if formatted.lstrip().startswith('//'):
120 if index >= 0: 125 formatted = '';
121 formatted = formatted[:index]
122 # Remove /* */ style comments. 126 # Remove /* */ style comments.
123 start_comment = formatted.find('/*') 127 start_comment = formatted.find('/*')
124 end_comment = formatted.find('*/') 128 end_comment = formatted.find('*/')
125 while start_comment >= 0: 129 while start_comment >= 0:
126 if end_comment > start_comment: 130 if end_comment > start_comment:
127 formatted = (formatted[:start_comment] 131 formatted = (formatted[:start_comment]
128 + formatted[end_comment + 2:]) 132 + formatted[end_comment + 2:])
129 start_comment = formatted.find('/*') 133 start_comment = formatted.find('/*')
130 end_comment = formatted.find('*/') 134 end_comment = formatted.find('*/')
131 else: 135 else:
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 187
184 sources = ExtractSources(options) 188 sources = ExtractSources(options)
185 assert sources, 'Missing source files.' 189 assert sources, 'Missing source files.'
186 190
187 providers = {} 191 providers = {}
188 requirements = {} 192 requirements = {}
189 for file in sources: 193 for file in sources:
190 ExtractDependencies(file, providers, requirements) 194 ExtractDependencies(file, providers, requirements)
191 195
192 with open(options.target[0], 'w') as target_file: 196 with open(options.target[0], 'w') as target_file:
197 target_file.write('var CLOSURE_NO_DEPS=true;%s' % os.linesep)
193 processed = set() 198 processed = set()
199 base_path = base
200 if options.path:
201 base_path = os.path.join(options.path, base_path)
202 Export(target_file, base_path, providers, requirements, processed)
194 for source_filename in sources: 203 for source_filename in sources:
195 Export(target_file, source_filename, providers, requirements, processed) 204 Export(target_file, source_filename, providers, requirements, processed)
196 205
197 if __name__ == '__main__': 206 if __name__ == '__main__':
198 main() 207 main()
OLDNEW
« no previous file with comments | « third_party/google_input_tools/README.chromium ('k') | third_party/google_input_tools/inputview.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698