Reviewers: ,
Message:
Committed patchset #1 manually as r17498.
Description:
Experimental rule generator: fix previous commit.
BUG=
[email protected]
Committed: https://code.google.com/p/v8/source/detail?r=17498
Please review this at https://codereview.chromium.org/59043005/
SVN Base: https://v8.googlecode.com/svn/branches/experimental/parser
Affected files (+15, -7 lines):
M tools/lexer_generator/regex_lexer.py
Index: tools/lexer_generator/regex_lexer.py
diff --git a/tools/lexer_generator/regex_lexer.py
b/tools/lexer_generator/regex_lexer.py
index
a2c98f7aa83e8be7742203d5fa58b454cde815ef..55c3bda94192668f6c085c55e5561103b680f5d2
100644
--- a/tools/lexer_generator/regex_lexer.py
+++ b/tools/lexer_generator/regex_lexer.py
@@ -58,10 +58,11 @@ class RegexLexer:
states = (
('class','exclusive'),
+ ('repeat','exclusive'),
)
def t_ESCAPED_LITERAL(self, t):
- r'\\\(|\\\)|\\\[|\\\]|\\\||\\\+|\\\*|\\\?|\\\.|\\\\'
+ r'\\\(|\\\)|\\\[|\\\]|\\\||\\\+|\\\*|\\\?|\\\.|\\\\|\\\{|\\\}'
t.type = 'LITERAL'
t.value = t.value[1:]
return t
@@ -69,17 +70,11 @@ class RegexLexer:
t_GROUP_BEGIN = r'\('
t_GROUP_END = r'\)'
- t_REPEAT_BEGIN = r'\{'
- t_REPEAT_END = r'\}'
-
t_OR = r'\|'
t_ONE_OR_MORE = r'\+'
t_ZERO_OR_MORE = r'\*'
t_ZERO_OR_ONE = r'\?'
- t_NUMBER = r'[0-9]+'
- t_COMMA = r','
-
t_ANY = r'\.'
t_LITERAL = r'.'
@@ -106,6 +101,19 @@ class RegexLexer:
t_class_CLASS_LITERAL = r'[\w $_+]' # fix this
+ def t_REPEAT_BEGIN(self, t):
+ r'\{'
+ self.lexer.push_state('repeat')
+ return t
+
+ def t_repeat_REPEAT_END(self, t):
+ r'\}'
+ self.lexer.pop_state()
+ return t
+
+ t_repeat_NUMBER = r'[0-9]+'
+ t_repeat_COMMA = r','
+
t_ANY_ignore = '\n'
def t_ANY_error(self, t):
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.