poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] pkl: parser: make parens optional for format


From: Mohammad-Reza Nabipoor
Subject: [PATCH] pkl: parser: make parens optional for format
Date: Mon, 10 Oct 2022 15:20:18 +0330

This commit improves user experience of poke for jemarch.

2022-09-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * libpoke/pkl-tab.y (primary): Add new rule for `format' with no
        parens.
        * testsuite/poke.pkl/format-43.pk: New test.
        * testsuite/poke.pkl/format-44.pk: Likewise.
        * testsuite/poke.pkl/format-45.pk: Likewise.
        * testsuite/poke.pkl/format-46.pk: Likewise.
        * testsuite/poke.pkl/format-47.pk: Likewise.
        * testsuite/poke.pkl/format-48.pk: Likewise.
        * testsuite/poke.pkl/format-49.pk: Likewise.
        * testsuite/poke.pkl/format-50.pk: Likewise.
        * testsuite/poke.pkl/format-51.pk: Likewise.
        * testsuite/poke.pkl/format-52.pk: Likewise.
        * testsuite/poke.pkl/format-53.pk: Likewise.
        * testsuite/poke.pkl/format-54.pk: Likewise.
        * testsuite/poke.pkl/format-55.pk: Likewise.
        * testsuite/poke.pkl/format-56.pk: Likewise.
        * testsuite/poke.pkl/format-57.pk: Likewise.
        * testsuite/poke.pkl/format-58.pk: Likewise.
        * testsuite/poke.pkl/format-59.pk: Likewise.
        * testsuite/poke.pkl/format-60.pk: Likewise.
        * testsuite/poke.pkl/format-61.pk: Likewise.
        * testsuite/poke.pkl/format-62.pk: Likewise.
        * testsuite/poke.pkl/format-63.pk: Likewise.
        * testsuite/poke.pkl/format-64.pk: Likewise.
        * testsuite/poke.pkl/format-65.pk: Likewise.
        * testsuite/poke.pkl/format-66.pk: Likewise.
        * testsuite/poke.pkl/format-67.pk: Likewise.
        * testsuite/poke.pkl/format-68.pk: Likewise.
        * testsuite/poke.pkl/format-69.pk: Likewise.
        * testsuite/poke.pkl/format-70.pk: Likewise.
        * testsuite/poke.pkl/format-71.pk: Likewise.
        * testsuite/poke.pkl/format-72.pk: Likewise.
        * testsuite/poke.pkl/format-73.pk: Likewise.
        * testsuite/poke.pkl/format-74.pk: Likewise.
        * testsuite/poke.pkl/format-75.pk: Likewise.
        * testsuite/poke.pkl/format-76.pk: Likewise.
        * testsuite/poke.pkl/format-77.pk: Likewise.
        * testsuite/poke.pkl/format-78.pk: Likewise.
        * testsuite/poke.pkl/format-79.pk: Likewise.
        * testsuite/poke.pkl/format-80.pk: Likewise.
        * testsuite/poke.pkl/format-81.pk: Likewise.
        * testsuite/poke.pkl/format-82.pk: Likewise.
        * testsuite/poke.pkl/format-83.pk: Likewise.
        * testsuite/poke.pkl/format-84.pk: Likewise.
        * testsuite/Makefile.am (EXTRA_DIST): Update.
---
 ChangeLog                       | 48 +++++++++++++++++++++++++++++++++
 libpoke/pkl-tab.y               | 12 +++++++++
 testsuite/Makefile.am           | 42 +++++++++++++++++++++++++++++
 testsuite/poke.pkl/format-43.pk | 21 +++++++++++++++
 testsuite/poke.pkl/format-44.pk | 20 ++++++++++++++
 testsuite/poke.pkl/format-45.pk | 20 ++++++++++++++
 testsuite/poke.pkl/format-46.pk | 20 ++++++++++++++
 testsuite/poke.pkl/format-47.pk |  4 +++
 testsuite/poke.pkl/format-48.pk |  4 +++
 testsuite/poke.pkl/format-49.pk |  4 +++
 testsuite/poke.pkl/format-50.pk |  7 +++++
 testsuite/poke.pkl/format-51.pk |  7 +++++
 testsuite/poke.pkl/format-52.pk |  7 +++++
 testsuite/poke.pkl/format-53.pk |  7 +++++
 testsuite/poke.pkl/format-54.pk |  7 +++++
 testsuite/poke.pkl/format-55.pk |  4 +++
 testsuite/poke.pkl/format-56.pk |  4 +++
 testsuite/poke.pkl/format-57.pk |  4 +++
 testsuite/poke.pkl/format-58.pk |  7 +++++
 testsuite/poke.pkl/format-59.pk |  7 +++++
 testsuite/poke.pkl/format-60.pk |  4 +++
 testsuite/poke.pkl/format-61.pk |  5 ++++
 testsuite/poke.pkl/format-62.pk |  7 +++++
 testsuite/poke.pkl/format-63.pk | 13 +++++++++
 testsuite/poke.pkl/format-64.pk | 13 +++++++++
 testsuite/poke.pkl/format-65.pk | 13 +++++++++
 testsuite/poke.pkl/format-66.pk | 14 ++++++++++
 testsuite/poke.pkl/format-67.pk | 15 +++++++++++
 testsuite/poke.pkl/format-68.pk | 17 ++++++++++++
 testsuite/poke.pkl/format-69.pk | 16 +++++++++++
 testsuite/poke.pkl/format-70.pk | 17 ++++++++++++
 testsuite/poke.pkl/format-71.pk | 11 ++++++++
 testsuite/poke.pkl/format-72.pk |  6 +++++
 testsuite/poke.pkl/format-73.pk |  6 +++++
 testsuite/poke.pkl/format-74.pk |  6 +++++
 testsuite/poke.pkl/format-75.pk |  6 +++++
 testsuite/poke.pkl/format-76.pk |  6 +++++
 testsuite/poke.pkl/format-77.pk |  6 +++++
 testsuite/poke.pkl/format-78.pk |  5 ++++
 testsuite/poke.pkl/format-79.pk |  6 +++++
 testsuite/poke.pkl/format-80.pk |  6 +++++
 testsuite/poke.pkl/format-81.pk |  6 +++++
 testsuite/poke.pkl/format-82.pk |  5 ++++
 testsuite/poke.pkl/format-83.pk |  5 ++++
 testsuite/poke.pkl/format-84.pk |  5 ++++
 45 files changed, 475 insertions(+)
 create mode 100644 testsuite/poke.pkl/format-43.pk
 create mode 100644 testsuite/poke.pkl/format-44.pk
 create mode 100644 testsuite/poke.pkl/format-45.pk
 create mode 100644 testsuite/poke.pkl/format-46.pk
 create mode 100644 testsuite/poke.pkl/format-47.pk
 create mode 100644 testsuite/poke.pkl/format-48.pk
 create mode 100644 testsuite/poke.pkl/format-49.pk
 create mode 100644 testsuite/poke.pkl/format-50.pk
 create mode 100644 testsuite/poke.pkl/format-51.pk
 create mode 100644 testsuite/poke.pkl/format-52.pk
 create mode 100644 testsuite/poke.pkl/format-53.pk
 create mode 100644 testsuite/poke.pkl/format-54.pk
 create mode 100644 testsuite/poke.pkl/format-55.pk
 create mode 100644 testsuite/poke.pkl/format-56.pk
 create mode 100644 testsuite/poke.pkl/format-57.pk
 create mode 100644 testsuite/poke.pkl/format-58.pk
 create mode 100644 testsuite/poke.pkl/format-59.pk
 create mode 100644 testsuite/poke.pkl/format-60.pk
 create mode 100644 testsuite/poke.pkl/format-61.pk
 create mode 100644 testsuite/poke.pkl/format-62.pk
 create mode 100644 testsuite/poke.pkl/format-63.pk
 create mode 100644 testsuite/poke.pkl/format-64.pk
 create mode 100644 testsuite/poke.pkl/format-65.pk
 create mode 100644 testsuite/poke.pkl/format-66.pk
 create mode 100644 testsuite/poke.pkl/format-67.pk
 create mode 100644 testsuite/poke.pkl/format-68.pk
 create mode 100644 testsuite/poke.pkl/format-69.pk
 create mode 100644 testsuite/poke.pkl/format-70.pk
 create mode 100644 testsuite/poke.pkl/format-71.pk
 create mode 100644 testsuite/poke.pkl/format-72.pk
 create mode 100644 testsuite/poke.pkl/format-73.pk
 create mode 100644 testsuite/poke.pkl/format-74.pk
 create mode 100644 testsuite/poke.pkl/format-75.pk
 create mode 100644 testsuite/poke.pkl/format-76.pk
 create mode 100644 testsuite/poke.pkl/format-77.pk
 create mode 100644 testsuite/poke.pkl/format-78.pk
 create mode 100644 testsuite/poke.pkl/format-79.pk
 create mode 100644 testsuite/poke.pkl/format-80.pk
 create mode 100644 testsuite/poke.pkl/format-81.pk
 create mode 100644 testsuite/poke.pkl/format-82.pk
 create mode 100644 testsuite/poke.pkl/format-83.pk
 create mode 100644 testsuite/poke.pkl/format-84.pk

diff --git a/ChangeLog b/ChangeLog
index fc4ab6f7..322cfbaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,51 @@
+2022-09-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * libpoke/pkl-tab.y (primary): Add new rule for `format' with no
+       parens.
+       * testsuite/poke.pkl/format-43.pk: New test.
+       * testsuite/poke.pkl/format-44.pk: Likewise.
+       * testsuite/poke.pkl/format-45.pk: Likewise.
+       * testsuite/poke.pkl/format-46.pk: Likewise.
+       * testsuite/poke.pkl/format-47.pk: Likewise.
+       * testsuite/poke.pkl/format-48.pk: Likewise.
+       * testsuite/poke.pkl/format-49.pk: Likewise.
+       * testsuite/poke.pkl/format-50.pk: Likewise.
+       * testsuite/poke.pkl/format-51.pk: Likewise.
+       * testsuite/poke.pkl/format-52.pk: Likewise.
+       * testsuite/poke.pkl/format-53.pk: Likewise.
+       * testsuite/poke.pkl/format-54.pk: Likewise.
+       * testsuite/poke.pkl/format-55.pk: Likewise.
+       * testsuite/poke.pkl/format-56.pk: Likewise.
+       * testsuite/poke.pkl/format-57.pk: Likewise.
+       * testsuite/poke.pkl/format-58.pk: Likewise.
+       * testsuite/poke.pkl/format-59.pk: Likewise.
+       * testsuite/poke.pkl/format-60.pk: Likewise.
+       * testsuite/poke.pkl/format-61.pk: Likewise.
+       * testsuite/poke.pkl/format-62.pk: Likewise.
+       * testsuite/poke.pkl/format-63.pk: Likewise.
+       * testsuite/poke.pkl/format-64.pk: Likewise.
+       * testsuite/poke.pkl/format-65.pk: Likewise.
+       * testsuite/poke.pkl/format-66.pk: Likewise.
+       * testsuite/poke.pkl/format-67.pk: Likewise.
+       * testsuite/poke.pkl/format-68.pk: Likewise.
+       * testsuite/poke.pkl/format-69.pk: Likewise.
+       * testsuite/poke.pkl/format-70.pk: Likewise.
+       * testsuite/poke.pkl/format-71.pk: Likewise.
+       * testsuite/poke.pkl/format-72.pk: Likewise.
+       * testsuite/poke.pkl/format-73.pk: Likewise.
+       * testsuite/poke.pkl/format-74.pk: Likewise.
+       * testsuite/poke.pkl/format-75.pk: Likewise.
+       * testsuite/poke.pkl/format-76.pk: Likewise.
+       * testsuite/poke.pkl/format-77.pk: Likewise.
+       * testsuite/poke.pkl/format-78.pk: Likewise.
+       * testsuite/poke.pkl/format-79.pk: Likewise.
+       * testsuite/poke.pkl/format-80.pk: Likewise.
+       * testsuite/poke.pkl/format-81.pk: Likewise.
+       * testsuite/poke.pkl/format-82.pk: Likewise.
+       * testsuite/poke.pkl/format-83.pk: Likewise.
+       * testsuite/poke.pkl/format-84.pk: Likewise.
+       * testsuite/Makefile.am (EXTRA_DIST): Update.
+
 2022-10-10  Jose E. Marchesi  <jemarch@gnu.org>
 
        * libpoke/pkl-rt.pk (_pkl_print_any): `depth' defaults to 1.
diff --git a/libpoke/pkl-tab.y b/libpoke/pkl-tab.y
index 0fb7335b..a9367a6b 100644
--- a/libpoke/pkl-tab.y
+++ b/libpoke/pkl-tab.y
@@ -1230,6 +1230,18 @@ primary:
                   PKL_AST_LOC ($$) = @$;
                   PKL_AST_LOC (PKL_AST_TYPE ($$)) = @$;
                 }
+        | FORMAT STR format_arg_list
+                {
+                  $$ = pkl_ast_make_format (pkl_parser->ast, $2, $3,
+                                            0 /* printf_p */);
+                  PKL_AST_TYPE ($$)
+                      = ASTREF (pkl_ast_make_string_type (pkl_parser->ast));
+                  PKL_AST_LOC ($2) = @2;
+                  if (PKL_AST_TYPE ($2))
+                    PKL_AST_LOC (PKL_AST_TYPE ($2)) = @2;
+                  PKL_AST_LOC ($$) = @$;
+                  PKL_AST_LOC (PKL_AST_TYPE ($$)) = @$;
+                }
         | expression INC
                 {
                   $$ = pkl_ast_make_incrdecr (pkl_parser->ast, $1,
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index ae954a52..2a4354b3 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -1342,6 +1342,48 @@ EXTRA_DIST = \
   poke.pkl/format-40.pk \
   poke.pkl/format-41.pk \
   poke.pkl/format-42.pk \
+  poke.pkl/format-43.pk \
+  poke.pkl/format-44.pk \
+  poke.pkl/format-45.pk \
+  poke.pkl/format-46.pk \
+  poke.pkl/format-47.pk \
+  poke.pkl/format-48.pk \
+  poke.pkl/format-49.pk \
+  poke.pkl/format-50.pk \
+  poke.pkl/format-51.pk \
+  poke.pkl/format-52.pk \
+  poke.pkl/format-53.pk \
+  poke.pkl/format-54.pk \
+  poke.pkl/format-55.pk \
+  poke.pkl/format-56.pk \
+  poke.pkl/format-57.pk \
+  poke.pkl/format-58.pk \
+  poke.pkl/format-59.pk \
+  poke.pkl/format-60.pk \
+  poke.pkl/format-61.pk \
+  poke.pkl/format-62.pk \
+  poke.pkl/format-63.pk \
+  poke.pkl/format-64.pk \
+  poke.pkl/format-65.pk \
+  poke.pkl/format-66.pk \
+  poke.pkl/format-67.pk \
+  poke.pkl/format-68.pk \
+  poke.pkl/format-69.pk \
+  poke.pkl/format-70.pk \
+  poke.pkl/format-71.pk \
+  poke.pkl/format-72.pk \
+  poke.pkl/format-73.pk \
+  poke.pkl/format-74.pk \
+  poke.pkl/format-75.pk \
+  poke.pkl/format-76.pk \
+  poke.pkl/format-77.pk \
+  poke.pkl/format-78.pk \
+  poke.pkl/format-79.pk \
+  poke.pkl/format-80.pk \
+  poke.pkl/format-81.pk \
+  poke.pkl/format-82.pk \
+  poke.pkl/format-83.pk \
+  poke.pkl/format-84.pk \
   poke.pkl/format-diag-1.pk \
   poke.pkl/format-optcond-1.pk \
   poke.pkl/format-optcond-2.pk \
diff --git a/testsuite/poke.pkl/format-43.pk b/testsuite/poke.pkl/format-43.pk
new file mode 100644
index 00000000..6b694741
--- /dev/null
+++ b/testsuite/poke.pkl/format-43.pk
@@ -0,0 +1,21 @@
+/* { dg-do run } */
+
+var eq = [
+  (format "") == "",
+  (format "%i1b", 0) == "0",
+  (format "%i8b", 1) == "00000001",
+  (format "%i8b", -1) == "11111111",
+  (format "%u8b", 1) == "00000001",
+  (format "%u8b", -1) == "11111111",
+  (format "%i13b", -1 as uint<64>) == "1" * 13,
+  (format "%i16b", -1) == "1" * 16,
+  (format "%i16b", 0xa5) == "0" * 8 + "10100101",
+  (format "%i16b", 0xa5) == "0" * 8 + "10100101",
+  (format "%u16b", 0xa5) == "0" * 8 + "10100101",
+  (format "%i32b", 0xdeadbeaf) == "11011110101011011011111010101111",
+  (format "%u32b", 0xdeadbeaf) == "11011110101011011011111010101111",
+  (format "%u63b", -1 as uint<64>) == "1" * 63,
+  (format "%u64b", -1 as uint<64>) == "1" * 64,
+];
+
+for (i in eq) printf ("%i32d", i); /* { dg-output "111111111111111" } */
diff --git a/testsuite/poke.pkl/format-44.pk b/testsuite/poke.pkl/format-44.pk
new file mode 100644
index 00000000..501fc8ef
--- /dev/null
+++ b/testsuite/poke.pkl/format-44.pk
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+
+var eq = [
+  (format "%i1o", 0) == "0",
+  (format "%i8o", 0) == "000",
+  (format "%i8o", 1) == "001",
+  (format "%i8o", -1) == "377",
+  (format "%u8o", 1) == "001",
+  (format "%u8o", -1) == "377",
+  (format "%i13o", -1) == "1" + "7" * 4,
+  (format "%i16o", -1) == "1" + "7" * 5,
+  (format "%i16o", 0xa5) == "000245",
+  (format "%u16o", 0xa5) == "000245",
+  (format "%i32o", 0xdeadbeef) == "33653337357",
+  (format "%u32o", 0xdeadbeef) == "33653337357",
+  (format "%u63o", -1 as uint<64>) == "7" * 21,
+  (format "%u64o", -1 as uint<64>) == "1" + "7" * 21,
+];
+
+for (i in eq) printf ("%i32d", i); /* { dg-output "11111111111111" } */
diff --git a/testsuite/poke.pkl/format-45.pk b/testsuite/poke.pkl/format-45.pk
new file mode 100644
index 00000000..18a7c08e
--- /dev/null
+++ b/testsuite/poke.pkl/format-45.pk
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+
+var eq = [
+  (format "%i1d", 0) == "0",
+  (format "%i8d", 0) == "0",
+  (format "%i8d", 1) == "1",
+  (format "%i8d", -1) == "-1",
+  (format "%u8d", 1) == "1",
+  (format "%u8d", -1) == "255",
+  (format "%i13d", -1) == "-1",
+  (format "%i16d", -1) == "-1",
+  (format "%i16d", 0xa5) == "165",
+  (format "%u16d", 0xa5) == "165",
+  (format "%i32d", 0xdeadbeef) == "-559038737",
+  (format "%u32d", 0xdeadbeef) == "3735928559",
+  (format "%u63d", -1 as uint<64>) == "9223372036854775807",
+  (format "%u64d", -1 as uint<64>) == "18446744073709551615",
+];
+
+for (i in eq) printf ("%i32d", i); /* { dg-output "11111111111111" } */
diff --git a/testsuite/poke.pkl/format-46.pk b/testsuite/poke.pkl/format-46.pk
new file mode 100644
index 00000000..2b9121e6
--- /dev/null
+++ b/testsuite/poke.pkl/format-46.pk
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+
+var eq = [
+  (format "%i1x", 0) == "0",
+  (format "%i8x", 0) == "00",
+  (format "%i8x", 1) == "01",
+  (format "%i8x", -1) == "ff",
+  (format "%u8x", 1) == "01",
+  (format "%u8x", -1) == "ff",
+  (format "%i13x", -1) == "1" + "f" * 3,
+  (format "%i16x", -1) == "ffff",
+  (format "%i16x", 0xa5) == "00a5",
+  (format "%u16x", 0xa5) == "00a5",
+  (format "%i32x", 0xdeadbeef) == "deadbeef",
+  (format "%u32x", 0xdeadbeef) == "deadbeef",
+  (format "%u63x", -1 as uint<64>) == "7" + "f" * 15,
+  (format "%u64x", -1 as uint<64>) == "f" * 16,
+];
+
+for (i in eq) printf ("%i32d", i); /* { dg-output "11111111111111" } */
diff --git a/testsuite/poke.pkl/format-47.pk b/testsuite/poke.pkl/format-47.pk
new file mode 100644
index 00000000..d520c618
--- /dev/null
+++ b/testsuite/poke.pkl/format-47.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "Hello"} } */
+/* { dg-output {"Hello"} } */
diff --git a/testsuite/poke.pkl/format-48.pk b/testsuite/poke.pkl/format-48.pk
new file mode 100644
index 00000000..0a23a1e7
--- /dev/null
+++ b/testsuite/poke.pkl/format-48.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "Hello, %s!", "World"} } */
+/* { dg-output {"Hello, World!"} } */
diff --git a/testsuite/poke.pkl/format-49.pk b/testsuite/poke.pkl/format-49.pk
new file mode 100644
index 00000000..ef6ae659
--- /dev/null
+++ b/testsuite/poke.pkl/format-49.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "%s%s%s", "GNU", "", "poke"} } */
+/* { dg-output {"GNUpoke"} } */
diff --git a/testsuite/poke.pkl/format-50.pk b/testsuite/poke.pkl/format-50.pk
new file mode 100644
index 00000000..b20743b4
--- /dev/null
+++ b/testsuite/poke.pkl/format-50.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", 1} } */
+/* { dg-output {"0x00000001"\n} } */
+/* { dg-command {format "%v", 1U} } */
+/* { dg-output {"0x00000001U"\n} } */
diff --git a/testsuite/poke.pkl/format-51.pk b/testsuite/poke.pkl/format-51.pk
new file mode 100644
index 00000000..c0f2264c
--- /dev/null
+++ b/testsuite/poke.pkl/format-51.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", 1UN} } */
+/* { dg-output {"0x1UN"\n} } */
+/* { dg-command {format "%v", 1N} } */
+/* { dg-output {"0x1N"\n} } */
diff --git a/testsuite/poke.pkl/format-52.pk b/testsuite/poke.pkl/format-52.pk
new file mode 100644
index 00000000..504c80c5
--- /dev/null
+++ b/testsuite/poke.pkl/format-52.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", 1UB} } */
+/* { dg-output {"0x01UB"\n} } */
+/* { dg-command {format "%v", 1B} } */
+/* { dg-output {"0x01B"\n} } */
diff --git a/testsuite/poke.pkl/format-53.pk b/testsuite/poke.pkl/format-53.pk
new file mode 100644
index 00000000..a4665fe1
--- /dev/null
+++ b/testsuite/poke.pkl/format-53.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", 1UH} } */
+/* { dg-output {"0x0001UH"\n} } */
+/* { dg-command {format "%v", 1H} } */
+/* { dg-output {"0x0001H"\n} } */
diff --git a/testsuite/poke.pkl/format-54.pk b/testsuite/poke.pkl/format-54.pk
new file mode 100644
index 00000000..06f0c3c3
--- /dev/null
+++ b/testsuite/poke.pkl/format-54.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", 1UL} } */
+/* { dg-output {"0x0000000000000001UL"\n} } */
+/* { dg-command {format "%v", 1L} } */
+/* { dg-output {"0x0000000000000001L"\n} } */
diff --git a/testsuite/poke.pkl/format-55.pk b/testsuite/poke.pkl/format-55.pk
new file mode 100644
index 00000000..cfa55408
--- /dev/null
+++ b/testsuite/poke.pkl/format-55.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "%v", "Hello"} } */
+/* { dg-output {"\\"Hello\\""} } */
diff --git a/testsuite/poke.pkl/format-56.pk b/testsuite/poke.pkl/format-56.pk
new file mode 100644
index 00000000..c14afe83
--- /dev/null
+++ b/testsuite/poke.pkl/format-56.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "%v", "A\x01B"} } */
+/* { dg-output {"\\"A\\\\x01B\\""} } */
diff --git a/testsuite/poke.pkl/format-57.pk b/testsuite/poke.pkl/format-57.pk
new file mode 100644
index 00000000..22a861f3
--- /dev/null
+++ b/testsuite/poke.pkl/format-57.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "%v", int[]()} } */
+/* { dg-output {"\[]"} } */
diff --git a/testsuite/poke.pkl/format-58.pk b/testsuite/poke.pkl/format-58.pk
new file mode 100644
index 00000000..e973befe
--- /dev/null
+++ b/testsuite/poke.pkl/format-58.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {format "%v", [1,2,3]} } */
+/* { dg-output {"\[1,2,3]"\n} } */
+/* { dg-command {format "%v", [1UB,2UB,3UB]} } */
+/* { dg-output {"\[1UB,2UB,3UB]"\n} } */
diff --git a/testsuite/poke.pkl/format-59.pk b/testsuite/poke.pkl/format-59.pk
new file mode 100644
index 00000000..a3c57eb8
--- /dev/null
+++ b/testsuite/poke.pkl/format-59.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {format "%v", [1,2,3]} } */
+/* { dg-output {"\[0x00000001,0x00000002,0x00000003]"\n} } */
+/* { dg-command {format "%v", [1UB,2UB,3UB]} } */
+/* { dg-output {"\[0x01UB,0x02UB,0x03UB]"\n} } */
diff --git a/testsuite/poke.pkl/format-60.pk b/testsuite/poke.pkl/format-60.pk
new file mode 100644
index 00000000..4244b1d9
--- /dev/null
+++ b/testsuite/poke.pkl/format-60.pk
@@ -0,0 +1,4 @@
+/* { dg-do run } */
+
+/* { dg-command {format "%v", ["GNU", "poke"]} } */
+/* { dg-output {"\[\\"GNU\\",\\"poke\\"]"} } */
diff --git a/testsuite/poke.pkl/format-61.pk b/testsuite/poke.pkl/format-61.pk
new file mode 100644
index 00000000..851f3834
--- /dev/null
+++ b/testsuite/poke.pkl/format-61.pk
@@ -0,0 +1,5 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_oacutoff (4)} } */
+/* { dg-command {format "%v", ["GNU", "poke", "by", "Jose", "Marchesi"]} } */
+/* { dg-output {"\[\\"GNU\\",\\"poke\\",\\"by\\",\\"Jose\\"...]"} } */
diff --git a/testsuite/poke.pkl/format-62.pk b/testsuite/poke.pkl/format-62.pk
new file mode 100644
index 00000000..e459e029
--- /dev/null
+++ b/testsuite/poke.pkl/format-62.pk
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {vm_set_omaps (1)} } */
+/* { dg-command {vm_set_oacutoff (3)} } */
+/* { dg-command {format "%v", ["GNU", "poke", "by", "Jose", "Marchesi"]} } */
+/* { dg-output {"\[\\"GNU\\" @ 0x0000000000000000#b,\\"poke\\" @ 
0x0000000000000020#b,\\"by\\" @ 0x0000000000000048#b...] @ 
0x0000000000000000#b"} } */
diff --git a/testsuite/poke.pkl/format-63.pk b/testsuite/poke.pkl/format-63.pk
new file mode 100644
index 00000000..642d1463
--- /dev/null
+++ b/testsuite/poke.pkl/format-63.pk
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+var e = E {code = 0, name = "generic", exit_status = 1};
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {format "%v", e} } */
+/* { dg-output {"E {code=0,name=\\"generic\\",exit_status=1}"} } */
diff --git a/testsuite/poke.pkl/format-64.pk b/testsuite/poke.pkl/format-64.pk
new file mode 100644
index 00000000..8cc3ba3a
--- /dev/null
+++ b/testsuite/poke.pkl/format-64.pk
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+var e = E {code = 0, name = "generic", exit_status = 1};
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {format "%Fv", e} } */
+/* { dg-output {"E {code=0,name=\\"generic\\",exit_status=1}"} } */
diff --git a/testsuite/poke.pkl/format-65.pk b/testsuite/poke.pkl/format-65.pk
new file mode 100644
index 00000000..29f3f2fd
--- /dev/null
+++ b/testsuite/poke.pkl/format-65.pk
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+var e = E {code = 0, name = "generic", exit_status = 1};
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {format "%Tv", e} } */
+/* { dg-output {"E {\\n  code=0,\\n  name=\\"generic\\",\\n  
exit_status=1\\n}"} } */
diff --git a/testsuite/poke.pkl/format-66.pk b/testsuite/poke.pkl/format-66.pk
new file mode 100644
index 00000000..4962bae8
--- /dev/null
+++ b/testsuite/poke.pkl/format-66.pk
@@ -0,0 +1,14 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+var e = E {code = 0, name = "generic", exit_status = 1};
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {vm_set_oindent (4)} } */
+/* { dg-command {format "%Tv", e} } */
+/* { dg-output {"E {\\n    code=0,\\n    name=\\"generic\\",\\n    
exit_status=1\\n}"} } */
diff --git a/testsuite/poke.pkl/format-67.pk b/testsuite/poke.pkl/format-67.pk
new file mode 100644
index 00000000..1df24e3f
--- /dev/null
+++ b/testsuite/poke.pkl/format-67.pk
@@ -0,0 +1,15 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+var e = E {code = 0, name = "generic", exit_status = 1};
+
+/* { dg-command {vm_set_obase (16)} } */
+/* { dg-command {vm_set_oindent (4)} } */
+/* { dg-command {vm_set_omode (VM_OMODE_TREE)} } */  /* No effect.  */
+/* { dg-command {format "%v", e} } */
+/* { dg-output {"E 
{code=0x00000000,name=\\"generic\\",exit_status=0x00000001}"} } */
diff --git a/testsuite/poke.pkl/format-68.pk b/testsuite/poke.pkl/format-68.pk
new file mode 100644
index 00000000..6b3127e7
--- /dev/null
+++ b/testsuite/poke.pkl/format-68.pk
@@ -0,0 +1,17 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+type S = struct
+  {
+    E ex;
+  };
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {vm_set_odepth (1)} } */    /* No effect.  */
+/* { dg-command {format "%v", S{}} } */
+/* { dg-output {"S {ex=E {code=0,name=\\"\\",exit_status=0}}"} } */
diff --git a/testsuite/poke.pkl/format-69.pk b/testsuite/poke.pkl/format-69.pk
new file mode 100644
index 00000000..c78a291e
--- /dev/null
+++ b/testsuite/poke.pkl/format-69.pk
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+type S = struct
+  {
+    E ex;
+  };
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {format "%1v", S{}} } */
+/* { dg-output {"S {ex=E {...}}"} } */
diff --git a/testsuite/poke.pkl/format-70.pk b/testsuite/poke.pkl/format-70.pk
new file mode 100644
index 00000000..9b5f40f3
--- /dev/null
+++ b/testsuite/poke.pkl/format-70.pk
@@ -0,0 +1,17 @@
+/* { dg-do run } */
+
+type E = struct
+  {
+    int<32> code;
+    string name;
+    int<32> exit_status;
+  };
+type S = struct
+  {
+    E ex;
+  };
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {vm_set_omaps (1)} } */
+/* { dg-command {format "%1v", S{}} } */
+/* { dg-output {S {ex=E {...} @ 0x0000000000000000#b @ 0x0000000000000000#b} @ 
0x0000000000000000#b} } */
diff --git a/testsuite/poke.pkl/format-71.pk b/testsuite/poke.pkl/format-71.pk
new file mode 100644
index 00000000..20b29620
--- /dev/null
+++ b/testsuite/poke.pkl/format-71.pk
@@ -0,0 +1,11 @@
+/* { dg-do run } */
+
+type S = struct
+  {
+    int<32>[] i;
+  };
+
+/* { dg-command {vm_set_obase (10)} } */
+/* { dg-command {var s = S{ i=[1,2,3]} } } */
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"S {i=\[1,2,3]}"} } */
diff --git a/testsuite/poke.pkl/format-72.pk b/testsuite/poke.pkl/format-72.pk
new file mode 100644
index 00000000..a731c3b6
--- /dev/null
+++ b/testsuite/poke.pkl/format-72.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\nb";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\nb\\""} } */
diff --git a/testsuite/poke.pkl/format-73.pk b/testsuite/poke.pkl/format-73.pk
new file mode 100644
index 00000000..79e8b94b
--- /dev/null
+++ b/testsuite/poke.pkl/format-73.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\tb";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\tb\\""} } */
diff --git a/testsuite/poke.pkl/format-74.pk b/testsuite/poke.pkl/format-74.pk
new file mode 100644
index 00000000..7f16aa92
--- /dev/null
+++ b/testsuite/poke.pkl/format-74.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\"b";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\\\"b\\""} } */
diff --git a/testsuite/poke.pkl/format-75.pk b/testsuite/poke.pkl/format-75.pk
new file mode 100644
index 00000000..5818805c
--- /dev/null
+++ b/testsuite/poke.pkl/format-75.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\\b";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\\\\\b\\""} } */
diff --git a/testsuite/poke.pkl/format-76.pk b/testsuite/poke.pkl/format-76.pk
new file mode 100644
index 00000000..835aef9f
--- /dev/null
+++ b/testsuite/poke.pkl/format-76.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\x0ab";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\nb\\""} } */
diff --git a/testsuite/poke.pkl/format-77.pk b/testsuite/poke.pkl/format-77.pk
new file mode 100644
index 00000000..c45fa067
--- /dev/null
+++ b/testsuite/poke.pkl/format-77.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+var s = "a\x09b";
+
+/* { dg-command {format "%v", s} } */
+/* { dg-output {"\\"a\\\\tb\\""} } */
diff --git a/testsuite/poke.pkl/format-78.pk b/testsuite/poke.pkl/format-78.pk
new file mode 100644
index 00000000..c9cc7ef0
--- /dev/null
+++ b/testsuite/poke.pkl/format-78.pk
@@ -0,0 +1,5 @@
+/* { dg-do run } */
+
+/* { dg-command {.set obase 10} } */
+/* { dg-command {format "%%%i32d%%", 23} } */
+/* { dg-output {"%23%"} } */
diff --git a/testsuite/poke.pkl/format-79.pk b/testsuite/poke.pkl/format-79.pk
new file mode 100644
index 00000000..382078cb
--- /dev/null
+++ b/testsuite/poke.pkl/format-79.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+type Matrix = int[3];
+
+/* { dg-command { format "%v", [1,2,3] as Matrix; } } */
+/* { dg-output "\"\\\[1,2,3\\\]\"" } */
diff --git a/testsuite/poke.pkl/format-80.pk b/testsuite/poke.pkl/format-80.pk
new file mode 100644
index 00000000..3a8107f7
--- /dev/null
+++ b/testsuite/poke.pkl/format-80.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+type Foo = struct {};
+
+/* { dg-command { format "%v", Foo {} } } */
+/* { dg-output "\"Foo \{\}\"" } */
diff --git a/testsuite/poke.pkl/format-81.pk b/testsuite/poke.pkl/format-81.pk
new file mode 100644
index 00000000..e46d03d6
--- /dev/null
+++ b/testsuite/poke.pkl/format-81.pk
@@ -0,0 +1,6 @@
+/* { dg-do run } */
+
+type Foo = struct { int; };
+
+/* { dg-command { format "%v", Foo {} } } */
+/* { dg-output {"Foo .0+."} } */
diff --git a/testsuite/poke.pkl/format-82.pk b/testsuite/poke.pkl/format-82.pk
new file mode 100644
index 00000000..f26142ec
--- /dev/null
+++ b/testsuite/poke.pkl/format-82.pk
@@ -0,0 +1,5 @@
+/* { dg-do run } */
+
+/* { dg-command {.set obase 10} } */
+/* { dg-command {format "%%v"} } */
+/* { dg-output {"%v"} } */
diff --git a/testsuite/poke.pkl/format-83.pk b/testsuite/poke.pkl/format-83.pk
new file mode 100644
index 00000000..aaa7db5b
--- /dev/null
+++ b/testsuite/poke.pkl/format-83.pk
@@ -0,0 +1,5 @@
+/* { dg-do run } */
+
+/* { dg-command {.set obase 10} } */
+/* { dg-command {format "v%%j"} } */
+/* { dg-output {"v%j"} } */
diff --git a/testsuite/poke.pkl/format-84.pk b/testsuite/poke.pkl/format-84.pk
new file mode 100644
index 00000000..71d86ca9
--- /dev/null
+++ b/testsuite/poke.pkl/format-84.pk
@@ -0,0 +1,5 @@
+/* { dg-do run } */
+
+/* { dg-command {.set obase 10} } */
+/* { dg-command {format "v%%%%j%%abc%%"} } */
+/* { dg-output {"v%%j%abc%"} } */
-- 
2.38.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]