summaryrefslogtreecommitdiff
path: root/iirs_walk.ads
blob: cfa6e96375ae5fe6843ccdab26e9eb551b6552f0 (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
with Iirs; use Iirs;

package Iirs_Walk is
   type Walk_Status is
     (
      --  Continue to walk.
      Walk_Continue,

      --  Stop walking in the subtree, continue in the parent tree.
      Walk_Up,

      --  Abort the walk.
      Walk_Abort);

   type Walk_Cb is access function (El : Iir) return Walk_Status;

   --  Walk on all elements of CHAIN.
   function Walk_Chain (Chain : Iir; Cb : Walk_Cb) return Walk_Status;


   function Walk_Assignment_Target (Target : Iir; Cb : Walk_Cb)
                                   return Walk_Status;

   --  Walk on all stmts and sub-stmts of CHAIN.
   function Walk_Sequential_Stmt_Chain (Chain : Iir; Cb : Walk_Cb)
                                       return Walk_Status;
end Iirs_Walk;