mirror of
https://github.com/golang/go
synced 2024-10-04 15:09:59 +00:00
regexp/syntax: cleanup code generation in perl_groups.go
Cleanup code generation of perl_groups.go: * Fix the generated code header to follow the standard https://go.dev/s/generatedcode * Apply gofmt as last step of code generation * Add //go:generate lines in parse.go to trigger code generation * Adapt make_perl_groups.pl to handle writing directly to the output file (as we can't use shell redirection in go:generate lines) * use strict; use warnings; Change-Id: I675241da03dd3f6facc9eb9de00999bd9203ad70 Reviewed-on: https://go-review.googlesource.com/c/go/+/555995 Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
be50b58d70
commit
0611816216
|
@ -11,7 +11,10 @@
|
|||
# Perl about each letter from 0-128 and write down
|
||||
# its answer.
|
||||
|
||||
@posixclasses = (
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my @posixclasses = (
|
||||
"[:alnum:]",
|
||||
"[:alpha:]",
|
||||
"[:ascii:]",
|
||||
|
@ -28,13 +31,13 @@
|
|||
"[:xdigit:]",
|
||||
);
|
||||
|
||||
@perlclasses = (
|
||||
my @perlclasses = (
|
||||
"\\d",
|
||||
"\\s",
|
||||
"\\w",
|
||||
);
|
||||
|
||||
%overrides = (
|
||||
my %overrides = (
|
||||
# Prior to Perl 5.18, \s did not match vertical tab.
|
||||
# RE2 preserves that original behaviour.
|
||||
"\\s:11" => 0,
|
||||
|
@ -70,7 +73,7 @@ sub PrintClass($$@) {
|
|||
}
|
||||
print "}\n\n";
|
||||
my $n = @ranges;
|
||||
$negname = $name;
|
||||
my $negname = $name;
|
||||
if ($negname =~ /:/) {
|
||||
$negname =~ s/:/:^/;
|
||||
} else {
|
||||
|
@ -97,13 +100,25 @@ sub PrintClasses($@) {
|
|||
my $count = @entries;
|
||||
}
|
||||
|
||||
# Prepare gofmt command
|
||||
my $gofmt;
|
||||
|
||||
if (@ARGV > 0 && $ARGV[0] =~ /\.go$/) {
|
||||
# Send the output of gofmt to the given file
|
||||
open($gofmt, '|-', 'gofmt >'.$ARGV[0]) or die;
|
||||
} else {
|
||||
open($gofmt, '|-', 'gofmt') or die;
|
||||
}
|
||||
|
||||
# Redirect STDOUT to gofmt input
|
||||
select $gofmt;
|
||||
|
||||
print <<EOF;
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// GENERATED BY make_perl_groups.pl; DO NOT EDIT.
|
||||
// make_perl_groups.pl >perl_groups.go
|
||||
// Code generated by make_perl_groups.pl; DO NOT EDIT.
|
||||
|
||||
package syntax
|
||||
|
||||
|
|
|
@ -1576,6 +1576,8 @@ type charGroup struct {
|
|||
class []rune
|
||||
}
|
||||
|
||||
//go:generate perl make_perl_groups.pl perl_groups.go
|
||||
|
||||
// parsePerlClassEscape parses a leading Perl character class escape like \d
|
||||
// from the beginning of s. If one is present, it appends the characters to r
|
||||
// and returns the new slice r and the remainder of the string.
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// GENERATED BY make_perl_groups.pl; DO NOT EDIT.
|
||||
// make_perl_groups.pl >perl_groups.go
|
||||
// Code generated by make_perl_groups.pl; DO NOT EDIT.
|
||||
|
||||
package syntax
|
||||
|
||||
|
|
Loading…
Reference in a new issue