diff options
author | David Neto <dneto@google.com> | 2019-02-20 17:18:28 -0500 |
---|---|---|
committer | David Neto <dneto@google.com> | 2019-02-21 19:52:57 -0500 |
commit | 83d14e6912c72138f77617d225a2f4a8786a9d82 (patch) | |
tree | 9ff24faf1e0271a77fbb0019edf793cfc0518a93 /re2/make_perl_groups.pl | |
parent | 03e00e139ba1ef1ac728bb9b78181cf74a6b93be (diff) | |
parent | 79ef3b2d31f06493f687ef9e947d9632bad54b9b (diff) | |
download | regex-re2-83d14e6912c72138f77617d225a2f4a8786a9d82.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into up-shaderc2
Refresh with content from github.com/google/re2
commit 79ef3b2d31f06493f687ef9e947d9632bad54b9b
date 2019-02-13
Change-Id: I4139f29d632e41722992309e96aca4f29c799c87
Diffstat (limited to 're2/make_perl_groups.pl')
-rwxr-xr-x | re2/make_perl_groups.pl | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/re2/make_perl_groups.pl b/re2/make_perl_groups.pl index d5eaa59..d9fcdaf 100755 --- a/re2/make_perl_groups.pl +++ b/re2/make_perl_groups.pl @@ -32,14 +32,20 @@ "\\w", ); +%overrides = ( + # Prior to Perl 5.18, \s did not match vertical tab. + # RE2 preserves that original behaviour. + "\\s:11" => 0, +); + sub ComputeClass($) { + my ($cname) = @_; my @ranges; - my ($class) = @_; - my $regexp = "[$class]"; + my $regexp = qr/[$cname]/; my $start = -1; for (my $i=0; $i<=129; $i++) { if ($i == 129) { $i = 256; } - if ($i <= 128 && chr($i) =~ $regexp) { + if ($i <= 128 && ($overrides{"$cname:$i"} // chr($i) =~ $regexp)) { if ($start < 0) { $start = $i; } @@ -54,15 +60,15 @@ sub ComputeClass($) { } sub PrintClass($$@) { - my ($cname, $name, @ranges) = @_; - print "static URange16 code${cname}[] = { /* $name */\n"; + my ($cnum, $cname, @ranges) = @_; + print "static const URange16 code${cnum}[] = { /* $cname */\n"; for (my $i=0; $i<@ranges; $i++) { my @a = @{$ranges[$i]}; printf "\t{ 0x%x, 0x%x },\n", $a[0], $a[1]; } print "};\n"; my $n = @ranges; - my $escname = $name; + my $escname = $cname; $escname =~ s/\\/\\\\/g; $negname = $escname; if ($negname =~ /:/) { @@ -70,25 +76,25 @@ sub PrintClass($$@) { } else { $negname =~ y/a-z/A-Z/; } - return "{ \"$escname\", +1, code$cname, $n }", "{ \"$negname\", -1, code$cname, $n }"; + return "{ \"$escname\", +1, code$cnum, $n }", "{ \"$negname\", -1, code$cnum, $n }"; } -my $gen = 0; +my $cnum = 0; sub PrintClasses($@) { - my ($cname, @classes) = @_; + my ($pname, @classes) = @_; my @entries; - foreach my $cl (@classes) { - my @ranges = ComputeClass($cl); - push @entries, PrintClass(++$gen, $cl, @ranges); + foreach my $cname (@classes) { + my @ranges = ComputeClass($cname); + push @entries, PrintClass(++$cnum, $cname, @ranges); } - print "UGroup ${cname}_groups[] = {\n"; + print "const UGroup ${pname}_groups[] = {\n"; foreach my $e (@entries) { print "\t$e,\n"; } print "};\n"; my $count = @entries; - print "int num_${cname}_groups = $count;\n"; + print "const int num_${pname}_groups = $count;\n"; } print <<EOF; |