]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/m2/gm2-compiler/M2Emit.mod
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / gm2-compiler / M2Emit.mod
1 (* M2Emit.mod issue errors to the GCC error reporting substructure.
2
3 Copyright (C) 2019-2023 Free Software Foundation, Inc.
4 Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
5
6 This file is part of GNU Modula-2.
7
8 GNU Modula-2 is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
11 any later version.
12
13 GNU Modula-2 is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GNU Modula-2; see the file COPYING3. If not see
20 <http://www.gnu.org/licenses/>. *)
21
22 IMPLEMENTATION MODULE M2Emit ;
23
24 IMPORT m2linemap ;
25
26 FROM M2LexBuf IMPORT TokenToLocation ;
27 FROM m2linemap IMPORT ErrorAtf, WarningAtf, NoteAtf, internal_error ;
28 FROM DynamicStrings IMPORT string ;
29 FROM SYSTEM IMPORT ADR ;
30
31
32 (*
33 EmitError - pass the error to GCC.
34 *)
35
36 PROCEDURE EmitError (error, note: BOOLEAN; token: CARDINAL; message: String) ;
37 BEGIN
38 IF error
39 THEN
40 ErrorAtf (TokenToLocation (token), string (message))
41 ELSIF note
42 THEN
43 NoteAtf (TokenToLocation (token), string (message))
44 ELSE
45 WarningAtf (TokenToLocation (token), string (message))
46 END
47 END EmitError ;
48
49
50 (*
51 InternalError - issue an internal error, message.
52 *)
53
54 PROCEDURE InternalError (message: ARRAY OF CHAR) ;
55 BEGIN
56 internal_error (ADR (message))
57 END InternalError ;
58
59
60 (*
61 UnknownLocation - return the unknown location (using GCC linemap for cc1gm2)
62 and constants for gm2l and gm2m.
63 *)
64
65 PROCEDURE UnknownLocation () : location_t ;
66 BEGIN
67 RETURN m2linemap.UnknownLocation ()
68 END UnknownLocation ;
69
70
71 (*
72 BuiltinsLocation - return the builtins location (using GCC linemap for cc1gm2)
73 and constants for gm2l and gm2m.
74 *)
75
76 PROCEDURE BuiltinsLocation () : location_t ;
77 BEGIN
78 RETURN m2linemap.BuiltinsLocation ()
79 END BuiltinsLocation ;
80
81
82 END M2Emit.