summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2021-02-01 08:13:49 +0200
committerArnold D. Robbins <arnold@skeeve.com>2021-02-01 08:13:49 +0200
commit9c81550ac0f386929462a200e57a1dbe0953fe10 (patch)
tree6fcefaa8bebeda5b298a2bf5a062a36b972f8e27
parent7c12765b99d41b8842d29a0bba37794744bb6834 (diff)
downloadgawk-9c81550ac0f386929462a200e57a1dbe0953fe10.tar.gz
Updates to inf/nan test programs.
-rw-r--r--awklib/eg/test-programs/gen-float-table.awk4
-rw-r--r--awklib/eg/test-programs/gen-float-table.c2
-rw-r--r--doc/ChangeLog7
-rw-r--r--doc/gawk.texi94
-rw-r--r--doc/gawktexi.in94
5 files changed, 104 insertions, 97 deletions
diff --git a/awklib/eg/test-programs/gen-float-table.awk b/awklib/eg/test-programs/gen-float-table.awk
index c35f2dff..ea6269c3 100644
--- a/awklib/eg/test-programs/gen-float-table.awk
+++ b/awklib/eg/test-programs/gen-float-table.awk
@@ -50,8 +50,8 @@ BEGIN {
values[i],
names[k],
compare[j],
- the_func(values[i], compare[j]) ?
- "true" : "false");
+ @the_func(values[i], compare[j]) ?
+ "True" : "False");
}
printf("\n");
}
diff --git a/awklib/eg/test-programs/gen-float-table.c b/awklib/eg/test-programs/gen-float-table.c
index ae1d5dd4..ba3a0d05 100644
--- a/awklib/eg/test-programs/gen-float-table.c
+++ b/awklib/eg/test-programs/gen-float-table.c
@@ -50,7 +50,7 @@ int main()
printf("%g %s %g -> %s\n", values[i],
functions[k].name,
compare[j],
- functions[k].func(values[i], compare[j]) ? "true" : "false");
+ functions[k].func(values[i], compare[j]) ? "True" : "False");
}
printf("\n");
}
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 4c086ff8..02a87af5 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2021-02-01 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Strange values): Fix a typo in the awk test
+ program. Make the C and Awk versions print "True" and
+ "False" to match Python, making comparisons easier. Thanks to
+ Antonio Columbo for the suggestions.
+
2021-01-25 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Fix some spelling errors.
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 956bb549..82c06b52 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -34041,36 +34041,36 @@ they handle NaN and infinity values.
@ignore
@c file eg/test-programs/gen-float-table.awk
function eq(left, right)
-{
+@{
return left == right
-}
+@}
function ne(left, right)
-{
+@{
return left != right
-}
+@}
function lt(left, right)
-{
+@{
return left < right
-}
+@}
function le(left, right)
-{
+@{
return left <= right
-}
+@}
function gt(left, right)
-{
+@{
return left > right
-}
+@}
function ge(left, right)
-{
+@{
return left >= right
-}
+@}
-BEGIN {
+BEGIN @{
nan = sqrt(-1)
inf = -log(0)
split("== != < <= > >=", names)
@@ -34084,21 +34084,21 @@ BEGIN {
compare[4] = values[3] = -log(0.0) # inf
compare[5] = values[4] = log(0.0) # -inf
- for (i = 1; i in values; i++) {
- for (j = 1; j in compare; j++) {
- for (k = 1; k in names; k++) {
+ for (i = 1; i in values; i++) @{
+ for (j = 1; j in compare; j++) @{
+ for (k = 1; k in names; k++) @{
the_func = funcs[k]
printf("%g %s %g -> %s\n",
values[i],
names[k],
compare[j],
- @the_func(values[i], compare[j]) ?
- "true" : "false");
- }
+ @@the_func(values[i], compare[j]) ?
+ "True" : "False");
+ @}
printf("\n");
- }
- }
-}
+ @}
+ @}
+@}
@c endfile
@end ignore
@@ -34109,9 +34109,9 @@ BEGIN {
#include <stdbool.h>
#define def_func(name, op) \
- bool name(double left, double right) { \
+ bool name(double left, double right) @{ \
return left op right; \
- }
+ @}
def_func(eq, ==)
def_func(ne, !=)
@@ -34120,50 +34120,50 @@ def_func(le, <=)
def_func(gt, >)
def_func(ge, >=)
-struct {
+struct @{
const char *name;
bool (*func)(double left, double right);
-} functions[] = {
- { "==", eq },
- { "!=", ne },
- { "< ", lt },
- { "<=", le },
- { "> ", gt },
- { ">=", ge },
- { 0, 0 }
-};
+@} functions[] = @{
+ @{ "==", eq @},
+ @{ "!=", ne @},
+ @{ "< ", lt @},
+ @{ "<=", le @},
+ @{ "> ", gt @},
+ @{ ">=", ge @},
+ @{ 0, 0 @}
+@};
int main()
-{
- double values[] = {
+@{
+ double values[] = @{
-sqrt(-1), // nan
sqrt(-1), // -nan
-log(0.0), // inf
log(0.0) // -inf
- };
- double compare[] = { 2.0,
+ @};
+ double compare[] = @{ 2.0,
-sqrt(-1), // nan
sqrt(-1), // -nan
-log(0.0), // inf
log(0.0) // -inf
- };
+ @};
int i, j, k;
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 5; j++) {
- for (k = 0; functions[k].name != NULL; k++) {
+ for (i = 0; i < 4; i++) @{
+ for (j = 0; j < 5; j++) @{
+ for (k = 0; functions[k].name != NULL; k++) @{
printf("%g %s %g -> %s\n", values[i],
functions[k].name,
compare[j],
- functions[k].func(values[i], compare[j]) ? "true" : "false");
- }
+ functions[k].func(values[i], compare[j]) ? "True" : "False");
+ @}
printf("\n");
- }
- }
+ @}
+ @}
return 0;
-}
+@}
@c endfile
@end ignore
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index b463e6ba..fb237350 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -32977,36 +32977,36 @@ they handle NaN and infinity values.
@ignore
@c file eg/test-programs/gen-float-table.awk
function eq(left, right)
-{
+@{
return left == right
-}
+@}
function ne(left, right)
-{
+@{
return left != right
-}
+@}
function lt(left, right)
-{
+@{
return left < right
-}
+@}
function le(left, right)
-{
+@{
return left <= right
-}
+@}
function gt(left, right)
-{
+@{
return left > right
-}
+@}
function ge(left, right)
-{
+@{
return left >= right
-}
+@}
-BEGIN {
+BEGIN @{
nan = sqrt(-1)
inf = -log(0)
split("== != < <= > >=", names)
@@ -33020,21 +33020,21 @@ BEGIN {
compare[4] = values[3] = -log(0.0) # inf
compare[5] = values[4] = log(0.0) # -inf
- for (i = 1; i in values; i++) {
- for (j = 1; j in compare; j++) {
- for (k = 1; k in names; k++) {
+ for (i = 1; i in values; i++) @{
+ for (j = 1; j in compare; j++) @{
+ for (k = 1; k in names; k++) @{
the_func = funcs[k]
printf("%g %s %g -> %s\n",
values[i],
names[k],
compare[j],
- @the_func(values[i], compare[j]) ?
- "true" : "false");
- }
+ @@the_func(values[i], compare[j]) ?
+ "True" : "False");
+ @}
printf("\n");
- }
- }
-}
+ @}
+ @}
+@}
@c endfile
@end ignore
@@ -33045,9 +33045,9 @@ BEGIN {
#include <stdbool.h>
#define def_func(name, op) \
- bool name(double left, double right) { \
+ bool name(double left, double right) @{ \
return left op right; \
- }
+ @}
def_func(eq, ==)
def_func(ne, !=)
@@ -33056,50 +33056,50 @@ def_func(le, <=)
def_func(gt, >)
def_func(ge, >=)
-struct {
+struct @{
const char *name;
bool (*func)(double left, double right);
-} functions[] = {
- { "==", eq },
- { "!=", ne },
- { "< ", lt },
- { "<=", le },
- { "> ", gt },
- { ">=", ge },
- { 0, 0 }
-};
+@} functions[] = @{
+ @{ "==", eq @},
+ @{ "!=", ne @},
+ @{ "< ", lt @},
+ @{ "<=", le @},
+ @{ "> ", gt @},
+ @{ ">=", ge @},
+ @{ 0, 0 @}
+@};
int main()
-{
- double values[] = {
+@{
+ double values[] = @{
-sqrt(-1), // nan
sqrt(-1), // -nan
-log(0.0), // inf
log(0.0) // -inf
- };
- double compare[] = { 2.0,
+ @};
+ double compare[] = @{ 2.0,
-sqrt(-1), // nan
sqrt(-1), // -nan
-log(0.0), // inf
log(0.0) // -inf
- };
+ @};
int i, j, k;
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 5; j++) {
- for (k = 0; functions[k].name != NULL; k++) {
+ for (i = 0; i < 4; i++) @{
+ for (j = 0; j < 5; j++) @{
+ for (k = 0; functions[k].name != NULL; k++) @{
printf("%g %s %g -> %s\n", values[i],
functions[k].name,
compare[j],
- functions[k].func(values[i], compare[j]) ? "true" : "false");
- }
+ functions[k].func(values[i], compare[j]) ? "True" : "False");
+ @}
printf("\n");
- }
- }
+ @}
+ @}
return 0;
-}
+@}
@c endfile
@end ignore