Parse '.' in regexes

This commit is contained in:
Max Brunsfeld 2014-04-24 13:02:01 -07:00
parent 52c338ed60
commit c2abfd2d03
5 changed files with 25 additions and 10 deletions

View file

@ -87,6 +87,10 @@ namespace tree_sitter {
case ')':
error = "mismatched parens";
break;
case '.':
result = CharacterSet({ '\n' }).complement().copy();
next();
break;
default:
result = single_char().copy();
}
@ -130,10 +134,6 @@ namespace tree_sitter {
CharacterSet escaped_char(char value) {
switch (value) {
case '\\':
case '(':
case ')':
return CharacterSet({ value });
case 'a':
return CharacterSet({ {'a', 'z'}, {'A', 'Z'} });
case 'w':
@ -141,8 +141,7 @@ namespace tree_sitter {
case 'd':
return CharacterSet({ {'0', '9'} });
default:
error = "unrecognized escape sequence";
return CharacterSet();
return CharacterSet({ value });
}
}