Annotation of OpenXM_contrib/PHC/Ada/System/file_scanning.adb, Revision 1.1.1.1
1.1 maekawa 1: package body File_Scanning is
2:
3: procedure Scan ( file : in file_type; ch : in character;
4: found : out boolean ) is
5:
6: c : character;
7:
8: begin
9: while not End_of_File(file) loop
10: get(file,c);
11: if c = ch
12: then found := true;
13: return;
14: end if;
15: end loop;
16: found := false;
17: end Scan;
18:
19: procedure Scan ( file : in file_type; banner : in string;
20: found : out boolean ) is
21:
22: index : natural := banner'first-1;
23: ch : character;
24:
25: begin
26: while not End_of_File(file) loop
27: get(file,ch);
28: if index < banner'first
29: then
30: if ch = banner(banner'first)
31: then index := banner'first+1;
32: end if;
33: else
34: if ch = banner(index)
35: then index := index + 1;
36: else index := banner'first-1;
37: end if;
38: end if;
39: exit when index > banner'last;
40: end loop;
41: if index > banner'last
42: then found := true;
43: else found := false;
44: end if;
45: exception
46: when others => found := false; return;
47: end Scan;
48:
49: procedure Scan_and_Skip ( file : in file_type; banner : in string;
50: found : out boolean ) is
51:
52: fnd : boolean;
53:
54: begin
55: Scan(file,banner,fnd);
56: if fnd
57: then skip_line(file);
58: end if;
59: found := fnd;
60: end Scan_and_Skip;
61:
62: end File_Scanning;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>