-- Package (and subprograms) instantiations -- When a package is instantiated, we need to 'duplicate' its declaration. -- This looks useless for analysis but it isn't: a type from a package -- instantiated twice declares two different types. Without duplication, we -- need to attach to each declaration its instance, which looks more expansive -- that duplicating the declaration. -- -- Furthermore, for generic type interface, it looks a good idea to duplicate -- the body (macro expansion). -- -- Duplicating is not trivial: internal links must be kept and external -- links preserved. A table is used to map nodes from the uninstantiated -- package to its duplicated node. Links from instantiated declaration to -- the original declaration are also stored in that table. with Vhdl.Nodes; use Vhdl.Nodes; package Vhdl.Sem_Inst is -- Return the origin of node N, the node from which N was instantiated. -- If N is not an instance, this function returns Null_Iir. function Get_Origin (N : Iir) return Iir; -- Create declaration chain and generic declarations for INST from PKG. procedure Instantiate_Package_Declaration (Inst : Iir; Pkg : Iir); -- Create interface parameters of INST from SUBPRG. procedure Instantiate_Subprogram_Declaration (Inst : Iir; Subprg : Iir); -- Return the instantiation of the body for INST, ie macro-expand the -- body. INST has the form of a generic-mapped package. function Instantiate_Package_Body (Inst : Iir) return Iir; -- In CHAIN, substitute all references to E by REP. procedure Substitute_On_Chain (Chain : Iir; E : Iir; Rep : Iir); -- Deep copy of ORIG. Doesn't change location. function Copy_Tree (Orig : Iir) return Iir; -- Like Get_Subprogram_Body, but also works for instances, where -- instantiated nodes have no bodies. -- See comment about Get/Set_Subprogram_body in vhdl-nodes. function Get_Subprogram_Body_Origin (Spec : Iir) return Iir; end Vhdl.Sem_Inst; /lufa/Projects/LEDNotifier/CPUUsageApp/CPUMonitor.csproj?id=dc3a8ddb6be228d5385b1d10982715c6072d740b'>diffstats
path: root/lib/lufa/Projects/LEDNotifier/CPUUsageApp/CPUMonitor.csproj
blob: d568a9dc48228818c01fe267af04ef81826c4b43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95