testsuite: 32 bit AIX 2 byte wchar
[official-gcc.git] / gcc / ada / repinfo-input.ads
blob0e88c2614d01df98b0b4e1e042ab33e809febd61
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT COMPILER COMPONENTS --
4 -- --
5 -- R E P I N F O - I N P U T --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 2018-2023, Free Software Foundation, Inc. --
10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
20 -- --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
23 -- --
24 ------------------------------------------------------------------------------
26 -- This package provides an alternate way of populating the internal tables
27 -- of Repinfo from a JSON input rather than the binary blob of the tree file.
28 -- Note that this is an additive mechanism, i.e. nothing is destroyed in the
29 -- internal state of the unit when it is used.
31 -- The first step is to feed the unit with a JSON stream of a specified format
32 -- (see the spec of Repinfo for its description) by means of Read_JSON_Stream.
33 -- Then, for each entity whose representation information is present in the
34 -- JSON stream, the appropriate Get_JSON_* routines can be invoked to override
35 -- the eponymous fields of the entity in the tree.
37 package Repinfo.Input is
39 function Get_JSON_Esize (Name : String) return Node_Ref_Or_Val;
40 -- Returns the Esize value of the entity specified by Name, which is not
41 -- the component of a record type, or else No_Uint if no representation
42 -- information was supplied for the entity. Name is the full qualified name
43 -- of the entity in lower case letters.
45 function Get_JSON_RM_Size (Name : String) return Node_Ref_Or_Val;
46 -- Likewise for the RM_Size
48 function Get_JSON_Component_Size (Name : String) return Node_Ref_Or_Val;
49 -- Likewise for the Component_Size of an array type
51 function Get_JSON_Component_Bit_Offset
52 (Name : String;
53 Record_Name : String) return Node_Ref_Or_Val;
54 -- Returns the Component_Bit_Offset of the component specified by Name,
55 -- which is declared in the record type specified by Record_Name, or else
56 -- No_Uint if no representation information was supplied for the component.
57 -- Name is the unqualified name of the component whereas Record_Name is the
58 -- full qualified name of the record type, both in lower case letters.
60 function Get_JSON_Esize
61 (Name : String;
62 Record_Name : String) return Node_Ref_Or_Val;
63 -- Likewise for the Esize
65 Invalid_JSON_Stream : exception;
66 -- Raised if a format error is detected in the JSON stream
68 procedure Read_JSON_Stream (Text : Text_Buffer; File_Name : String);
69 -- Reads a JSON stream and populates internal tables from it. File_Name is
70 -- only used in error messages issued by the JSON parser.
72 end Repinfo.Input;