aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/gawk.texi75
-rw-r--r--doc/gawktexi.in75
-rw-r--r--doc/regex-add-doc.diff107
3 files changed, 109 insertions, 148 deletions
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 87fe661f..3c31cef5 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -6284,70 +6284,6 @@ str = "hi" @ii{String variable}
re = /foo/ @ii{Wrong!} re @ii{is the result of} $0 ~ /foo/
@end example
-For a number of more advanced use cases (described later on in this
-@value{DOCUMENT}), it would be nice to have regexp constants that
-are @dfn{strongly typed}; in other words, that denote a regexp useful
-for matching, and not an expression.
-
-@command{gawk} provides this feature. A strongly typed regexp constant
-looks almost like a regular regexp constant, except that it is preceded
-by an @samp{@@} sign:
-
-@example
-re = @@/foo/ @ii{Regexp variable}
-@end example
-
-Strongly typed regexp constants @emph{cannot} be used eveywhere that a
-regular regexp constant can, because this would make the language even more
-confusing. Instead, you may use them only in certain contexts:
-
-@itemize @bullet
-@item
-On the righthand side of the @samp{~} and @samp{!~} operators: @samp{some_var ~ @@/foo/}
-(@pxref{Regexp Usage}).
-
-@item
-In the @code{case} part of a @code{switch} statement
-(@pxref{Switch Statement}).
-
-@item
-As an argument to one of the built-in functions that accept regexp constants:
-@code{gensub()},
-@code{gsub()},
-@code{match()},
-@code{patsplit()},
-@code{split()},
-and
-@code{sub()}
-(@pxref{String Functions}).
-
-@item
-As a parameter in a call to a user-defined function
-(@pxref{User-defined}).
-
-@item
-On the righthand side of an assignment to a variable: @samp{some_var = @@/foo/}.
-In this case, the type of @code{some_var} is regexp. Additionally, @code{some_var}
-can be used with @samp{~} and @samp{!~}, passed to one of the built-in functions
-listed above, or passed as a parameter to a user-defined function.
-@end itemize
-
-You may use the @code{typeof()} built-in function
-(@pxref{Type Functions})
-to determine if a variable or function parameter is
-a regexp variable.
-
-The true power of this feature comes from the ability to create variables that
-have regexp type. Such variables can be passed on to user-defined functions,
-without the confusing aspects of computed regular expressions created from
-strings or string constants. They may also be passed through indirect function
-calls (@pxref{Indirect Calls})
-onto the built-in functions that accept regexp constants.
-
-When used in numeric conversions, strongly typed regexp variables convert
-to zero. When used in string conversions, they convert to the string
-value of the original regexp text.
-
@node Regexp Summary
@section Summary
@@ -6391,11 +6327,6 @@ treated as regular expressions).
case sensitivity of regexp matching. In other @command{awk}
versions, use @code{tolower()} or @code{toupper()}.
-@item
-Strongly typed regexp constants (@code{@@/.../}) enable
-certain advanced use cases to be described later on in the
-@value{DOCUMENT}.
-
@end itemize
@@ -19706,9 +19637,6 @@ Return one of the following strings, depending upon the type of @var{x}:
@item "array"
@var{x} is an array.
-@item "regexp"
-@var{x} is a strongly typed regexp (@pxref{Strong Regexp Constants}).
-
@item "number"
@var{x} is a number.
@@ -19765,8 +19693,7 @@ ends up turning it into a scalar.
@end quotation
The @code{typeof()} function is general; it allows you to determine
-if a variable or function parameter is a scalar, an array, or a strongly
-typed regexp.
+if a variable or function parameter is a scalar, an array.
@code{isarray()} is deprecated; you should use @code{typeof()} instead.
You should replace any existing uses of @samp{isarray(var)} in your
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 6159450c..14a1748c 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -6068,70 +6068,6 @@ str = "hi" @ii{String variable}
re = /foo/ @ii{Wrong!} re @ii{is the result of} $0 ~ /foo/
@end example
-For a number of more advanced use cases (described later on in this
-@value{DOCUMENT}), it would be nice to have regexp constants that
-are @dfn{strongly typed}; in other words, that denote a regexp useful
-for matching, and not an expression.
-
-@command{gawk} provides this feature. A strongly typed regexp constant
-looks almost like a regular regexp constant, except that it is preceded
-by an @samp{@@} sign:
-
-@example
-re = @@/foo/ @ii{Regexp variable}
-@end example
-
-Strongly typed regexp constants @emph{cannot} be used eveywhere that a
-regular regexp constant can, because this would make the language even more
-confusing. Instead, you may use them only in certain contexts:
-
-@itemize @bullet
-@item
-On the righthand side of the @samp{~} and @samp{!~} operators: @samp{some_var ~ @@/foo/}
-(@pxref{Regexp Usage}).
-
-@item
-In the @code{case} part of a @code{switch} statement
-(@pxref{Switch Statement}).
-
-@item
-As an argument to one of the built-in functions that accept regexp constants:
-@code{gensub()},
-@code{gsub()},
-@code{match()},
-@code{patsplit()},
-@code{split()},
-and
-@code{sub()}
-(@pxref{String Functions}).
-
-@item
-As a parameter in a call to a user-defined function
-(@pxref{User-defined}).
-
-@item
-On the righthand side of an assignment to a variable: @samp{some_var = @@/foo/}.
-In this case, the type of @code{some_var} is regexp. Additionally, @code{some_var}
-can be used with @samp{~} and @samp{!~}, passed to one of the built-in functions
-listed above, or passed as a parameter to a user-defined function.
-@end itemize
-
-You may use the @code{typeof()} built-in function
-(@pxref{Type Functions})
-to determine if a variable or function parameter is
-a regexp variable.
-
-The true power of this feature comes from the ability to create variables that
-have regexp type. Such variables can be passed on to user-defined functions,
-without the confusing aspects of computed regular expressions created from
-strings or string constants. They may also be passed through indirect function
-calls (@pxref{Indirect Calls})
-onto the built-in functions that accept regexp constants.
-
-When used in numeric conversions, strongly typed regexp variables convert
-to zero. When used in string conversions, they convert to the string
-value of the original regexp text.
-
@node Regexp Summary
@section Summary
@@ -6175,11 +6111,6 @@ treated as regular expressions).
case sensitivity of regexp matching. In other @command{awk}
versions, use @code{tolower()} or @code{toupper()}.
-@item
-Strongly typed regexp constants (@code{@@/.../}) enable
-certain advanced use cases to be described later on in the
-@value{DOCUMENT}.
-
@end itemize
@@ -18750,9 +18681,6 @@ Return one of the following strings, depending upon the type of @var{x}:
@item "array"
@var{x} is an array.
-@item "regexp"
-@var{x} is a strongly typed regexp (@pxref{Strong Regexp Constants}).
-
@item "number"
@var{x} is a number.
@@ -18809,8 +18737,7 @@ ends up turning it into a scalar.
@end quotation
The @code{typeof()} function is general; it allows you to determine
-if a variable or function parameter is a scalar, an array, or a strongly
-typed regexp.
+if a variable or function parameter is a scalar, an array.
@code{isarray()} is deprecated; you should use @code{typeof()} instead.
You should replace any existing uses of @samp{isarray(var)} in your
diff --git a/doc/regex-add-doc.diff b/doc/regex-add-doc.diff
new file mode 100644
index 00000000..93b2a6ee
--- /dev/null
+++ b/doc/regex-add-doc.diff
@@ -0,0 +1,107 @@
+diff --git a/tmp/gawktexi.in b/doc/gawktexi.in
+index 14a1748..6159450 100644
+--- a/tmp/gawktexi.in
++++ b/doc/gawktexi.in
+@@ -6068,6 +6068,70 @@ str = "hi" @ii{String variable}
+ re = /foo/ @ii{Wrong!} re @ii{is the result of} $0 ~ /foo/
+ @end example
+
++For a number of more advanced use cases (described later on in this
++@value{DOCUMENT}), it would be nice to have regexp constants that
++are @dfn{strongly typed}; in other words, that denote a regexp useful
++for matching, and not an expression.
++
++@command{gawk} provides this feature. A strongly typed regexp constant
++looks almost like a regular regexp constant, except that it is preceded
++by an @samp{@@} sign:
++
++@example
++re = @@/foo/ @ii{Regexp variable}
++@end example
++
++Strongly typed regexp constants @emph{cannot} be used eveywhere that a
++regular regexp constant can, because this would make the language even more
++confusing. Instead, you may use them only in certain contexts:
++
++@itemize @bullet
++@item
++On the righthand side of the @samp{~} and @samp{!~} operators: @samp{some_var ~ @@/foo/}
++(@pxref{Regexp Usage}).
++
++@item
++In the @code{case} part of a @code{switch} statement
++(@pxref{Switch Statement}).
++
++@item
++As an argument to one of the built-in functions that accept regexp constants:
++@code{gensub()},
++@code{gsub()},
++@code{match()},
++@code{patsplit()},
++@code{split()},
++and
++@code{sub()}
++(@pxref{String Functions}).
++
++@item
++As a parameter in a call to a user-defined function
++(@pxref{User-defined}).
++
++@item
++On the righthand side of an assignment to a variable: @samp{some_var = @@/foo/}.
++In this case, the type of @code{some_var} is regexp. Additionally, @code{some_var}
++can be used with @samp{~} and @samp{!~}, passed to one of the built-in functions
++listed above, or passed as a parameter to a user-defined function.
++@end itemize
++
++You may use the @code{typeof()} built-in function
++(@pxref{Type Functions})
++to determine if a variable or function parameter is
++a regexp variable.
++
++The true power of this feature comes from the ability to create variables that
++have regexp type. Such variables can be passed on to user-defined functions,
++without the confusing aspects of computed regular expressions created from
++strings or string constants. They may also be passed through indirect function
++calls (@pxref{Indirect Calls})
++onto the built-in functions that accept regexp constants.
++
++When used in numeric conversions, strongly typed regexp variables convert
++to zero. When used in string conversions, they convert to the string
++value of the original regexp text.
++
+ @node Regexp Summary
+ @section Summary
+
+@@ -6111,6 +6175,11 @@ treated as regular expressions).
+ case sensitivity of regexp matching. In other @command{awk}
+ versions, use @code{tolower()} or @code{toupper()}.
+
++@item
++Strongly typed regexp constants (@code{@@/.../}) enable
++certain advanced use cases to be described later on in the
++@value{DOCUMENT}.
++
+ @end itemize
+
+
+@@ -18681,6 +18750,9 @@ Return one of the following strings, depending upon the type of @var{x}:
+ @item "array"
+ @var{x} is an array.
+
++@item "regexp"
++@var{x} is a strongly typed regexp (@pxref{Strong Regexp Constants}).
++
+ @item "number"
+ @var{x} is a number.
+
+@@ -18737,7 +18809,8 @@ ends up turning it into a scalar.
+ @end quotation
+
+ The @code{typeof()} function is general; it allows you to determine
+-if a variable or function parameter is a scalar, an array.
++if a variable or function parameter is a scalar, an array, or a strongly
++typed regexp.
+
+ @code{isarray()} is deprecated; you should use @code{typeof()} instead.
+ You should replace any existing uses of @samp{isarray(var)} in your