|
|
1.1 root 1: .EV
2: .TH esterel 1 local INRIA-CMA Esterel
3: .SH NAME
4: esterel \- Esterel compiler
5: .SH SYNTAX
6: .B esterel
7: [options] [file] ...
8: .SH DESCRIPTION
9: The
10: .I esterel
11: command invokes the various utilities constituting the Esterel language
12: development tools:
13: .IP "\fIstrlic\fP"
14: The Esterel front-end: receives files containing Esterel source
15: (\fB.strl\fP suffix) producing intermediate code (\fB.ic);
16: .IP "\fIiclc\fP"
17: The Esterel binder, performing the expansion of the \fBcopymodule\fP
18: statements; it receives several \fB.ic\fP (or \fB.lc\fP)
19: files and builds an unique linked code file (\fB.lc\fP);
20: .IP "\fIlcoc\fP"
21: The Esterel compiler, which produces from an unique \fB.lc\fP file,
22: Esterel automata in portable format (\fB.oc\fP);
23: .IP "\fIocl\fP"
24: A generic name for Esterel code generators,
25: translating portable automata (\fB.oc\fP) into a program written in one of
26: the supported target languages (see the \fB-L\fP option below).
27: .PP
28: If no files are given to the \fIesterel\fP command, the standard input
29: is used. Any suffix in the list \fB.strl\fP, \fB.ic\fP, \fB.lc\fP,
30: or \fB.oc\fP is recognized in the files names: the \fIesterel\fP command
31: will arrange for only the appropriate utilities to be called.
32: .SH OPTIONS
33: The following option is for the \fIesterel\fP command itself:
34: .IP "\fB-n\fP"
35: Tell what is to be done, but don't do it.
36: .PP
37: The option
38: .IP "\fB-version\fP"
39: display the version number of the \fIesterel\fP command, as well as the
40: ones of the various utilities including all known code generators.
41: .PP
42: The following options are passed to all four utilities:
43: .IP "\fB-v\fP"
44: Verbose mode: the \fIesterel\fP command and the various utilities
45: tell what they are doing;
46: .IP "\fB-w\fP"
47: Suppresse all warning messages;
48: .IP "\fB-W\fP"
49: Display all warning messages (the default is to display only "selected"
50: warnings);
51: .IP "\fB-stat\fP"
52: Display various time statistics;
53: .IP "\fB-memstat\fP"
54: Display statistics on dynamically allocated memory.
55: .PP
56: The three following options enable to stop the compilation process at
57: some intermediate stage:
58: .IP "\fB-ic\fP"
59: Just use \fIstrlic\fP to convert \fB.strl\fP files into \fB.ic\fP files
60: (with the same base name), ignoring all other files;
61: .IP "\fB-lc\fP"
62: Stop after running the binder (\fIiclc\fP);
63: .IP "\fB-oc\fP"
64: Stop after running the compiler (\fIlcoc\fP).
65: .PP
66: For the \fB-lc\fP and \fB-oc\fP options, one can specify the output
67: file name(s) with the \fB-B\fP and \fB-D\fP options.
68: .IP "\fB-B \fP\fIname\fP"
69: \fIname\fP denotes the output files default base name.
70: The appropriate suffix is added automatically (and possibly a working
71: directory name --see the following option).
72: If this option is omitted and if the \fIesterel\fP command
73: is invoked with only one file name, \fIname\fP defaults to the
74: base name of this unique file with the appropriate suffix;
75: otherwise it defaults to the base name \fBesterel\fP, still followed
76: by the appropriate suffix.
77: .IP "\fB-D \fP\fIdirectory\fP"
78: Specify a directory where the files produced by the command will be
79: placed. The default is the current directory.
80:
81: The \fB-B\fP and \fB-D\fP options and the corresponding
82: default rules apply to the files produced by
83: the \fB-K\fP (except \fB-Kic\fP) and \fB-L\fP options below.
84: .PP
85: The \fIesterel\fP command removes all the intermediate files it has created,
86: unless one of the following options is given:
87: .IP "\fB-Kic\fP
88: Keep all the \fB.ic\fP files (their names being the original ones, with
89: the suffix \fB.strl\fP replaced by \fB.ic\fP);
90: .IP "\fB-Klc\fP"
91: Keep the (unique) \fB.lc\fP file;
92: .IP "\fB-Koc\fP"
93: Keep the (unique) \fB.oc\fP file;
94: .IP "\fB-K"
95: Keep all the intermediate files.
96: .PP
97: The binder \fIiclc\fP recognizes some specific options:
98: .IP "\fB-Rs\fP"
99: Trace signal captures and renaming;
100: .IP "\fB-Rc\fP"
101: Trace constant captures and renaming;
102: .IP "\fB-R\fP"
103: Trace both signal and constant captures and renaming.
104: .PP
105: The compiler \fIlcoc\fP recognizes also some specific options:
106: .IP "\fB-size\fP"
107: Display the final size (states and bytes) of the generated automata;
108: .IP "\fB-show\fP"
109: Display dynamically the number of states generated so far.
110: .PP
111: The code generators (\fIocl\fP) recognize an unique option:
112: .IP "\fB-L\fP[\fIlanguage\fP][:\fIspecific_options\fP]"
113: .br
114: Set the target language: at this time only \fBc\fP, \fBlelisp\fP,
115: \fBtex\fP, \fBplm\fP, \fBauto\fP,
116: and \fBdebug\fP are known; it is likely that other languages be added.
117: The code generators have a name of the form \fBoc\fP\fIlanguage\fP.
118: If the \fB-L\fP option or the language are omitted, the default is \fBc\fP.
119: The string \fIspecific_options\fP allows to transmit language dependent
120: options to a given code generator (see \fBocl(1)\fP).
121: .IP
122: There can be as many \fB-L\fP options as needed.
123: .PP
124: Finally, there is a particular option to do as much as specified (by the
125: stop options) but producing nothing.
126: .IP "\fB-s\fP"
127: Perform all the compilation process, as specified by the other options,
128: but produce nothing.
129: .SH EXAMPLES
130: The simple command
131: .sp
132: .RS
133: .B esterel foo.strl
134: .RE
135: .sp
136: performs a full Esterel compilation, leaving the produced automaton,
137: in C language form, in the file \fBfoo.c\fP.
138: .PP
139: To produce debug format while keeping the generated automaton in portable
140: format, try
141: .sp
142: .RS
143: .B esterel -Koc -Ldebug foo.strl
144: .RE
145: .sp
146: .PP
147: A little more complex, the following command
148: .sp
149: .RS
150: .B esterel -Kic -Koc -Bautom -Llisp
151: .B f1.strl f2.ic f3.lc
152: .RE
153: .sp
154: will pass \fBf1.strl\fP through \fIstrlic\fP and keep the \fBf1.ic\fP file;
155: then it will pass \fBf1.ic\fP, \fBf2.ic\fP, and \fBf3.lc\fP
156: through \fIiclc\fP and \fIlcoc\fP, producing the file \fBautom.oc\fP
157: (the intermediate files are discarded); finally,
158: this last file will be converted into the LeLisp file \fBautom.ll\fP
159: by \fIoclelisp\fP.
160: .PP
161: The command
162: .sp
163: .RS
164: .B esterel -K -Bfoo -D/a/b f1.strl f2.strl f3.ic f4.oc
165: .RE
166: .sp
167: produces the following files: \fB/a/b/f1.ic\fP, \fB/a/b/f2.ic\fP,
168: \fB/a/b/foo.lc\fP, \fB/a/b/foo.oc\fP, and \fB/a/b/foo.c\fP.
169: .PP
170: To illustrate the \fB-s\fP option, note that
171: .sp
172: .RS
173: .B esterel -s foo.strl
174: .RE
175: .sp
176: performs a full compilation upto C code generation, but the C file is not
177: produced; similarly,
178: .sp
179: .RS
180: .B esterel -ic -s foo.strl
181: .RE
182: .sp
183: will only execute the front-end \fIstrlic\fP without producing any \fB.ic\fP
184: file.
185: .PP
186: Finally,
187: .sp
188: .RS
189: .B esterel -Lc -Lauto:"-signal EV1,EV2" foo.strl
190: .RE
191: .sp
192: performs a full compilation of the Esterel source file \fBfoo.strl\fP
193: to auto format (\fBfoo.auto\fP), passing the arguments
194: \fB-signal EV1,EV2\fP untouched to the corresponding code generator
195: (here \fIocauto\fP).
196: .SH DIAGNOSTICS
197: The command returns with exit code 0 if (and only if)
198: no error was detected by the various utilities.
199: .PP
200: Various error or warning messages indicate
201: incompatible or redundant options, or error
202: conditions related to file handling.
203: .SH BUGS
204: The command checks whether it generates a file which is already
205: present in its argument list, and if so, stops with an error, to
206: avoid clobbering the file.
207: .PP
208: The corresponding test is based on the name of files as given
209: by the user and is rather rustic.
210: For instance, the following erroneous condition (or any similar one)
211: is not detected
212: .sp
213: .RS
214: .B esterel -K -Bfoo -D.. foo.strl .././foo.lc
215: .RE
216: .sp
217: and will certainly result in loosing the original content of ../foo.lc
218: (use the \fB-n\fP option to see what will occur).
219: .SH FILES
220: .PP
221: In the following, $lib designates the default library directory for
222: Esterel utilities (usually /usr/local/lib/esterel). This default
223: path can be modified by the installer of the Esterel system, or by any
224: user setting the environment variable ESTERELLIB.
225: .sp
226: .ta \w'mmmmmm'u +\w'$lib/strlic 'u
227: .br
228: .ti0
229: $lib/strlic Esterel front-end
230: .ti0
231: $lib/iclc Esterel binder
232: .ti0
233: $lib/lcoc Esterel compiler (automaton generator)
234: .ti0
235: $lib/oc* Esterel code generators
236: .ti0
237:
238: *.strl Esterel source files
239: .ti0
240: *.ic Intermediate code files
241: .ti0
242: *.lc Linked intermediate code file
243: .ti0
244: *.oc Portable automata file
245: .ti0
246: esterel.* Default names for keeping intermediate files
247: .SH SEE ALSO
248: strlic(l), iclc(l), lcoc(l), ocl(l)
249: .br
250: \fIEsterel V3 Reference Manual\fP
251: .br
252: \fIEsterel V3 System Manuals\fP
253: .SH IDENTIFICATION
254: Author: Jean-Paul Rigault, Ecole des Mines de Paris, CMA
255: .br
256: $Revision: 1.1 $
257: .br
258: $Date: 88/04/07 13:39:34 $
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.