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

Side by Side Diff: tools/idl_parser/idl_lexer.py

Issue 2708803003: idl_parser: Always use PLY from third_party. (Closed)
Patch Set: Use sys.path.insert() Created 3 years, 10 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
« no previous file with comments | « no previous file | tools/idl_parser/idl_parser.py » ('j') | 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 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 """ Lexer for PPAPI IDL 6 """ Lexer for PPAPI IDL
7 7
8 The lexer uses the PLY library to build a tokenizer which understands both 8 The lexer uses the PLY library to build a tokenizer which understands both
9 WebIDL and Pepper tokens. 9 WebIDL and Pepper tokens.
10 10
11 WebIDL, and WebIDL regular expressions can be found at: 11 WebIDL, and WebIDL regular expressions can be found at:
12 http://www.w3.org/TR/2012/CR-WebIDL-20120419/ 12 http://www.w3.org/TR/2012/CR-WebIDL-20120419/
13 PLY can be found at: 13 PLY can be found at:
14 http://www.dabeaz.com/ply/ 14 http://www.dabeaz.com/ply/
15 """ 15 """
16 16
17 import os.path 17 import os.path
18 import sys 18 import sys
19 19
20 # 20 SRC_DIR = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
21 # Try to load the ply module, if not, then assume it is in the third_party 21 sys.path.insert(0, os.path.join(SRC_DIR, 'third_party'))
22 # directory. 22 from ply import lex
23 # 23
24 try:
25 # Disable lint check which fails to find the ply module.
26 # pylint: disable=F0401
27 from ply import lex
28 except ImportError:
29 module_path, module_name = os.path.split(__file__)
30 third_party = os.path.join(module_path, '..', '..', 'third_party')
31 sys.path.append(third_party)
32 # pylint: disable=F0401
33 from ply import lex
34 24
35 # 25 #
36 # IDL Lexer 26 # IDL Lexer
37 # 27 #
38 class IDLLexer(object): 28 class IDLLexer(object):
39 # 'literals' is a value expected by lex which specifies a list of valid 29 # 'literals' is a value expected by lex which specifies a list of valid
40 # literal tokens, meaning the token type and token value are identical. 30 # literal tokens, meaning the token type and token value are identical.
41 literals = r'"*.(){}[],;:=+-/~|&^?<>' 31 literals = r'"*.(){}[],;:=+-/~|&^?<>'
42 32
43 # 't_ignore' contains ignored characters (spaces and tabs) 33 # 't_ignore' contains ignored characters (spaces and tabs)
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 self.tokens = [] 276 self.tokens = []
287 self._AddTokens(IDLLexer.tokens) 277 self._AddTokens(IDLLexer.tokens)
288 self._AddKeywords(IDLLexer.keywords) 278 self._AddKeywords(IDLLexer.keywords)
289 self._lexobj = None 279 self._lexobj = None
290 self.last = None 280 self.last = None
291 self.lines = None 281 self.lines = None
292 282
293 # If run by itself, attempt to build the lexer 283 # If run by itself, attempt to build the lexer
294 if __name__ == '__main__': 284 if __name__ == '__main__':
295 lexer_object = IDLLexer() 285 lexer_object = IDLLexer()
OLDNEW
« no previous file with comments | « no previous file | tools/idl_parser/idl_parser.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698