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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 | -- TITLE aflex - main program
--
-- AUTHOR: John Self (UCI)
-- DESCRIPTION main subprogram of aflex, calls the major routines in order
-- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/aflex.a,v 1.11 90/10/15 20:00:40 self Exp Locker: self $
--***************************************************************************
-- aflex
-- version 1.4a
--***************************************************************************
--
-- Arcadia Project
-- Department of Information and Computer Science
-- University of California
-- Irvine, California 92717
--
-- Send requests for aflex information to alex-info@ics.uci.edu
--
-- Send bug reports for aflex to alex-bugs@ics.uci.edu
--
-- Copyright (c) 1990 Regents of the University of California.
-- All rights reserved.
--
-- This software was developed by John Self of the Arcadia project
-- at the University of California, Irvine.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Irvine. The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
--
-- This program is based on the flex program written by Vern Paxson.
--
-- The following is the copyright notice from flex, from which aflex is
-- derived.
-- Copyright (c) 1989 The Regents of the University of California.
-- All rights reserved.
--
-- This code is derived from software contributed to Berkeley by
-- Vern Paxson.
--
-- The United States Government has rights in this work pursuant to
-- contract no. DE-AC03-76SF00098 between the United States Department of
-- Energy and the University of California.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Berkeley. The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
--
--***************************************************************************
with Ada.Wide_Wide_Text_IO;
with MAIN_BODY, DFA, GEN, MISC_DEFS, MISC;
with TEMPLATE_MANAGER; use MISC_DEFS;
function Aflex return Integer is
Copyright : constant String :=
"@(#) Copyright (c) 1990 Regents of the University of California.";
Copyright_2 : constant String :=
"All rights reserved.";
pragma Unreferenced (Copyright, Copyright_2);
begin
MAIN_BODY.Aflex_Init;
MAIN_BODY.READIN;
if (SYNTAXERROR) then
Main_Body.Aflex_End (1);
end if;
if (PERFORMANCE_REPORT) then
if (INTERACTIVE) then
Ada.Wide_Wide_Text_IO.Put_Line
(Ada.Wide_Wide_Text_IO.Standard_Error,
"-I (interactive) entails a minor performance penalty");
end if;
end if;
if (VARIABLE_TRAILING_CONTEXT_RULES) then
Misc.Aflex_Error ("can't handle variable trailing context rules");
end if;
-- convert the ndfa to a dfa
DFA.NTOD;
-- generate the Ada state transition tables from the DFA
GEN.MAKE_TABLES;
TEMPLATE_MANAGER.GENERATE_IO_FILE;
TEMPLATE_MANAGER.GENERATE_DFA_FILE;
Main_Body.Aflex_End (0);
return 0;
exception
when MAIN_BODY.AFLEX_TERMINATE =>
return MAIN_BODY.TERMINATION_STATUS;
end Aflex;
|