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

Side by Side Diff: client/dom/scripts/idlparser.py

Issue 9566021: Use plain gcc. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 import re 6 import re
7 import subprocess 7 import subprocess
8 import tempfile 8 import tempfile
9 9
10 from pegparser import * 10 from pegparser import *
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 404
405 Returns: 405 Returns:
406 The result of running gcc on the content. 406 The result of running gcc on the content.
407 407
408 Args: 408 Args:
409 content -- text to process. 409 content -- text to process.
410 defines -- an array of pre-processor defines. 410 defines -- an array of pre-processor defines.
411 includePaths -- an array of path strings. 411 includePaths -- an array of path strings.
412 """ 412 """
413 # FIXME: Handle gcc not found, or any other processing errors 413 # FIXME: Handle gcc not found, or any other processing errors
414 gcc = '/usr/bin/gcc' 414 gcc = 'gcc'
415 cmd = [gcc, '-E', '-P', '-C', '-x', 'c++']; 415 cmd = [gcc, '-E', '-P', '-C', '-x', 'c++'];
416 for define in defines: 416 for define in defines:
417 cmd.append('-D%s' % define) 417 cmd.append('-D%s' % define)
418 cmd.append('-') 418 cmd.append('-')
419 pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE, 419 pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE,
420 stdout=subprocess.PIPE, stderr=subprocess.PIPE) 420 stdout=subprocess.PIPE, stderr=subprocess.PIPE)
421 (content, stderr) = pipe.communicate(content) 421 (content, stderr) = pipe.communicate(content)
422 return content 422 return content
423 423
424 def parse(self, content, defines=[], includePaths=[]): 424 def parse(self, content, defines=[], includePaths=[]):
425 """Parse the give content string. 425 """Parse the give content string.
426 426
427 The WebKit IDL syntax also allows gcc pre-processing instructions. 427 The WebKit IDL syntax also allows gcc pre-processing instructions.
428 Lists of defined variables and include paths can be provided. 428 Lists of defined variables and include paths can be provided.
429 429
430 Returns: 430 Returns:
431 An abstract syntax tree (AST). 431 An abstract syntax tree (AST).
432 432
433 Args: 433 Args:
434 content -- text to parse. 434 content -- text to parse.
435 defines -- an array of pre-processor defines. 435 defines -- an array of pre-processor defines.
436 includePaths -- an array of path strings used by the 436 includePaths -- an array of path strings used by the
437 gcc pre-processor. 437 gcc pre-processor.
438 """ 438 """
439 if self._syntax == WEBKIT_SYNTAX: 439 if self._syntax == WEBKIT_SYNTAX:
440 content = self._pre_process(content, defines, includePaths) 440 content = self._pre_process(content, defines, includePaths)
441 441
442 return self._pegparser.parse(content) 442 return self._pegparser.parse(content)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698