1;
2; Very preliminary version of RESOLVE_ALL
3; This was enough to run Ulyss
4; http://ulyss.univ-lyon1.fr/download.html
5;
6; Contributions welcome !
7;
8; This code is under GNU GPL V2 or later
9; Ilia N., Alain C., July 2015
10;
11pro RESOLVE_ALL, RESOLVE_EITHER=resolve_either, $
12                 RESOLVE_FUNCTION=resolve_function, $
13                 RESOLVE_PROCEDURE=resolve_procedure, $
14                 CONTINUE_ON_ERROR=continue_on_error, UNRESOLVED=unres, $
15                 class=class,  SKIP_ROUTINES=skip_routines, QUIET=quiet, $
16                 help=help, test=test
17;
18
19compile_opt hidden, idl2
20
21ON_ERROR, 2
22
23if KEYWORD_SET(help) then begin
24    print, 'pro RESOLVE_ALL, RESOLVE_EITHER=resolve_either, $'
25    print, '                 RESOLVE_FUNCTION=res_fun, RESOLVE_PROCEDURE=res_pro, $'
26    print, '                 CONTINUE_ON_ERROR=continue_on_error, UNRESOLVED=UNRESOLVED, $'
27    print, '                 CLASS=class,  SKIP_ROUTINES=skip_routines, QUIET=quiet, $'
28    print, '                 help=help, test=test'
29    print, ' '
30    print, 'keyword CLASS= not ready'
31    print, 'keyword UNRESOLVED= not ready'
32    print, 'keyword SKIP_ROUTINES= not ready'
33    return
34endif
35;
36please='; Please contribute !'
37;
38if KEYWORD_SET(CLASS) then begin
39    MESSAGE, 'Keyword CLASS is not ready'+please
40endif
41if KEYWORD_SET(SKIP_ROUTINES) then begin
42    MESSAGE, 'Keyword SKIP_ROUTINES is not ready'+please
43endif
44if KEYWORD_SET(UNRESOLVED) then begin
45    MESSAGE, 'Keyword UNRESOLVED is not ready'+please
46endif
47;
48if KEYWORD_SET(QUIET) then begin
49    quiet_save=!quiet
50    !quiet = quiet
51endif else begin
52    quiet = 0
53endelse
54;
55; procedures only
56;
57if KEYWORD_SET(resolve_procedure) then begin
58    if ~KEYWORD_SET(continue_on_error) then begin
59        RESOLVE_ROUTINE, resolve_procedure
60    endif else begin
61        for i = 0, N_ELEMENTS(resolve_procedure)-1 do begin
62            command='RESOLVE_ROUTINE, resolve_procedure[i]'
63            a=EXECUTE(command)
64        endfor
65    endelse
66endif
67;
68; functions only
69;
70if KEYWORD_SET(resolve_function) then begin
71    if ~KEYWORD_SET(continue_on_error) then begin
72        RESOLVE_ROUTINE, resolve_function, /is_function
73    endif else begin
74        for i = 0, N_ELEMENTS(resolve_function)-1 do begin
75            command='RESOLVE_ROUTINE, resolve_function[i], /is_function'
76            a=EXECUTE(command)
77        endfor
78    endelse
79endif
80;
81; procedures or functions : /either
82;
83if KEYWORD_SET(resolve_either) then begin
84    if ~KEYWORD_SET(continue_on_error) then begin
85        RESOLVE_ROUTINE, resolve_either, /either
86    endif else begin
87        for i = 0, N_ELEMENTS(resolve_either)-1 do begin
88            command='RESOLVE_ROUTINE, resolve_either[i], /either'
89            a=EXECUTE(command)
90        endfor
91    endelse
92endif
93;
94if KEYWORD_SET(QUIET) then !quiet=quiet_save
95;
96if KEYWORD_SET(test) then STOP
97;
98end
99