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

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

Issue 22140002: IDL lexer: update integer regex to latest Web IDL spec (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More tests Created 7 years, 4 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 | tools/idl_parser/test_lexer/values.in » ('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
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 # definitions come from WebIDL. 108 # definitions come from WebIDL.
109 def t_ELLIPSIS(self, t): 109 def t_ELLIPSIS(self, t):
110 r'\.\.\.' 110 r'\.\.\.'
111 return t 111 return t
112 112
113 def t_float(self, t): 113 def t_float(self, t):
114 r'-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+ )' 114 r'-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+ )'
115 return t 115 return t
116 116
117 def t_integer(self, t): 117 def t_integer(self, t):
118 r'-?(0([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*)' 118 r'-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)'
119 return t 119 return t
120 120
121 121
122 # A line ending '\n', we use this to increment the line number 122 # A line ending '\n', we use this to increment the line number
123 def t_LINE_END(self, t): 123 def t_LINE_END(self, t):
124 r'\n+' 124 r'\n+'
125 self.AddLines(len(t.value)) 125 self.AddLines(len(t.value))
126 126
127 # We do not process escapes in the IDL strings. Strings are exclusively 127 # We do not process escapes in the IDL strings. Strings are exclusively
128 # used for attributes and enums, and not used as typical 'C' constants. 128 # used for attributes and enums, and not used as typical 'C' constants.
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 self.keywords = {} 270 self.keywords = {}
271 self.tokens = [] 271 self.tokens = []
272 self._AddConstDefs() 272 self._AddConstDefs()
273 self._AddTokens(IDLLexer.tokens) 273 self._AddTokens(IDLLexer.tokens)
274 self._AddKeywords(IDLLexer.keywords) 274 self._AddKeywords(IDLLexer.keywords)
275 self._lexobj = None 275 self._lexobj = None
276 276
277 # If run by itself, attempt to build the lexer 277 # If run by itself, attempt to build the lexer
278 if __name__ == '__main__': 278 if __name__ == '__main__':
279 lexer = IDLLexer() 279 lexer = IDLLexer()
OLDNEW
« no previous file with comments | « no previous file | tools/idl_parser/test_lexer/values.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698