1 /* do not edit automatically generated by mc from mcMetaError. */
2 /* This file is part of GNU Modula-2.
4 GNU Modula-2 is free software; you can redistribute it and/or modify it under
5 the terms of the GNU General Public License as published by the Free
6 Software Foundation; either version 3, or (at your option) any later
9 GNU Modula-2 is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 You should have received a copy of the GNU General Public License
15 along with GCC; see the file COPYING3. If not see
16 <http://www.gnu.org/licenses/>. */
21 # if !defined (PROC_D)
23 typedef void (*PROC_t
) (void);
24 typedef struct { PROC_t proc
; } PROC
;
35 #if defined(__cplusplus)
39 #define _mcMetaError_C
41 #include "GmcMetaError.h"
42 # include "GnameKey.h"
44 # include "GmcLexBuf.h"
45 # include "GmcError.h"
48 # include "GStringConvert.h"
49 # include "Gvarargs.h"
50 # include "GDynamicStrings.h"
53 typedef enum {mcMetaError_newerror
, mcMetaError_newwarning
, mcMetaError_chained
} mcMetaError_errorType
;
60 extern "C" void mcMetaError_metaError1 (const char *m_
, unsigned int _m_high
, const unsigned char *s_
, unsigned int _s_high
);
66 extern "C" void mcMetaError_metaError2 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
72 extern "C" void mcMetaError_metaError3 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
78 extern "C" void mcMetaError_metaError4 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
84 extern "C" void mcMetaError_metaErrors1 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s_
, unsigned int _s_high
);
90 extern "C" void mcMetaError_metaErrors2 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
96 extern "C" void mcMetaError_metaErrors3 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
102 extern "C" void mcMetaError_metaErrors4 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
108 extern "C" void mcMetaError_metaErrorT1 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s_
, unsigned int _s_high
);
114 extern "C" void mcMetaError_metaErrorT2 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
120 extern "C" void mcMetaError_metaErrorT3 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
126 extern "C" void mcMetaError_metaErrorT4 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
132 extern "C" void mcMetaError_metaErrorsT1 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s_
, unsigned int _s_high
);
138 extern "C" void mcMetaError_metaErrorsT2 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
144 extern "C" void mcMetaError_metaErrorsT3 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
150 extern "C" void mcMetaError_metaErrorsT4 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
156 extern "C" void mcMetaError_metaErrorString1 (DynamicStrings_String m
, const unsigned char *s_
, unsigned int _s_high
);
162 extern "C" void mcMetaError_metaErrorString2 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
168 extern "C" void mcMetaError_metaErrorString3 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
174 extern "C" void mcMetaError_metaErrorString4 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
180 extern "C" void mcMetaError_metaErrorStringT1 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s_
, unsigned int _s_high
);
186 extern "C" void mcMetaError_metaErrorStringT2 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
);
192 extern "C" void mcMetaError_metaErrorStringT3 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
);
198 extern "C" void mcMetaError_metaErrorStringT4 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
);
201 internalFormat - produces an informative internal error.
204 static void internalFormat (DynamicStrings_String s
, int i
, const char *m_
, unsigned int _m_high
);
207 x - checks to see that a=b.
210 static DynamicStrings_String
x (DynamicStrings_String a
, DynamicStrings_String b
);
213 isWhite - returns TRUE if, ch, is a space.
216 static bool isWhite (char ch
);
219 then := [ ':' ebnf ] =:
222 static void then (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, DynamicStrings_String o
, bool positive
);
228 static DynamicStrings_String
doNumber (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
);
234 static DynamicStrings_String
doCount (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
);
240 static DynamicStrings_String
doAscii (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
);
246 static DynamicStrings_String
doName (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
);
252 static DynamicStrings_String
doQualified (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
);
255 doType - returns a string containing the type name of
256 sym. It will skip pseudonym types. It also
257 returns the type symbol found.
260 static DynamicStrings_String
doType (unsigned int bol
, varargs_vararg
*sym
, DynamicStrings_String o
);
263 doSkipType - will skip all pseudonym types. It also
264 returns the type symbol found and name.
267 static DynamicStrings_String
doSkipType (unsigned int bol
, varargs_vararg
*sym
, DynamicStrings_String o
);
270 doSkipType - will skip all pseudonym types. It also
271 returns the type symbol found and name.
274 static DynamicStrings_String
doKey (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
);
277 doError - creates and returns an error note.
280 static mcError_error
doError (mcError_error e
, mcMetaError_errorType t
, unsigned int tok
);
283 doDeclaredDef - creates an error note where sym[bol] was declared.
286 static mcError_error
doDeclaredDef (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
);
289 doDeclaredMod - creates an error note where sym[bol] was declared.
292 static mcError_error
doDeclaredMod (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
);
295 doUsed - creates an error note where sym[bol] was first used.
298 static mcError_error
doUsed (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
);
301 ConCatWord - joins sentances, a, b, together.
304 static DynamicStrings_String
ConCatWord (DynamicStrings_String a
, DynamicStrings_String b
);
310 static DynamicStrings_String
symDesc (decl_node n
, DynamicStrings_String o
);
316 static DynamicStrings_String
doDesc (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
);
319 addQuoted - if, o, is not empty then add it to, r.
322 static DynamicStrings_String
addQuoted (DynamicStrings_String r
, DynamicStrings_String o
, bool quotes
);
325 op := {'a'|'q'|'t'|'d'|'k'|'n'|'s'|'D'|'I'|'U'|'E'|'W'} then =:
328 static void op (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, unsigned int bol
, bool positive
);
331 percenttoken := '%' (
334 | '2' % doOperand(2) %
336 | '3' % doOperand(3) %
338 | '4' % doOperand(4) %
344 static void percenttoken (mcError_error
*e
, mcMetaError_errorType t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, bool positive
);
347 percent := '%' anych % copy anych %
351 static void percent (DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
);
354 lbra := '{' [ '!' ] percenttoken '}' =:
357 static void lbra (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
);
360 lbra := '{' [ '!' ] percenttoken '}' =:
363 static void stop (void);
373 static void ebnf (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
);
379 static DynamicStrings_String
doFormat (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String s
, varargs_vararg sym
);
385 static void wrapErrors (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, varargs_vararg sym
);
389 internalFormat - produces an informative internal error.
392 static void internalFormat (DynamicStrings_String s
, int i
, const char *m_
, unsigned int _m_high
)
397 /* make a local copy of each unbounded array. */
398 memcpy (m
, m_
, _m_high
+1);
400 e
= mcError_newError (mcLexBuf_getTokenNo ());
401 s
= SFIO_WriteS (FIO_StdOut
, s
);
402 FIO_WriteLine (FIO_StdOut
);
403 s
= DynamicStrings_KillString (s
);
408 s
= DynamicStrings_Mult (DynamicStrings_InitString ((const char *) " ", 1), static_cast<unsigned int> (i
));
409 s
= DynamicStrings_ConCatChar (s
, '^');
410 s
= SFIO_WriteS (FIO_StdOut
, s
);
411 FIO_WriteLine (FIO_StdOut
);
412 mcError_internalError ((const char *) m
, _m_high
, (const char *) "../../gcc/m2/mc/mcMetaError.mod", 31, 97);
417 x - checks to see that a=b.
420 static DynamicStrings_String
x (DynamicStrings_String a
, DynamicStrings_String b
)
424 mcError_internalError ((const char *) "different string returned", 25, (const char *) "../../gcc/m2/mc/mcMetaError.mod", 31, 109);
427 /* static analysis guarentees a RETURN statement will be used before here. */
428 __builtin_unreachable ();
433 isWhite - returns TRUE if, ch, is a space.
436 static bool isWhite (char ch
)
439 /* static analysis guarentees a RETURN statement will be used before here. */
440 __builtin_unreachable ();
445 then := [ ':' ebnf ] =:
448 static void then (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, DynamicStrings_String o
, bool positive
)
450 if ((DynamicStrings_char (s
, (*i
))) == ':')
453 ebnf (e
, t
, r
, s
, sym
, i
, l
);
454 if (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
456 internalFormat (s
, (*i
), (const char *) "expecting to see }", 18);
466 static DynamicStrings_String
doNumber (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
)
470 if ((DynamicStrings_Length (o
)) > 0)
477 varargs_next (sym
, bol
);
478 varargs_arg (sym
, (unsigned char *) &c
, (sizeof (c
)-1));
479 return DynamicStrings_ConCat (o
, StringConvert_ctos (c
, 0, ' '));
481 /* static analysis guarentees a RETURN statement will be used before here. */
482 __builtin_unreachable ();
490 static DynamicStrings_String
doCount (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
)
494 if ((DynamicStrings_Length (o
)) > 0)
501 varargs_next (sym
, bol
);
502 varargs_arg (sym
, (unsigned char *) &c
, (sizeof (c
)-1));
503 o
= DynamicStrings_ConCat (o
, StringConvert_ctos (c
, 0, ' '));
504 if (((c
% 100) >= 11) && ((c
% 100) <= 13))
506 o
= DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "th", 2)));
513 o
= DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "st", 2)));
517 o
= DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "nd", 2)));
521 o
= DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "rd", 2)));
526 o
= DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "th", 2)));
532 /* static analysis guarentees a RETURN statement will be used before here. */
533 __builtin_unreachable ();
541 static DynamicStrings_String
doAscii (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
)
545 varargs_next (sym
, bol
);
546 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
547 if (((DynamicStrings_Length (o
)) > 0) || (decl_isTemporary (n
)))
553 return DynamicStrings_ConCat (o
, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n
))));
555 /* static analysis guarentees a RETURN statement will be used before here. */
556 __builtin_unreachable ();
564 static DynamicStrings_String
doName (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
)
568 varargs_next (sym
, bol
);
569 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
570 if (((DynamicStrings_Length (o
)) > 0) || (decl_isTemporary (n
)))
576 if (decl_isZtype (n
))
579 return DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "the ZType", 9)));
581 else if (decl_isRtype (n
))
583 /* avoid dangling else. */
585 return DynamicStrings_ConCat (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "the RType", 9)));
587 else if ((decl_getSymName (n
)) != nameKey_NulName
)
589 /* avoid dangling else. */
590 return DynamicStrings_ConCat (o
, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n
))));
594 /* avoid dangling else. */
598 /* static analysis guarentees a RETURN statement will be used before here. */
599 __builtin_unreachable ();
607 static DynamicStrings_String
doQualified (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
)
613 varargs_next (sym
, bol
);
614 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
615 if (((DynamicStrings_Length (o
)) > 0) || (decl_isTemporary (n
)))
621 s
= decl_getScope (n
);
622 mod
= varargs_start1 ((const unsigned char *) &s
, (sizeof (s
)-1));
623 if ((decl_isDef (s
)) && (decl_isExported (n
)))
625 o
= x (o
, doAscii (0, mod
, o
));
626 o
= x (o
, DynamicStrings_ConCatChar (o
, '.'));
627 o
= x (o
, DynamicStrings_ConCat (o
, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n
)))));
631 o
= x (o
, doAscii (bol
, sym
, o
));
636 /* static analysis guarentees a RETURN statement will be used before here. */
637 __builtin_unreachable ();
642 doType - returns a string containing the type name of
643 sym. It will skip pseudonym types. It also
644 returns the type symbol found.
647 static DynamicStrings_String
doType (unsigned int bol
, varargs_vararg
*sym
, DynamicStrings_String o
)
651 varargs_next ((*sym
), bol
);
652 varargs_arg ((*sym
), (unsigned char *) &n
, (sizeof (n
)-1));
653 if (((DynamicStrings_Length (o
)) > 0) || ((decl_getType (n
)) == NULL
))
659 n
= decl_skipType (decl_getType (n
));
660 varargs_next ((*sym
), bol
);
661 varargs_replace ((*sym
), (unsigned char *) &n
, (sizeof (n
)-1));
662 return x (o
, doAscii (bol
, (*sym
), o
));
664 /* static analysis guarentees a RETURN statement will be used before here. */
665 __builtin_unreachable ();
670 doSkipType - will skip all pseudonym types. It also
671 returns the type symbol found and name.
674 static DynamicStrings_String
doSkipType (unsigned int bol
, varargs_vararg
*sym
, DynamicStrings_String o
)
678 varargs_next ((*sym
), bol
);
679 varargs_arg ((*sym
), (unsigned char *) &n
, (sizeof (n
)-1));
680 if ((DynamicStrings_Length (o
)) > 0)
686 n
= decl_skipType (decl_getType (n
));
687 varargs_next ((*sym
), bol
);
688 varargs_replace ((*sym
), (unsigned char *) &n
, (sizeof (n
)-1));
689 if ((decl_getSymName (n
)) == nameKey_NulName
)
695 return x (o
, doAscii (bol
, (*sym
), o
));
698 /* static analysis guarentees a RETURN statement will be used before here. */
699 __builtin_unreachable ();
704 doSkipType - will skip all pseudonym types. It also
705 returns the type symbol found and name.
708 static DynamicStrings_String
doKey (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
)
712 if ((DynamicStrings_Length (o
)) > 0)
718 varargs_next (sym
, bol
);
719 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
720 return DynamicStrings_ConCat (o
, DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n
)));
722 /* static analysis guarentees a RETURN statement will be used before here. */
723 __builtin_unreachable ();
728 doError - creates and returns an error note.
731 static mcError_error
doError (mcError_error e
, mcMetaError_errorType t
, unsigned int tok
)
735 case mcMetaError_chained
:
738 mcError_internalError ((const char *) "should not be chaining an error onto an empty error note", 56, (const char *) "../../gcc/m2/mc/mcMetaError.mod", 31, 355);
742 e
= mcError_chainError (tok
, e
);
746 case mcMetaError_newerror
:
749 e
= mcError_newError (tok
);
753 case mcMetaError_newwarning
:
756 e
= mcError_newWarning (tok
);
762 mcError_internalError ((const char *) "unexpected enumeration value", 28, (const char *) "../../gcc/m2/mc/mcMetaError.mod", 31, 369);
766 /* static analysis guarentees a RETURN statement will be used before here. */
767 __builtin_unreachable ();
772 doDeclaredDef - creates an error note where sym[bol] was declared.
775 static mcError_error
doDeclaredDef (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
)
779 if (bol
<= (varargs_nargs (sym
)))
781 varargs_next (sym
, bol
);
782 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
783 e
= doError (e
, t
, decl_getDeclaredDef (n
));
786 /* static analysis guarentees a RETURN statement will be used before here. */
787 __builtin_unreachable ();
792 doDeclaredMod - creates an error note where sym[bol] was declared.
795 static mcError_error
doDeclaredMod (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
)
799 if (bol
<= (varargs_nargs (sym
)))
801 varargs_next (sym
, bol
);
802 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
803 e
= doError (e
, t
, decl_getDeclaredMod (n
));
806 /* static analysis guarentees a RETURN statement will be used before here. */
807 __builtin_unreachable ();
812 doUsed - creates an error note where sym[bol] was first used.
815 static mcError_error
doUsed (mcError_error e
, mcMetaError_errorType t
, unsigned int bol
, varargs_vararg sym
)
819 if (bol
<= (varargs_nargs (sym
)))
821 varargs_next (sym
, bol
);
822 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
823 e
= doError (e
, t
, decl_getFirstUsed (n
));
826 /* static analysis guarentees a RETURN statement will be used before here. */
827 __builtin_unreachable ();
832 ConCatWord - joins sentances, a, b, together.
835 static DynamicStrings_String
ConCatWord (DynamicStrings_String a
, DynamicStrings_String b
)
837 if (((DynamicStrings_Length (a
)) == 1) && ((DynamicStrings_char (a
, 0)) == 'a'))
839 a
= x (a
, DynamicStrings_ConCatChar (a
, 'n'));
841 else if ((((DynamicStrings_Length (a
)) > 1) && ((DynamicStrings_char (a
, -1)) == 'a')) && (isWhite (DynamicStrings_char (a
, -2))))
843 /* avoid dangling else. */
844 a
= x (a
, DynamicStrings_ConCatChar (a
, 'n'));
846 if (((DynamicStrings_Length (a
)) > 0) && (! (isWhite (DynamicStrings_char (a
, -1)))))
848 a
= x (a
, DynamicStrings_ConCatChar (a
, ' '));
850 return x (a
, DynamicStrings_ConCat (a
, b
));
851 /* static analysis guarentees a RETURN statement will be used before here. */
852 __builtin_unreachable ();
860 static DynamicStrings_String
symDesc (decl_node n
, DynamicStrings_String o
)
862 if (decl_isLiteral (n
))
864 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "literal", 7)));
866 else if (decl_isConstSet (n
))
868 /* avoid dangling else. */
870 ELSIF IsConstructor(n)
872 RETURN( ConCatWord (o, Mark (InitString ('constructor'))) )
874 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "constant set", 12)));
876 else if (decl_isConst (n
))
878 /* avoid dangling else. */
879 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "constant", 8)));
881 else if (decl_isArray (n
))
883 /* avoid dangling else. */
884 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "array", 5)));
886 else if (decl_isVar (n
))
888 /* avoid dangling else. */
889 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "variable", 8)));
891 else if (decl_isEnumeration (n
))
893 /* avoid dangling else. */
894 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "enumeration type", 16)));
896 else if (decl_isEnumerationField (n
))
898 /* avoid dangling else. */
899 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "enumeration field", 17)));
901 else if (decl_isUnbounded (n
))
903 /* avoid dangling else. */
904 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "unbounded parameter", 19)));
906 else if (decl_isProcType (n
))
908 /* avoid dangling else. */
909 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "procedure type", 14)));
911 else if (decl_isProcedure (n
))
913 /* avoid dangling else. */
914 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "procedure", 9)));
916 else if (decl_isPointer (n
))
918 /* avoid dangling else. */
919 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "pointer", 7)));
921 else if (decl_isParameter (n
))
923 /* avoid dangling else. */
924 if (decl_isVarParam (n
))
926 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "var parameter", 13)));
930 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "parameter", 9)));
933 else if (decl_isType (n
))
935 /* avoid dangling else. */
936 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "type", 4)));
938 else if (decl_isRecord (n
))
940 /* avoid dangling else. */
941 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "record", 6)));
943 else if (decl_isRecordField (n
))
945 /* avoid dangling else. */
946 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "record field", 12)));
948 else if (decl_isVarient (n
))
950 /* avoid dangling else. */
951 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "varient record", 14)));
953 else if (decl_isModule (n
))
955 /* avoid dangling else. */
956 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "module", 6)));
958 else if (decl_isDef (n
))
960 /* avoid dangling else. */
961 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "definition module", 17)));
963 else if (decl_isImp (n
))
965 /* avoid dangling else. */
966 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "implementation module", 21)));
968 else if (decl_isSet (n
))
970 /* avoid dangling else. */
971 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "set", 3)));
973 else if (decl_isSubrange (n
))
975 /* avoid dangling else. */
976 return ConCatWord (o
, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "subrange", 8)));
980 /* avoid dangling else. */
983 /* static analysis guarentees a RETURN statement will be used before here. */
984 __builtin_unreachable ();
992 static DynamicStrings_String
doDesc (unsigned int bol
, varargs_vararg sym
, DynamicStrings_String o
, bool *quotes
)
996 if ((DynamicStrings_Length (o
)) == 0)
998 varargs_next (sym
, bol
);
999 varargs_arg (sym
, (unsigned char *) &n
, (sizeof (n
)-1));
1001 if ((DynamicStrings_Length (o
)) > 0)
1007 /* static analysis guarentees a RETURN statement will be used before here. */
1008 __builtin_unreachable ();
1013 addQuoted - if, o, is not empty then add it to, r.
1016 static DynamicStrings_String
addQuoted (DynamicStrings_String r
, DynamicStrings_String o
, bool quotes
)
1018 if ((DynamicStrings_Length (o
)) > 0)
1020 if (! (isWhite (DynamicStrings_char (r
, -1))))
1022 r
= x (r
, DynamicStrings_ConCatChar (r
, ' '));
1026 r
= x (r
, DynamicStrings_ConCatChar (r
, '\''));
1028 r
= x (r
, DynamicStrings_ConCat (r
, o
));
1031 r
= x (r
, DynamicStrings_ConCatChar (r
, '\''));
1035 /* static analysis guarentees a RETURN statement will be used before here. */
1036 __builtin_unreachable ();
1041 op := {'a'|'q'|'t'|'d'|'k'|'n'|'s'|'D'|'I'|'U'|'E'|'W'} then =:
1044 static void op (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, unsigned int bol
, bool positive
)
1046 DynamicStrings_String o
;
1050 c
= varargs_copy (sym
);
1051 o
= DynamicStrings_InitString ((const char *) "", 0);
1053 while (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
1055 switch (DynamicStrings_char (s
, (*i
)))
1058 o
= x (o
, doName (bol
, sym
, o
, "es
));
1062 o
= x (o
, doQualified (bol
, sym
, o
));
1066 o
= x (o
, doType (bol
, &sym
, o
));
1070 o
= x (o
, doDesc (bol
, sym
, o
, "es
));
1074 o
= x (o
, doNumber (bol
, sym
, o
, "es
));
1078 o
= x (o
, doCount (bol
, sym
, o
, "es
));
1082 o
= x (o
, doSkipType (bol
, &sym
, o
));
1086 o
= x (o
, doKey (bol
, sym
, o
));
1090 (*e
) = doDeclaredDef ((*e
), (*t
), bol
, sym
);
1094 (*e
) = doDeclaredMod ((*e
), (*t
), bol
, sym
);
1098 (*e
) = doUsed ((*e
), (*t
), bol
, sym
);
1102 (*t
) = mcMetaError_newerror
;
1106 (*t
) = mcMetaError_newwarning
;
1111 sym
= varargs_copy (c
);
1112 then (e
, t
, r
, s
, sym
, i
, l
, o
, positive
);
1113 o
= DynamicStrings_KillString (o
);
1114 o
= DynamicStrings_InitString ((const char *) "", 0);
1115 if (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
1117 internalFormat (s
, (*i
), (const char *) "expecting to see }", 18);
1124 internalFormat (s
, (*i
), (const char *) "expecting one of [aqtdnNsDUEW:]", 31);
1129 (*r
) = x ((*r
), addQuoted ((*r
), o
, quotes
));
1130 o
= DynamicStrings_KillString (o
);
1135 percenttoken := '%' (
1136 '1' % doOperand(1) %
1138 | '2' % doOperand(2) %
1140 | '3' % doOperand(3) %
1142 | '4' % doOperand(4) %
1148 static void percenttoken (mcError_error
*e
, mcMetaError_errorType t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
, bool positive
)
1150 if ((DynamicStrings_char (s
, (*i
))) == '%')
1153 switch (DynamicStrings_char (s
, (*i
)))
1157 op (e
, &t
, r
, s
, sym
, i
, l
, 0, positive
);
1162 op (e
, &t
, r
, s
, sym
, i
, l
, 1, positive
);
1167 op (e
, &t
, r
, s
, sym
, i
, l
, 2, positive
);
1172 op (e
, &t
, r
, s
, sym
, i
, l
, 3, positive
);
1177 internalFormat (s
, (*i
), (const char *) "expecting one of [123]", 22);
1180 if (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
1182 internalFormat (s
, (*i
), (const char *) "expecting to see }", 18);
1189 percent := '%' anych % copy anych %
1193 static void percent (DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
)
1195 if ((DynamicStrings_char (s
, (*i
))) == '%')
1200 (*r
) = x ((*r
), DynamicStrings_ConCatChar ((*r
), DynamicStrings_char (s
, (*i
))));
1208 lbra := '{' [ '!' ] percenttoken '}' =:
1211 static void lbra (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
)
1215 if ((DynamicStrings_char (s
, (*i
))) == '{')
1219 if ((DynamicStrings_char (s
, (*i
))) == '!')
1224 if ((DynamicStrings_char (s
, (*i
))) != '%')
1226 internalFormat (s
, (*i
), (const char *) "expecting to see %", 18);
1228 percenttoken (e
, (*t
), r
, s
, sym
, i
, l
, positive
);
1229 if (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
1231 internalFormat (s
, (*i
), (const char *) "expecting to see }", 18);
1238 lbra := '{' [ '!' ] percenttoken '}' =:
1241 static void stop (void)
1254 static void ebnf (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String
*r
, DynamicStrings_String s
, varargs_vararg sym
, int *i
, int l
)
1258 switch (DynamicStrings_char (s
, (*i
)))
1261 percent (r
, s
, sym
, i
, l
);
1265 lbra (e
, t
, r
, s
, sym
, i
, l
);
1266 if (((*i
) < l
) && ((DynamicStrings_char (s
, (*i
))) != '}'))
1268 internalFormat (s
, (*i
), (const char *) "expecting to see }", 18);
1278 if ((((isWhite (DynamicStrings_char (s
, (*i
)))) && ((DynamicStrings_Length ((*r
))) > 0)) && (! (isWhite (DynamicStrings_char ((*r
), -1))))) || (! (isWhite (DynamicStrings_char (s
, (*i
))))))
1280 (*r
) = x ((*r
), DynamicStrings_ConCatChar ((*r
), DynamicStrings_char (s
, (*i
))));
1293 static DynamicStrings_String
doFormat (mcError_error
*e
, mcMetaError_errorType
*t
, DynamicStrings_String s
, varargs_vararg sym
)
1295 DynamicStrings_String r
;
1299 r
= DynamicStrings_InitString ((const char *) "", 0);
1301 l
= DynamicStrings_Length (s
);
1302 ebnf (e
, t
, &r
, s
, sym
, &i
, l
);
1303 s
= DynamicStrings_KillString (s
);
1305 /* static analysis guarentees a RETURN statement will be used before here. */
1306 __builtin_unreachable ();
1314 static void wrapErrors (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, varargs_vararg sym
)
1318 DynamicStrings_String str
;
1319 mcMetaError_errorType t
;
1320 char m1
[_m1_high
+1];
1321 char m2
[_m2_high
+1];
1323 /* make a local copy of each unbounded array. */
1324 memcpy (m1
, m1_
, _m1_high
+1);
1325 memcpy (m2
, m2_
, _m2_high
+1);
1327 e
= static_cast<mcError_error
> (NULL
);
1328 t
= mcMetaError_newerror
;
1329 str
= doFormat (&e
, &t
, DynamicStrings_InitString ((const char *) m1
, _m1_high
), sym
);
1330 e
= doError (e
, t
, tok
);
1331 mcError_errorString (e
, str
);
1333 t
= mcMetaError_chained
;
1334 str
= doFormat (&f
, &t
, DynamicStrings_InitString ((const char *) m2
, _m2_high
), sym
);
1337 t
= mcMetaError_chained
;
1338 f
= doError (e
, t
, tok
);
1340 mcError_errorString (f
, str
);
1348 extern "C" void mcMetaError_metaError1 (const char *m_
, unsigned int _m_high
, const unsigned char *s_
, unsigned int _s_high
)
1351 unsigned char s
[_s_high
+1];
1353 /* make a local copy of each unbounded array. */
1354 memcpy (m
, m_
, _m_high
+1);
1355 memcpy (s
, s_
, _s_high
+1);
1357 mcMetaError_metaErrorT1 (mcLexBuf_getTokenNo (), (const char *) m
, _m_high
, (const unsigned char *) s
, _s_high
);
1365 extern "C" void mcMetaError_metaError2 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1368 unsigned char s1
[_s1_high
+1];
1369 unsigned char s2
[_s2_high
+1];
1371 /* make a local copy of each unbounded array. */
1372 memcpy (m
, m_
, _m_high
+1);
1373 memcpy (s1
, s1_
, _s1_high
+1);
1374 memcpy (s2
, s2_
, _s2_high
+1);
1376 mcMetaError_metaErrorT2 (mcLexBuf_getTokenNo (), (const char *) m
, _m_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1384 extern "C" void mcMetaError_metaError3 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1387 unsigned char s1
[_s1_high
+1];
1388 unsigned char s2
[_s2_high
+1];
1389 unsigned char s3
[_s3_high
+1];
1391 /* make a local copy of each unbounded array. */
1392 memcpy (m
, m_
, _m_high
+1);
1393 memcpy (s1
, s1_
, _s1_high
+1);
1394 memcpy (s2
, s2_
, _s2_high
+1);
1395 memcpy (s3
, s3_
, _s3_high
+1);
1397 mcMetaError_metaErrorT3 (mcLexBuf_getTokenNo (), (const char *) m
, _m_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1405 extern "C" void mcMetaError_metaError4 (const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1408 unsigned char s1
[_s1_high
+1];
1409 unsigned char s2
[_s2_high
+1];
1410 unsigned char s3
[_s3_high
+1];
1411 unsigned char s4
[_s4_high
+1];
1413 /* make a local copy of each unbounded array. */
1414 memcpy (m
, m_
, _m_high
+1);
1415 memcpy (s1
, s1_
, _s1_high
+1);
1416 memcpy (s2
, s2_
, _s2_high
+1);
1417 memcpy (s3
, s3_
, _s3_high
+1);
1418 memcpy (s4
, s4_
, _s4_high
+1);
1420 mcMetaError_metaErrorT4 (mcLexBuf_getTokenNo (), (const char *) m
, _m_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1428 extern "C" void mcMetaError_metaErrors1 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s_
, unsigned int _s_high
)
1430 char m1
[_m1_high
+1];
1431 char m2
[_m2_high
+1];
1432 unsigned char s
[_s_high
+1];
1434 /* make a local copy of each unbounded array. */
1435 memcpy (m1
, m1_
, _m1_high
+1);
1436 memcpy (m2
, m2_
, _m2_high
+1);
1437 memcpy (s
, s_
, _s_high
+1);
1439 mcMetaError_metaErrorsT1 (mcLexBuf_getTokenNo (), (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, (const unsigned char *) s
, _s_high
);
1447 extern "C" void mcMetaError_metaErrors2 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1449 char m1
[_m1_high
+1];
1450 char m2
[_m2_high
+1];
1451 unsigned char s1
[_s1_high
+1];
1452 unsigned char s2
[_s2_high
+1];
1454 /* make a local copy of each unbounded array. */
1455 memcpy (m1
, m1_
, _m1_high
+1);
1456 memcpy (m2
, m2_
, _m2_high
+1);
1457 memcpy (s1
, s1_
, _s1_high
+1);
1458 memcpy (s2
, s2_
, _s2_high
+1);
1460 mcMetaError_metaErrorsT2 (mcLexBuf_getTokenNo (), (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1468 extern "C" void mcMetaError_metaErrors3 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1470 char m1
[_m1_high
+1];
1471 char m2
[_m2_high
+1];
1472 unsigned char s1
[_s1_high
+1];
1473 unsigned char s2
[_s2_high
+1];
1474 unsigned char s3
[_s3_high
+1];
1476 /* make a local copy of each unbounded array. */
1477 memcpy (m1
, m1_
, _m1_high
+1);
1478 memcpy (m2
, m2_
, _m2_high
+1);
1479 memcpy (s1
, s1_
, _s1_high
+1);
1480 memcpy (s2
, s2_
, _s2_high
+1);
1481 memcpy (s3
, s3_
, _s3_high
+1);
1483 mcMetaError_metaErrorsT3 (mcLexBuf_getTokenNo (), (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1491 extern "C" void mcMetaError_metaErrors4 (const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1493 char m1
[_m1_high
+1];
1494 char m2
[_m2_high
+1];
1495 unsigned char s1
[_s1_high
+1];
1496 unsigned char s2
[_s2_high
+1];
1497 unsigned char s3
[_s3_high
+1];
1498 unsigned char s4
[_s4_high
+1];
1500 /* make a local copy of each unbounded array. */
1501 memcpy (m1
, m1_
, _m1_high
+1);
1502 memcpy (m2
, m2_
, _m2_high
+1);
1503 memcpy (s1
, s1_
, _s1_high
+1);
1504 memcpy (s2
, s2_
, _s2_high
+1);
1505 memcpy (s3
, s3_
, _s3_high
+1);
1506 memcpy (s4
, s4_
, _s4_high
+1);
1508 mcMetaError_metaErrorsT4 (mcLexBuf_getTokenNo (), (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1516 extern "C" void mcMetaError_metaErrorT1 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s_
, unsigned int _s_high
)
1519 unsigned char s
[_s_high
+1];
1521 /* make a local copy of each unbounded array. */
1522 memcpy (m
, m_
, _m_high
+1);
1523 memcpy (s
, s_
, _s_high
+1);
1525 mcMetaError_metaErrorStringT1 (tok
, DynamicStrings_InitString ((const char *) m
, _m_high
), (const unsigned char *) s
, _s_high
);
1533 extern "C" void mcMetaError_metaErrorT2 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1536 unsigned char s1
[_s1_high
+1];
1537 unsigned char s2
[_s2_high
+1];
1539 /* make a local copy of each unbounded array. */
1540 memcpy (m
, m_
, _m_high
+1);
1541 memcpy (s1
, s1_
, _s1_high
+1);
1542 memcpy (s2
, s2_
, _s2_high
+1);
1544 mcMetaError_metaErrorStringT2 (tok
, DynamicStrings_InitString ((const char *) m
, _m_high
), (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1552 extern "C" void mcMetaError_metaErrorT3 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1555 unsigned char s1
[_s1_high
+1];
1556 unsigned char s2
[_s2_high
+1];
1557 unsigned char s3
[_s3_high
+1];
1559 /* make a local copy of each unbounded array. */
1560 memcpy (m
, m_
, _m_high
+1);
1561 memcpy (s1
, s1_
, _s1_high
+1);
1562 memcpy (s2
, s2_
, _s2_high
+1);
1563 memcpy (s3
, s3_
, _s3_high
+1);
1565 mcMetaError_metaErrorStringT3 (tok
, DynamicStrings_InitString ((const char *) m
, _m_high
), (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1573 extern "C" void mcMetaError_metaErrorT4 (unsigned int tok
, const char *m_
, unsigned int _m_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1576 unsigned char s1
[_s1_high
+1];
1577 unsigned char s2
[_s2_high
+1];
1578 unsigned char s3
[_s3_high
+1];
1579 unsigned char s4
[_s4_high
+1];
1581 /* make a local copy of each unbounded array. */
1582 memcpy (m
, m_
, _m_high
+1);
1583 memcpy (s1
, s1_
, _s1_high
+1);
1584 memcpy (s2
, s2_
, _s2_high
+1);
1585 memcpy (s3
, s3_
, _s3_high
+1);
1586 memcpy (s4
, s4_
, _s4_high
+1);
1588 mcMetaError_metaErrorStringT4 (tok
, DynamicStrings_InitString ((const char *) m
, _m_high
), (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1596 extern "C" void mcMetaError_metaErrorsT1 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s_
, unsigned int _s_high
)
1599 char m1
[_m1_high
+1];
1600 char m2
[_m2_high
+1];
1601 unsigned char s
[_s_high
+1];
1603 /* make a local copy of each unbounded array. */
1604 memcpy (m1
, m1_
, _m1_high
+1);
1605 memcpy (m2
, m2_
, _m2_high
+1);
1606 memcpy (s
, s_
, _s_high
+1);
1608 sym
= varargs_start1 ((const unsigned char *) s
, _s_high
);
1609 wrapErrors (tok
, (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, sym
);
1618 extern "C" void mcMetaError_metaErrorsT2 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1621 char m1
[_m1_high
+1];
1622 char m2
[_m2_high
+1];
1623 unsigned char s1
[_s1_high
+1];
1624 unsigned char s2
[_s2_high
+1];
1626 /* make a local copy of each unbounded array. */
1627 memcpy (m1
, m1_
, _m1_high
+1);
1628 memcpy (m2
, m2_
, _m2_high
+1);
1629 memcpy (s1
, s1_
, _s1_high
+1);
1630 memcpy (s2
, s2_
, _s2_high
+1);
1632 sym
= varargs_start2 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1633 wrapErrors (tok
, (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, sym
);
1642 extern "C" void mcMetaError_metaErrorsT3 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1645 char m1
[_m1_high
+1];
1646 char m2
[_m2_high
+1];
1647 unsigned char s1
[_s1_high
+1];
1648 unsigned char s2
[_s2_high
+1];
1649 unsigned char s3
[_s3_high
+1];
1651 /* make a local copy of each unbounded array. */
1652 memcpy (m1
, m1_
, _m1_high
+1);
1653 memcpy (m2
, m2_
, _m2_high
+1);
1654 memcpy (s1
, s1_
, _s1_high
+1);
1655 memcpy (s2
, s2_
, _s2_high
+1);
1656 memcpy (s3
, s3_
, _s3_high
+1);
1658 sym
= varargs_start3 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1659 wrapErrors (tok
, (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, sym
);
1668 extern "C" void mcMetaError_metaErrorsT4 (unsigned int tok
, const char *m1_
, unsigned int _m1_high
, const char *m2_
, unsigned int _m2_high
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1671 char m1
[_m1_high
+1];
1672 char m2
[_m2_high
+1];
1673 unsigned char s1
[_s1_high
+1];
1674 unsigned char s2
[_s2_high
+1];
1675 unsigned char s3
[_s3_high
+1];
1676 unsigned char s4
[_s4_high
+1];
1678 /* make a local copy of each unbounded array. */
1679 memcpy (m1
, m1_
, _m1_high
+1);
1680 memcpy (m2
, m2_
, _m2_high
+1);
1681 memcpy (s1
, s1_
, _s1_high
+1);
1682 memcpy (s2
, s2_
, _s2_high
+1);
1683 memcpy (s3
, s3_
, _s3_high
+1);
1684 memcpy (s4
, s4_
, _s4_high
+1);
1686 sym
= varargs_start4 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1687 wrapErrors (tok
, (const char *) m1
, _m1_high
, (const char *) m2
, _m2_high
, sym
);
1696 extern "C" void mcMetaError_metaErrorString1 (DynamicStrings_String m
, const unsigned char *s_
, unsigned int _s_high
)
1698 unsigned char s
[_s_high
+1];
1700 /* make a local copy of each unbounded array. */
1701 memcpy (s
, s_
, _s_high
+1);
1703 mcMetaError_metaErrorStringT1 (mcLexBuf_getTokenNo (), m
, (const unsigned char *) s
, _s_high
);
1711 extern "C" void mcMetaError_metaErrorString2 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1713 unsigned char s1
[_s1_high
+1];
1714 unsigned char s2
[_s2_high
+1];
1716 /* make a local copy of each unbounded array. */
1717 memcpy (s1
, s1_
, _s1_high
+1);
1718 memcpy (s2
, s2_
, _s2_high
+1);
1720 mcMetaError_metaErrorStringT2 (mcLexBuf_getTokenNo (), m
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1728 extern "C" void mcMetaError_metaErrorString3 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1730 unsigned char s1
[_s1_high
+1];
1731 unsigned char s2
[_s2_high
+1];
1732 unsigned char s3
[_s3_high
+1];
1734 /* make a local copy of each unbounded array. */
1735 memcpy (s1
, s1_
, _s1_high
+1);
1736 memcpy (s2
, s2_
, _s2_high
+1);
1737 memcpy (s3
, s3_
, _s3_high
+1);
1739 mcMetaError_metaErrorStringT3 (mcLexBuf_getTokenNo (), m
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1747 extern "C" void mcMetaError_metaErrorString4 (DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1749 unsigned char s1
[_s1_high
+1];
1750 unsigned char s2
[_s2_high
+1];
1751 unsigned char s3
[_s3_high
+1];
1752 unsigned char s4
[_s4_high
+1];
1754 /* make a local copy of each unbounded array. */
1755 memcpy (s1
, s1_
, _s1_high
+1);
1756 memcpy (s2
, s2_
, _s2_high
+1);
1757 memcpy (s3
, s3_
, _s3_high
+1);
1758 memcpy (s4
, s4_
, _s4_high
+1);
1760 mcMetaError_metaErrorStringT4 (mcLexBuf_getTokenNo (), m
, (const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1768 extern "C" void mcMetaError_metaErrorStringT1 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s_
, unsigned int _s_high
)
1770 DynamicStrings_String str
;
1773 mcMetaError_errorType t
;
1774 unsigned char s
[_s_high
+1];
1776 /* make a local copy of each unbounded array. */
1777 memcpy (s
, s_
, _s_high
+1);
1779 e
= static_cast<mcError_error
> (NULL
);
1780 sym
= varargs_start1 ((const unsigned char *) s
, _s_high
);
1781 t
= mcMetaError_newerror
;
1782 str
= doFormat (&e
, &t
, m
, sym
);
1783 e
= doError (e
, t
, tok
);
1784 mcError_errorString (e
, str
);
1793 extern "C" void mcMetaError_metaErrorStringT2 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
)
1795 DynamicStrings_String str
;
1798 mcMetaError_errorType t
;
1799 unsigned char s1
[_s1_high
+1];
1800 unsigned char s2
[_s2_high
+1];
1802 /* make a local copy of each unbounded array. */
1803 memcpy (s1
, s1_
, _s1_high
+1);
1804 memcpy (s2
, s2_
, _s2_high
+1);
1806 e
= static_cast<mcError_error
> (NULL
);
1807 sym
= varargs_start2 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
);
1808 t
= mcMetaError_newerror
;
1809 str
= doFormat (&e
, &t
, m
, sym
);
1810 e
= doError (e
, t
, tok
);
1811 mcError_errorString (e
, str
);
1820 extern "C" void mcMetaError_metaErrorStringT3 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
)
1822 DynamicStrings_String str
;
1825 mcMetaError_errorType t
;
1826 unsigned char s1
[_s1_high
+1];
1827 unsigned char s2
[_s2_high
+1];
1828 unsigned char s3
[_s3_high
+1];
1830 /* make a local copy of each unbounded array. */
1831 memcpy (s1
, s1_
, _s1_high
+1);
1832 memcpy (s2
, s2_
, _s2_high
+1);
1833 memcpy (s3
, s3_
, _s3_high
+1);
1835 e
= static_cast<mcError_error
> (NULL
);
1836 sym
= varargs_start3 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
);
1837 t
= mcMetaError_newerror
;
1838 str
= doFormat (&e
, &t
, m
, sym
);
1839 e
= doError (e
, t
, tok
);
1840 mcError_errorString (e
, str
);
1849 extern "C" void mcMetaError_metaErrorStringT4 (unsigned int tok
, DynamicStrings_String m
, const unsigned char *s1_
, unsigned int _s1_high
, const unsigned char *s2_
, unsigned int _s2_high
, const unsigned char *s3_
, unsigned int _s3_high
, const unsigned char *s4_
, unsigned int _s4_high
)
1851 DynamicStrings_String str
;
1854 mcMetaError_errorType t
;
1855 unsigned char s1
[_s1_high
+1];
1856 unsigned char s2
[_s2_high
+1];
1857 unsigned char s3
[_s3_high
+1];
1858 unsigned char s4
[_s4_high
+1];
1860 /* make a local copy of each unbounded array. */
1861 memcpy (s1
, s1_
, _s1_high
+1);
1862 memcpy (s2
, s2_
, _s2_high
+1);
1863 memcpy (s3
, s3_
, _s3_high
+1);
1864 memcpy (s4
, s4_
, _s4_high
+1);
1866 e
= static_cast<mcError_error
> (NULL
);
1867 sym
= varargs_start4 ((const unsigned char *) s1
, _s1_high
, (const unsigned char *) s2
, _s2_high
, (const unsigned char *) s3
, _s3_high
, (const unsigned char *) s4
, _s4_high
);
1868 t
= mcMetaError_newerror
;
1869 str
= doFormat (&e
, &t
, m
, sym
);
1870 e
= doError (e
, t
, tok
);
1871 mcError_errorString (e
, str
);
1875 extern "C" void _M2_mcMetaError_init (__attribute__((unused
)) int argc
, __attribute__((unused
)) char *argv
[], __attribute__((unused
)) char *envp
[])
1879 extern "C" void _M2_mcMetaError_fini (__attribute__((unused
)) int argc
, __attribute__((unused
)) char *argv
[], __attribute__((unused
)) char *envp
[])