summaryrefslogtreecommitdiff
path: root/ipl/packs/idol/idol.1
blob: d81d43e73a5004c561d30999673851d873ba48a4 (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
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
.TH IDOL 1 "10 March 1991"
.UC 4
.SH NAME
idol \- Icon-Derived Object Language
.SH SYNOPSIS
.B idol
[
.B option...
]
mainfile otherfiles
[
.B \-x
arguments
]
.SH DESCRIPTION
.PP
.I Idol
is an object-oriented preprocessor for Version 8+ Icon.
It is a front-end for
.I icont(1)
; typically one invokes idol on
a source file (extension .iol) which is translated into an
Icon source file (extension .icn) which is translated into a
file suitable for interpretation by the Icon interpreter.
.PP
On systems with directories, Idol typically stores its generated class
library code in a separate directory from the source code.  If the
environment variable IDOLENV is defined, Idol uses this directory for
generated code.  If no IDOLENV is defined, Idol creates a subdirectory
named idolcode.env, and removes it after successful compilation 
if the creation occured for a single source file.
.PP
Producing an executable is skipped when the first file on the
list contains only classes and no Icon entities.  Idol uses an
Icon translator selected by the environment variable ICONT, if
it is present.
.PP
The
.B \-c
option suppresses the linking phase normally done by
.I Icont.
.PP
The
.B \-t
option suppresses
.B all
translation by
.I Icont;
it is useful on systems for which Icon does not support the
.br
.B system\(\)
function.
.PP
The
.B \-s
option suppresses removal of
.B \.icn
files after translation by
.I Icont;
normally they are deleted after a successful translation.
.PP
The
.B \-quiet
option suppresses most Idol-specific console messages.
.PP
The
.B \-strict
option causes
.I Idol
to generate code which is paranoid about ensuring encapsulation.
.PP
The
.B \-ic
option causes
.I Idol
to generate code that is
.I Icon-compatible.
The code will be slightly slower, but allows method invocation using
a traditional Icon procedure call.  Such procedure calls are of the form
class_method(o,args...).  Inherited methods cannot currently be so
invoked, the class that defines the method must be explicitly named in
the procedure call. 
.PP
The
.B \-version
option causes
.I Idol
to print out its version and date of creation, and then exit.
.PP
The second and following files on the command line may include
extensions
.B \.icn
,
.B \.u1
, and
.B \.cl\.
The first two Idol treats as
Icon source code which should be translated and linked into the
resulting executable.  Files with extension
.B \.cl
are treated as class names which are linked into the resulting executable.
Class names are case sensitive; Deque.cl is a different class than deque.cl.
If the operating system does not support case sensitive filenames, such
class names will not coexist peacefully.
.PP
.SH AUTHOR
.PP
Clinton Jeffery, cjeffery@cs.arizona.edu
.PP
.SH FILES
.PP
.nf
idol                          The Idol translator itself.
.br
prog.iol                      Idol source files
.br
prog.icn                      Icon code (non-classes) from prog.iol
.br
idolcode.env/i_object.*       Icon code for the Idol object type
.br
idolcode.env/classname.icn    Icon files generated for each class
.br
idolcode.env/classname.u[12]  Translated class files
.br
idolcode.env/classname        Class specification/interface
.fi
.SH SEE ALSO
.PP
.br
"Programming in Idol: An Object Primer"
.br
(U of Arizona Dept of CS Technical Report #90-10)
.br
serves as a user's guide and reference manual for Idol