aboutsummaryrefslogtreecommitdiff
path: root/gcc/m2/mc-boot/GNumberIO.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/m2/mc-boot/GNumberIO.c')
-rw-r--r--gcc/m2/mc-boot/GNumberIO.c776
1 files changed, 776 insertions, 0 deletions
diff --git a/gcc/m2/mc-boot/GNumberIO.c b/gcc/m2/mc-boot/GNumberIO.c
new file mode 100644
index 0000000..6b90074
--- /dev/null
+++ b/gcc/m2/mc-boot/GNumberIO.c
@@ -0,0 +1,776 @@
+/* do not edit automatically generated by mc from NumberIO. */
+/* NumberIO.mod provides conversion of ordinal numbers.
+
+Copyright (C) 2001-2021 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+# if !defined (PROC_D)
+# define PROC_D
+ typedef void (*PROC_t) (void);
+ typedef struct { PROC_t proc; } PROC;
+# endif
+
+# if !defined (TRUE)
+# define TRUE (1==1)
+# endif
+
+# if !defined (FALSE)
+# define FALSE (1==0)
+# endif
+
+#define _NumberIO_H
+#define _NumberIO_C
+
+# include "GASCII.h"
+# include "GStrIO.h"
+# include "GStrLib.h"
+# include "GM2RTS.h"
+
+# define MaxLineLength 79
+# define MaxDigits 20
+# define MaxHexDigits 20
+# define MaxOctDigits 40
+# define MaxBits 64
+extern "C" void NumberIO_ReadCard (unsigned int *x);
+extern "C" void NumberIO_WriteCard (unsigned int x, unsigned int n);
+extern "C" void NumberIO_ReadHex (unsigned int *x);
+extern "C" void NumberIO_WriteHex (unsigned int x, unsigned int n);
+extern "C" void NumberIO_ReadInt (int *x);
+extern "C" void NumberIO_WriteInt (int x, unsigned int n);
+extern "C" void NumberIO_CardToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
+extern "C" void NumberIO_StrToCard (const char *a_, unsigned int _a_high, unsigned int *x);
+extern "C" void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
+extern "C" void NumberIO_StrToHex (const char *a_, unsigned int _a_high, unsigned int *x);
+extern "C" void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int _a_high);
+extern "C" void NumberIO_StrToInt (const char *a_, unsigned int _a_high, int *x);
+extern "C" void NumberIO_ReadOct (unsigned int *x);
+extern "C" void NumberIO_WriteOct (unsigned int x, unsigned int n);
+extern "C" void NumberIO_OctToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
+extern "C" void NumberIO_StrToOct (const char *a_, unsigned int _a_high, unsigned int *x);
+extern "C" void NumberIO_ReadBin (unsigned int *x);
+extern "C" void NumberIO_WriteBin (unsigned int x, unsigned int n);
+extern "C" void NumberIO_BinToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
+extern "C" void NumberIO_StrToBin (const char *a_, unsigned int _a_high, unsigned int *x);
+extern "C" void NumberIO_StrToBinInt (const char *a_, unsigned int _a_high, int *x);
+extern "C" void NumberIO_StrToHexInt (const char *a_, unsigned int _a_high, int *x);
+extern "C" void NumberIO_StrToOctInt (const char *a_, unsigned int _a_high, int *x);
+
+extern "C" void NumberIO_ReadCard (unsigned int *x)
+{
+ typedef struct ReadCard__T1_a ReadCard__T1;
+
+ struct ReadCard__T1_a { char array[MaxLineLength+1]; };
+ ReadCard__T1 a;
+
+ StrIO_ReadString ((char *) &a.array[0], MaxLineLength);
+ NumberIO_StrToCard ((const char *) &a.array[0], MaxLineLength, x);
+}
+
+extern "C" void NumberIO_WriteCard (unsigned int x, unsigned int n)
+{
+ typedef struct WriteCard__T2_a WriteCard__T2;
+
+ struct WriteCard__T2_a { char array[MaxLineLength+1]; };
+ WriteCard__T2 a;
+
+ NumberIO_CardToStr (x, n, (char *) &a.array[0], MaxLineLength);
+ StrIO_WriteString ((const char *) &a.array[0], MaxLineLength);
+}
+
+extern "C" void NumberIO_ReadHex (unsigned int *x)
+{
+ typedef struct ReadHex__T3_a ReadHex__T3;
+
+ struct ReadHex__T3_a { char array[MaxLineLength+1]; };
+ ReadHex__T3 a;
+
+ StrIO_ReadString ((char *) &a.array[0], MaxLineLength);
+ NumberIO_StrToHex ((const char *) &a.array[0], MaxLineLength, x);
+}
+
+extern "C" void NumberIO_WriteHex (unsigned int x, unsigned int n)
+{
+ typedef struct WriteHex__T4_a WriteHex__T4;
+
+ struct WriteHex__T4_a { char array[MaxLineLength+1]; };
+ WriteHex__T4 a;
+
+ NumberIO_HexToStr (x, n, (char *) &a.array[0], MaxLineLength);
+ StrIO_WriteString ((const char *) &a.array[0], MaxLineLength);
+}
+
+extern "C" void NumberIO_ReadInt (int *x)
+{
+ typedef struct ReadInt__T5_a ReadInt__T5;
+
+ struct ReadInt__T5_a { char array[MaxLineLength+1]; };
+ ReadInt__T5 a;
+
+ StrIO_ReadString ((char *) &a.array[0], MaxLineLength);
+ NumberIO_StrToInt ((const char *) &a.array[0], MaxLineLength, x);
+}
+
+extern "C" void NumberIO_WriteInt (int x, unsigned int n)
+{
+ typedef struct WriteInt__T6_a WriteInt__T6;
+
+ struct WriteInt__T6_a { char array[MaxLineLength+1]; };
+ WriteInt__T6 a;
+
+ NumberIO_IntToStr (x, n, (char *) &a.array[0], MaxLineLength);
+ StrIO_WriteString ((const char *) &a.array[0], MaxLineLength);
+}
+
+extern "C" void NumberIO_CardToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high)
+{
+ typedef struct CardToStr__T7_a CardToStr__T7;
+
+ struct CardToStr__T7_a { unsigned int array[MaxDigits-1+1]; };
+ unsigned int i;
+ unsigned int j;
+ unsigned int Higha;
+ CardToStr__T7 buf;
+
+ i = 0;
+ do {
+ i += 1;
+ if (i > MaxDigits)
+ {
+ StrIO_WriteString ((const char *) "NumberIO - increase MaxDigits", 29);
+ StrIO_WriteLn ();
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ buf.array[i-1] = x % 10;
+ x = x / 10;
+ } while (! (x == 0));
+ j = 0;
+ Higha = _a_high;
+ while ((n > i) && (j <= Higha))
+ {
+ a[j] = ' ';
+ j += 1;
+ n -= 1;
+ }
+ while ((i > 0) && (j <= Higha))
+ {
+ a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+ j += 1;
+ i -= 1;
+ }
+ if (j <= Higha)
+ {
+ a[j] = ASCII_nul;
+ }
+}
+
+extern "C" void NumberIO_StrToCard (const char *a_, unsigned int _a_high, unsigned int *x)
+{
+ unsigned int i;
+ unsigned int ok;
+ unsigned int higha;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ StrLib_StrRemoveWhitePrefix ((const char *) a, _a_high, (char *) a, _a_high);
+ higha = StrLib_StrLen ((const char *) a, _a_high);
+ i = 0;
+ ok = TRUE;
+ while (ok)
+ {
+ if (i < higha)
+ {
+ if ((a[i] < '0') || (a[i] > '9'))
+ {
+ i += 1;
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ (*x) = 0;
+ if (i < higha)
+ {
+ ok = TRUE;
+ do {
+ (*x) = (10*(*x))+( ((unsigned int) (a[i]))- ((unsigned int) ('0')));
+ if (i < higha)
+ {
+ /* avoid dangling else. */
+ i += 1;
+ if ((a[i] < '0') || (a[i] > '9'))
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ } while (! (! ok));
+ }
+}
+
+extern "C" void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high)
+{
+ typedef struct HexToStr__T8_a HexToStr__T8;
+
+ struct HexToStr__T8_a { unsigned int array[MaxHexDigits-1+1]; };
+ unsigned int i;
+ unsigned int j;
+ unsigned int Higha;
+ HexToStr__T8 buf;
+
+ i = 0;
+ do {
+ i += 1;
+ if (i > MaxHexDigits)
+ {
+ StrIO_WriteString ((const char *) "NumberIO - increase MaxDigits", 29);
+ StrIO_WriteLn ();
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ buf.array[i-1] = x % 0x010;
+ x = x / 0x010;
+ } while (! (x == 0));
+ j = 0;
+ Higha = _a_high;
+ while ((n > i) && (j <= Higha))
+ {
+ a[j] = '0';
+ j += 1;
+ n -= 1;
+ }
+ while ((i != 0) && (j <= Higha))
+ {
+ if (buf.array[i-1] < 10)
+ {
+ a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+ }
+ else
+ {
+ a[j] = ((char) ((buf.array[i-1]+ ((unsigned int) ('A')))-10));
+ }
+ j += 1;
+ i -= 1;
+ }
+ if (j <= Higha)
+ {
+ a[j] = ASCII_nul;
+ }
+}
+
+extern "C" void NumberIO_StrToHex (const char *a_, unsigned int _a_high, unsigned int *x)
+{
+ int i;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ NumberIO_StrToHexInt ((const char *) a, _a_high, &i);
+ (*x) = (unsigned int ) (i);
+}
+
+extern "C" void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int _a_high)
+{
+ typedef struct IntToStr__T9_a IntToStr__T9;
+
+ struct IntToStr__T9_a { unsigned int array[MaxDigits-1+1]; };
+ unsigned int i;
+ unsigned int j;
+ unsigned int c;
+ unsigned int Higha;
+ IntToStr__T9 buf;
+ unsigned int Negative;
+
+ if (x < 0)
+ {
+ /* avoid dangling else. */
+ Negative = TRUE;
+ c = ((unsigned int ) (abs (x+1)))+1;
+ if (n > 0)
+ {
+ n -= 1;
+ }
+ }
+ else
+ {
+ c = x;
+ Negative = FALSE;
+ }
+ i = 0;
+ do {
+ i += 1;
+ if (i > MaxDigits)
+ {
+ StrIO_WriteString ((const char *) "NumberIO - increase MaxDigits", 29);
+ StrIO_WriteLn ();
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ buf.array[i-1] = c % 10;
+ c = c / 10;
+ } while (! (c == 0));
+ j = 0;
+ Higha = _a_high;
+ while ((n > i) && (j <= Higha))
+ {
+ a[j] = ' ';
+ j += 1;
+ n -= 1;
+ }
+ if (Negative)
+ {
+ a[j] = '-';
+ j += 1;
+ }
+ while ((i != 0) && (j <= Higha))
+ {
+ a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+ j += 1;
+ i -= 1;
+ }
+ if (j <= Higha)
+ {
+ a[j] = ASCII_nul;
+ }
+}
+
+extern "C" void NumberIO_StrToInt (const char *a_, unsigned int _a_high, int *x)
+{
+ unsigned int i;
+ unsigned int ok;
+ unsigned int Negative;
+ unsigned int higha;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ StrLib_StrRemoveWhitePrefix ((const char *) a, _a_high, (char *) a, _a_high);
+ higha = StrLib_StrLen ((const char *) a, _a_high);
+ i = 0;
+ Negative = FALSE;
+ ok = TRUE;
+ while (ok)
+ {
+ if (i < higha)
+ {
+ if (a[i] == '-')
+ {
+ i += 1;
+ Negative = ! Negative;
+ }
+ else if ((a[i] < '0') || (a[i] > '9'))
+ {
+ /* avoid dangling else. */
+ i += 1;
+ }
+ else
+ {
+ /* avoid dangling else. */
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ (*x) = 0;
+ if (i < higha)
+ {
+ ok = TRUE;
+ do {
+ if (Negative)
+ {
+ (*x) = (10*(*x))-((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0'))));
+ }
+ else
+ {
+ (*x) = (10*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0'))));
+ }
+ if (i < higha)
+ {
+ /* avoid dangling else. */
+ i += 1;
+ if ((a[i] < '0') || (a[i] > '9'))
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ } while (! (! ok));
+ }
+}
+
+extern "C" void NumberIO_ReadOct (unsigned int *x)
+{
+ typedef struct ReadOct__T10_a ReadOct__T10;
+
+ struct ReadOct__T10_a { char array[MaxLineLength+1]; };
+ ReadOct__T10 a;
+
+ StrIO_ReadString ((char *) &a.array[0], MaxLineLength);
+ NumberIO_StrToOct ((const char *) &a.array[0], MaxLineLength, x);
+}
+
+extern "C" void NumberIO_WriteOct (unsigned int x, unsigned int n)
+{
+ typedef struct WriteOct__T11_a WriteOct__T11;
+
+ struct WriteOct__T11_a { char array[MaxLineLength+1]; };
+ WriteOct__T11 a;
+
+ NumberIO_OctToStr (x, n, (char *) &a.array[0], MaxLineLength);
+ StrIO_WriteString ((const char *) &a.array[0], MaxLineLength);
+}
+
+extern "C" void NumberIO_OctToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high)
+{
+ typedef struct OctToStr__T12_a OctToStr__T12;
+
+ struct OctToStr__T12_a { unsigned int array[MaxOctDigits-1+1]; };
+ unsigned int i;
+ unsigned int j;
+ unsigned int Higha;
+ OctToStr__T12 buf;
+
+ i = 0;
+ do {
+ i += 1;
+ if (i > MaxOctDigits)
+ {
+ StrIO_WriteString ((const char *) "NumberIO - increase MaxDigits", 29);
+ StrIO_WriteLn ();
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ buf.array[i-1] = x % 8;
+ x = x / 8;
+ } while (! (x == 0));
+ j = 0;
+ Higha = _a_high;
+ while ((n > i) && (j <= Higha))
+ {
+ a[j] = ' ';
+ j += 1;
+ n -= 1;
+ }
+ while ((i > 0) && (j <= Higha))
+ {
+ a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+ j += 1;
+ i -= 1;
+ }
+ if (j <= Higha)
+ {
+ a[j] = ASCII_nul;
+ }
+}
+
+extern "C" void NumberIO_StrToOct (const char *a_, unsigned int _a_high, unsigned int *x)
+{
+ int i;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ NumberIO_StrToOctInt ((const char *) a, _a_high, &i);
+ (*x) = (unsigned int ) (i);
+}
+
+extern "C" void NumberIO_ReadBin (unsigned int *x)
+{
+ typedef struct ReadBin__T13_a ReadBin__T13;
+
+ struct ReadBin__T13_a { char array[MaxLineLength+1]; };
+ ReadBin__T13 a;
+
+ StrIO_ReadString ((char *) &a.array[0], MaxLineLength);
+ NumberIO_StrToBin ((const char *) &a.array[0], MaxLineLength, x);
+}
+
+extern "C" void NumberIO_WriteBin (unsigned int x, unsigned int n)
+{
+ typedef struct WriteBin__T14_a WriteBin__T14;
+
+ struct WriteBin__T14_a { char array[MaxLineLength+1]; };
+ WriteBin__T14 a;
+
+ NumberIO_BinToStr (x, n, (char *) &a.array[0], MaxLineLength);
+ StrIO_WriteString ((const char *) &a.array[0], MaxLineLength);
+}
+
+extern "C" void NumberIO_BinToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high)
+{
+ typedef struct BinToStr__T15_a BinToStr__T15;
+
+ struct BinToStr__T15_a { unsigned int array[MaxBits-1+1]; };
+ unsigned int i;
+ unsigned int j;
+ unsigned int Higha;
+ BinToStr__T15 buf;
+
+ i = 0;
+ do {
+ i += 1;
+ if (i > MaxBits)
+ {
+ StrIO_WriteString ((const char *) "NumberIO - increase MaxBits", 27);
+ StrIO_WriteLn ();
+ M2RTS_HALT (-1);
+ __builtin_unreachable ();
+ }
+ buf.array[i-1] = x % 2;
+ x = x / 2;
+ } while (! (x == 0));
+ j = 0;
+ Higha = _a_high;
+ while ((n > i) && (j <= Higha))
+ {
+ a[j] = ' ';
+ j += 1;
+ n -= 1;
+ }
+ while ((i > 0) && (j <= Higha))
+ {
+ a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+ j += 1;
+ i -= 1;
+ }
+ if (j <= Higha)
+ {
+ a[j] = ASCII_nul;
+ }
+}
+
+extern "C" void NumberIO_StrToBin (const char *a_, unsigned int _a_high, unsigned int *x)
+{
+ int i;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ NumberIO_StrToBinInt ((const char *) a, _a_high, &i);
+ (*x) = (unsigned int ) (i);
+}
+
+extern "C" void NumberIO_StrToBinInt (const char *a_, unsigned int _a_high, int *x)
+{
+ unsigned int i;
+ unsigned int ok;
+ unsigned int higha;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ StrLib_StrRemoveWhitePrefix ((const char *) a, _a_high, (char *) a, _a_high);
+ higha = StrLib_StrLen ((const char *) a, _a_high);
+ i = 0;
+ ok = TRUE;
+ while (ok)
+ {
+ if (i < higha)
+ {
+ if ((a[i] < '0') || (a[i] > '1'))
+ {
+ i += 1;
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ (*x) = 0;
+ if (i < higha)
+ {
+ ok = TRUE;
+ do {
+ (*x) = (2*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0'))));
+ if (i < higha)
+ {
+ /* avoid dangling else. */
+ i += 1;
+ if ((a[i] < '0') || (a[i] > '1'))
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ } while (! (! ok));
+ }
+}
+
+extern "C" void NumberIO_StrToHexInt (const char *a_, unsigned int _a_high, int *x)
+{
+ unsigned int i;
+ unsigned int ok;
+ unsigned int higha;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ StrLib_StrRemoveWhitePrefix ((const char *) a, _a_high, (char *) a, _a_high);
+ higha = StrLib_StrLen ((const char *) a, _a_high);
+ i = 0;
+ ok = TRUE;
+ while (ok)
+ {
+ if (i < higha)
+ {
+ if (((a[i] >= '0') && (a[i] <= '9')) || ((a[i] >= 'A') && (a[i] <= 'F')))
+ {
+ ok = FALSE;
+ }
+ else
+ {
+ i += 1;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ (*x) = 0;
+ if (i < higha)
+ {
+ ok = TRUE;
+ do {
+ if ((a[i] >= '0') && (a[i] <= '9'))
+ {
+ (*x) = (0x010*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0'))));
+ }
+ else if ((a[i] >= 'A') && (a[i] <= 'F'))
+ {
+ /* avoid dangling else. */
+ (*x) = (0x010*(*x))+((int ) (( ((unsigned int) (a[i]))- ((unsigned int) ('A')))+10));
+ }
+ if (i < higha)
+ {
+ /* avoid dangling else. */
+ i += 1;
+ if (((a[i] < '0') || (a[i] > '9')) && ((a[i] < 'A') || (a[i] > 'F')))
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ } while (! (! ok));
+ }
+}
+
+extern "C" void NumberIO_StrToOctInt (const char *a_, unsigned int _a_high, int *x)
+{
+ unsigned int i;
+ unsigned int ok;
+ unsigned int higha;
+ char a[_a_high+1];
+
+ /* make a local copy of each unbounded array. */
+ memcpy (a, a_, _a_high+1);
+
+ StrLib_StrRemoveWhitePrefix ((const char *) a, _a_high, (char *) a, _a_high);
+ higha = StrLib_StrLen ((const char *) a, _a_high);
+ i = 0;
+ ok = TRUE;
+ while (ok)
+ {
+ if (i < higha)
+ {
+ if ((a[i] < '0') || (a[i] > '7'))
+ {
+ i += 1;
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ }
+ (*x) = 0;
+ if (i < higha)
+ {
+ ok = TRUE;
+ do {
+ (*x) = (8*(*x))+((int ) ( ((unsigned int) (a[i]))- ((unsigned int) ('0'))));
+ if (i < higha)
+ {
+ /* avoid dangling else. */
+ i += 1;
+ if ((a[i] < '0') || (a[i] > '7'))
+ {
+ ok = FALSE;
+ }
+ }
+ else
+ {
+ ok = FALSE;
+ }
+ } while (! (! ok));
+ }
+}
+
+extern "C" void _M2_NumberIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+{
+}
+
+extern "C" void _M2_NumberIO_finish (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+{
+}