comparison jsscan.py @ 4:30c1f55eff96

fixed greedy regexp bug
author Atul Varma <avarma@mozilla.com>
date Thu, 22 Apr 2010 17:31:32 -0700
parents ce894f57b30c
children 815520476fbb
comparison
equal deleted inserted replaced
3:ce894f57b30c 4:30c1f55eff96
1 import re 1 import re
2 2
3 class Tokenizer(object): 3 class Tokenizer(object):
4 TOKENS = dict( 4 TOKENS = dict(
5 whitespace=(r'\s+', re.MULTILINE), 5 whitespace=(r'\s+', re.MULTILINE),
6 string=(r'(".*(?<!\\)")' 6 string=(r'(".*?(?<!\\)")'
7 r'|' 7 r'|'
8 r"('.*(?<!\\)')"), 8 r"('.*?(?<!\\)')"),
9 c_comment=(r'\/\*.*\*\/', re.MULTILINE | re.DOTALL), 9 c_comment=(r'\/\*.*\*\/', re.MULTILINE | re.DOTALL),
10 cpp_comment=r'\/\/.*', 10 cpp_comment=r'\/\/.*',
11 name=r'[A-Za-z$_][\w]*', 11 name=r'[A-Za-z$_][\w]*',
12 digits=r'[0-9]+', 12 digits=r'[0-9]+',
13 ) 13 )