ffa_ch4_ffacalc.kv      1 
ffa_ch4_ffacalc.kv      2 
ffa_ch4_ffacalc.kv      3 
ffa_ch4_ffacalc.kv      4 
ffa_ch4_ffacalc.kv      5 
ffa_ch4_ffacalc.kv      6 
ffa_ch4_ffacalc.kv      7 
ffa_ch4_ffacalc.kv      8 
ffa_ch4_ffacalc.kv      9 
ffa_ch4_ffacalc.kv     10 
ffa_ch4_ffacalc.kv     11 
ffa_ch4_ffacalc.kv     12 
ffa_ch4_ffacalc.kv     13 
ffa_ch4_ffacalc.kv     14 
ffa_ch4_ffacalc.kv     15 
ffa_ch4_ffacalc.kv     16 
ffa_ch4_ffacalc.kv     17 
ffa_ch4_ffacalc.kv     18 
ffa_ch4_ffacalc.kv     19 
ffa_ch4_ffacalc.kv     20 with System; use System;
ffa_ch4_ffacalc.kv     21 
ffa_ch4_ffacalc.kv     22 package body CmdLine is
ffa_ch4_ffacalc.kv     23    
ffa_ch4_ffacalc.kv     24    
ffa_ch4_ffacalc.kv     25    function Initialized return Boolean is
ffa_ch4_ffacalc.kv     26       gnat_argv : System.Address;
ffa_ch4_ffacalc.kv     27       pragma Import (C, gnat_argv, "gnat_argv");
ffa_ch4_ffacalc.kv     28 
ffa_ch4_ffacalc.kv     29    begin
ffa_ch4_ffacalc.kv     30       return gnat_argv /= System.Null_Address;
ffa_ch4_ffacalc.kv     31    end Initialized;
ffa_ch4_ffacalc.kv     32    
ffa_ch4_ffacalc.kv     33    
ffa_ch4_ffacalc.kv     34    
ffa_ch4_ffacalc.kv     35    procedure Get_Argument(Number : in  Natural;
ffa_ch4_ffacalc.kv     36                           Result : out String) is
ffa_ch4_ffacalc.kv     37    begin
ffa_ch4_ffacalc.kv     38       if Number >= Arg_Count or (not Initialized) then
ffa_ch4_ffacalc.kv     39          raise Constraint_Error;
ffa_ch4_ffacalc.kv     40       end if;
ffa_ch4_ffacalc.kv     41       
ffa_ch4_ffacalc.kv     42       declare
ffa_ch4_ffacalc.kv     43          L   : constant Integer := Len_Arg(Number);
ffa_ch4_ffacalc.kv     44          Arg : aliased String(1 .. L);
ffa_ch4_ffacalc.kv     45       begin
ffa_ch4_ffacalc.kv     46          
ffa_ch4_ffacalc.kv     47          if L > Result'Length then
ffa_ch4_ffacalc.kv     48             raise Constraint_Error;
ffa_ch4_ffacalc.kv     49          end if;
ffa_ch4_ffacalc.kv     50          
ffa_ch4_ffacalc.kv     51          
ffa_ch4_ffacalc.kv     52          Fill_Arg(Arg'Address, Number);
ffa_ch4_ffacalc.kv     53          
ffa_ch4_ffacalc.kv     54          
ffa_ch4_ffacalc.kv     55          Result := (others => ' ');
ffa_ch4_ffacalc.kv     56          Result(Arg'Range) := Arg;
ffa_ch4_ffacalc.kv     57       end;
ffa_ch4_ffacalc.kv     58    end Get_Argument;
ffa_ch4_ffacalc.kv     59    
ffa_ch4_ffacalc.kv     60 end CmdLine;