The short command is the SmartEiffel interface generator.
Using a plain Eiffel source file, the short command prints on
the standard output the interface of this class.
The short command is also a good tool to performs many
validity checks of a given class (syntax, exportation rules,
inheritance, etc.).
There are two invocation modes: traditional and ACE.
Note that features from ANY are not printed unless the class you are shorting is ANY or feature from ANY is redefined.
Traditional mode
short [format] [options] <Class>
ACE mode
short [format] [options]  <ACEfile.ace> <Class>
Command short prints on the standard output the 
interface of the given <Class>.
The default format is -plain: no special 
characters are added.
Command short is customisable and some predefined 
formats are already available (see below for predefined 
formats and how to add a new output format).
When ACE mode is used, as usual, the 
"loadpath.se"
is ignored and only the content of the ACE file is used to look for
the Eiffel source code.
- 
-help:
 
- 
Display a brief summary of the command-line syntax and a complete
list of compiler options.
 
 
- 
-verbose:
 
- 
 Print system information during the compilation (full path of 
   files loaded, type inference score, removed files, etc.).
 
 
- 
-version:
 
- 
Display the version number of the SmartEiffel release you're using.
 
 
- 
-loadpath <loadpath_file>:
 
- 
Adds a loadpath file for class lookup. See details
in the finder man page.
- 
-sort:
 
- 
Features are sorted alphabetically.
 
 
- 
-short:
 
- 
Does not consider inherited features.
 
 
- 
-no_style_warning:
 
- 
Suppress output for warning messages related to non respect of standard Eiffel 
style guidelines (for example ItEmwill not trigger a warning).
 
 
- 
-case_insensitive:
 
- 
Switch case insensitive mode on.
 For example,
when this mode is selected, the Eiffel parser considers that the
following identifiers refer to the same feature:item,ITEM,ItEm, ...
 
 
- 
-no_warning:
 
- 
Suppresses output for all warning messages (error messages
   are still printed). Implies -no_style_warning.
 
 
- 
-client <client_class>:
 
- 
Specify the class whom the point of view is taken of. This command allow to know all features visible to client_class from the class you short.
 Note1: default is equivalent to -client ANY.
 Note2: short -client class class does not show all features from class, only features exported to itself are printed (callable via qualified calls). You can see all features using short -client NONE class. All these features are accessible via unqualified calls.
 Note3: short -client NONE class may be useful for whole static analysis of your class.
 
| Predefined Output Formats | 
- -plain:
 
- 
The default compact output format. No special character added.
 
 
- -pretty:
 
- 
Basically, it is similar to -plain except that there are a
couple of additional line-feeds (e.g. between features) that make the
structure of the output easier to read. (It sort of appears like the
"pretty" printer would have done it, that's why "-pretty").
 
 
- -tex1:
 
- 
Simple output mode for TeX.
Encloses the interface in a simple verbatimTeX environment.
 
 
- -tex2:
 
- 
Output mode for TeX.
Uses a TeX allttenvironment with a\bffont for keywords,\itfont for comments and\ttfont for identifiers.
 
 
- -tex3:
 
- 
Output mode for TeX.
Follows style guidelines given in ETL appendix A.
As the previous mode, this mode also uses a TeX 
allttenvironment.
 
 
- -html1:
 
- 
A nice HTML output (provided by Matthias Klose).
 
 
- -html2:
 
- 
Another nice HTML output too. 
This one is the one used to generate the 
library interface of the SmartEiffel
WEB site.
 
 
| Adding a New Output Format | 
To define a new output format, you have to add a new sub-directory in 
the SmartEiffel "short" directory. In order to change the output, this 
new directory must contains various hook files, which contain text used
to replace the default output.
Here is the current list of hook files.
    1. Changing the output for the class interface header
- 
"hook000" - If this hook file exists, the contents of this file is 
   printed very first.
 
 "hook010" - If this hook file exists, and if the processed class
   is an expanded one, the contents of this file is printed before 
   the class name to replace the default string 
   "expanded class interface ".
 
 "hook011" - If this hook file exists, and if the processed class
   is an deferred one, the contents of this file is printed before 
   the class name to replace the default string 
   "deferred class interface ".
 
 "hook012" - If this hook file exists, and if the processed class
   is an ordinary one (not deferred nor expanded) the contents of 
   this file is printed before the class name to replace the default
   string "class interface ".
 
 "hook013" _ If this hook file exists, the contents of this file is 
   printed before the class name whatever the kind of class (expanded,
   deferred or ordinary) to replace the default empty string "".
 
 "hook014" - If this hook exists, the contents of the file is printed 
   after the class name to replace the default string "%N".
 
 "hook015" - If this hook file exists, and if a class header comment 
   is present, this file is printed once before the heading class
   comment.
 
 "hook016" - If this hook file exists, and if an heading comment is 
   present, the contents of this file is printed to replace the default
   string "   --" at the beginning of each comment line.
 
 "hook017" - If this hook file exists, and if an heading comment is 
   present, the contents of this file is printed to replace the default
   string "%N" at the end of each comment line.
 
 "hook018" - If this hook file exists, and if a class heading comment is
   present, the contents of this file is printed once after the heading
   comment.
 
 "hook019" - If this hook file exists, and if the processed class has no
   heading comment, this file is printed once.
2. Changing the output for the creation list- 
"hook100" - If it exists, this file is printed before the creation list 
   to replace the default string "creation%N".
 
 "hook101" - If it exists, this file is printed after the creation list 
   to replace the default empty string "".
 
 "hook102" - If it exists, this file is printed when the class has no 
   creation list.
3. Changing the output for the feature list- 
"hook200" - If exists, printed before the feature list when option -sort
   is selected to replace the default string "feature(s)%N".
 
 "hook201" - If exists, printed after the feature list when option -sort
   is selected to replace the default empty string "".
 
 "hook202" - If exists, printed before each feature list with no heading
   comment to replace the default string "feature(s) from ".
 
 "hook203" - If exists, printed after the class name of "hook202" to 
   replace the default string "%N".
 
 "hook204" - If exists, printed before a feature list with a heading
   comment to replace the default string "feature(s) from ".
 
 "hook205" - If exists, printed after the class name introduced at 
   "hook204" to replace the default string "%N".
 
 "hook206" - If exists, printed before each line of the feature list 
   comment to replace the default string "   --".
 
 "hook207" - If exists, printed after each line of the feature list 
   comment to replace the default string "%N".
 
 "hook208" - If exists, printed after a feature list comment to replace
   the default empty string "".
4. Changing the output for a feature signature- 
"hook300" - If this hook exists, the contents of this file is printed 
   before each feature to replace the default string "   ".
 
 "hook301" - If this hook exists, the contents of this file is printed 
   once when the feature has no arguments to replace the default
   empty string "".
 
 "hook302" - If this hook exists, the contents of this file is printed 
   once when the feature has arguments to replace the default
   string " (".
 
 "hook303" - If this hook exists, the contents of this file is printed 
   when the feature has arguments to replace the default
   string " ;".
 
 "hook304" - If this hook exists, the contents of this file is printed 
   when the feature has arguments to replace the default
   string ", ".
 
 "hook305" - If this hook exists, the contents of this file is printed 
   when the feature has arguments to replace the default
   string ": ".
 
 "hook306" - If this hook exists, the contents of this file is printed 
   once when the feature has arguments to replace the default 
   string ")".
 
 "hook307" - If this hook exists, the contents of this file is printed
   once when the feature has no result to replace the default
   string "%N".
 
 "hook308" - If this hook exists, the contents of this file is printed
   once before the result type of the feature to replace the default
   string ": ".
 
 "hook309" - If this hook exists, the contents of this file is printed
   once after the result type of the feature to replace the default 
   string "%N".
5. Changing the output for a feature comment- 
"hook310" - If this hook file exists, and if a feature has a heading
   comment, this file is printed once before the comment.
 
 "hook311" - If this hook file exists, and if a feature has a heading
   comment, the contents of this file is printed to replace the
   default string "      --" at the beginning of each comment line.
 
 "hook312" - If this hook file exists, and if a feature has a heading 
   comment, the contents of this file is printed to replace the default
   string "%N" at the end of each comment line.
 
 "hook313" - If this hook file exists, and if a feature has a heading 
   comment, the contents of this file is printed once after this
   comment.
 
 "hook314" - If this hook file exists, and if a feature has no heading
   comment, the contents of this file is printed.
6. Changing the output for require clauses
        6.1. For the header of a require clause
- 
"hook400" - If this hook file exists, and if a feature has no require
   assertion, the contents of this file is printed to replace the 
   default empty string "".
 
 "hook401" - If this hook file exists, and if a feature has one require
   assertion, the contents of this file is printed before the latest 
   inherited assertion to replace the default string "      require%N".
 
 "hook402" - If this hook file exists, and if a feature has more than
   one require assertion, the contents of this file is printed before
   the require assertion to replace the default string
   "      require else%N".
 
 "hook403" - If this hook file exists, and if a feature has at least one
   require assertion, the contents of this file is printed to finish the
   job (once after the last printed require assertion) to replace the 
   default empty string "".
 
 "hook412" - If exists, printed when a require clause has no heading 
   comment to replace the default empty string "".
 
 "hook413" - If exists, printed once before the require clause heading 
   comment to replace the default empty string "".
 
 "hook414" - If exists, printed before each line of the heading comment to 
   replace the default string "         --".
 
 "hook415" - If exists, printed after each line of the heading comment to 
   replace the default string "%N".
 
 "hook416" - If exists, printed once after the require clause heading 
   comment.
 
 "hook417" - If exists, printed when a require clause has no assertion to 
   replace the default empty string "".
 
 "hook418" - If exists, printed once before the first assertion of a 
   require clause to replace the default empty string "".
 
 "hook433" - If exists, printed once after the last assertion of a
   require clause to replace the default empty string "".
 
 "hook434" - If exists, printed to finish a require clause to replace 
   the default empty string "".
6.2. For each assertion in a require clause- 
"hook419" - If exists, printed before each assertion of a require clause
   to replace the default string "         ".
 
 "hook420" - If exists, printed when an assertion has no tag to replace the
   default empty string "".
 
 "hook421" - If exists, printed before a tag to replace the default empty
   string "".
 
 "hook422" - If exists, printed after a tag to replace the default 
   string ": ".
 
 "hook423" - If exists, printed when the assertion has no expression to 
   replace the default empty string "".
 
 "hook424" - If exists, printed before the expression to replace the default
   empty string "".
 
 "hook425" - If exists, printed after the expression (except for the last 
   assertion) to replace the default string ";".
 
 "hook426" - If exists, printed when an assertion has no comment to replace
   the default string "%N".
 
 "hook427" - If exists, printed once before the assertion comment to
   replace the default empty string "".
 
 "hook428" - If exists, printed before each line of the expression comment
   to replace the default string " --".
 
 "hook429" - If exists, printed after each line of the expression comment to 
   replace the default string "%N".
 
 "hook430" - If exists, printed once after the assertion's comment to replace 
   the default string "".
 
 "hook431" - If exists, printed after the assertion to replace the default 
   empty string "".
6.3. For the last assertion in a require clause
        Same hook file list as described in section 6.2 except "hook425" which
becomes :
- 
"hook432" - If exists, printed after the last expression to replace the 
   default empty string "".
7. Changing the output for ensure clauses
        7.1. For the header of the ensure clause
- 
"hook500" - If this hook file exists, and a feature has no ensure
   clause, the contents of this file is printed to replace the default
   empty string "".
 
 "hook511" - If this hook file exists, the contents of this file is 
   printed before each ensure clause to replace the default string 
   "      ensure%N".
 
 "hook512" - If exists, printed when ensure clause has no heading comment 
   to replace default empty string "".
 
 "hook513" - If exists, printed once before the ensure clause heading 
   comment to replace the default empty string "".
 
 "hook514" - If exists, printed before each line of the heading comment to 
   replace the default string "         --".
 
 "hook555" - If exists, printed after each line of the heading comment to 
   replace the default string "%N".
 
 "hook516" - If exists, printed once after the ensure clause heading 
   comment.
 
 "hook517" - If exists, printed when an ensure clause has no assertion to 
   replace the default empty string "".
 
 "hook518" - If exists, printed once before the first assertion of the
   ensure clause to replace the default empty string "".
 
 "hook533" - If exists, printed once after the last assertion of the
   ensure clause to replace the default empty string "".
 
 "hook534" - If exists, printed to finish the ensure clause to replace 
   the default empty string "".
7.2. For each assertion in the ensure assertion- 
"hook519" - If exists, printed before each assertion of the ensure clause
   to replace the default string "         ".
 
 "hook520" - If exists, printed when an assertion has no tag to replace the
   default empty string "".
 
 "hook521" - If exists, printed before a tag to replace the default empty
   string "".
 
 "hook522" - If exists, printed after a tag to replace the default 
   string ": ".
 
 "hook523" - If exists, printed when the assertion has no expression to 
   replace the default empty string "".
 
 "hook524" - If exists, printed before the expression to replace the default
   empty string "".
 
 "hook525" - If exists, printed after the expression (except for the last 
   assertion) to replace the default string ";".
 
 "hook526" - If exists, printed when an assertion has no comment to replace
   the default string "%N".
 
 "hook527" - If exists, printed once before the assertion comment to
   replace the default empty string "".
 
 "hook528" - If exists, printed before each line of the expression comment
   to replace the default string " --".
 
 "hook529" - If exists, printed after each line of the expression comment
   to replace the default string "%N".
 
 "hook530" - If exists, printed once after the assertion's comment to replace 
   the default string "".
 
 "hook531" - If exists, printed after the assertion to replace the default 
   empty string "".
7.3. For the last assertion in the ensure clause
        Same hook files list as described in section 7.2 except "hook525" which
becomes :
- 
"hook532" - If exists, printed after the last expression to replace the 
   default empty string "".
8. Changing the output after each feature- 
"hook599" - If exists, printed after each feature to replace the default
   empty string "".
9. Changing the output for the class invariant
        9.1. For the header of the class invariant
- 
"hook800" - If this hook file exists, and when no class invariant exists,
   the contents of this file is printed to replace the default empty 
   string "".
 
 "hook811" - If this hook file exists, the contents of this file is 
   printed before the class invariant to replace the default string 
   "invariant%N".
 
 "hook812" - If exists, printed when class invariant has no heading comment 
   to replace default empty string "".
 
 "hook813" - If exists, printed once before the invariant heading comment to
   replace the default empty string "".
 
 "hook814" - If exists, printed before each line of the heading comment to 
   replace the default string "   --".
 
 "hook855" - If exists, printed after each line of the heading comment to 
   replace the default string "%N".
 
 "hook816" - If exists, printed once after the invariant heading comment.
 
 "hook817" - If exists, printed when class invariant has no assertion to 
   replace the default empty string "".
 
 "hook818" - If exists, printed once before the first assertion of the
   class invariant to replace the default empty string "".
 
 "hook833" - If exists, printed once after the last assertion of the
   class invariant to replace the default empty string "".
 
 "hook834" - If exists, printed to finish the class invariant to replace 
   the default empty string "".
9.2. For each assertion in the class invariant- 
"hook819" - If exists, printed before each assertion of the class invariant 
   to replace the default string "   ".
 
 "hook820" - If exists, printed when an assertion has no tag to replace the
   default empty string "".
 
 "hook821" - If exists, printed before a tag to replace the default empty
   string "".
 
 "hook822" - If exists, printed after a tag to replace the default 
   string ": ".
 
 "hook823" - If exists, printed when the assertion has no expression to 
   replace the default empty string "".
 
 "hook824" - If exists, printed before the expression to replace the default
   empty string "".
 
 "hook825" - If exists, printed after the expression (except for the last 
   assertion) to replace the default string ";".
 
 "hook826" - If exists, printed when an assertion has no comment to replace
   the default string "%N".
 
 "hook827" - If exists, printed once before the assertion comment to
   replace the default empty string "".
 
 "hook828" - If exists, printed before each line of the expression comment
   to replace the default string " --".
 
 "hook829" - If exists, printed after each line of the expression comment 
   to replace the default string "%N".
 
 "hook830" - If exists, printed once after the assertion's comment to replace 
   the default string "".
 
 "hook831" - If exists, printed after the assertion to replace the default 
   empty string "".
9.3. For the last assertion in the class invariant
        Same hook files list as described in section 9.2 except "hook825" which
becomes :
- 
"hook832" - If exists, printed after the last expression to replace the 
   default string ";".
10. Changing the output for the class interface footer- 
"hook900" - When exists, printed once before class footer to replace 
   the default empty string "".
 
 "hook901" - When exists, printed once at the end of an expanded class 
   before the class name to replace the default "end of expanded ".
 
 "hook902" - When exists, printed once at the end of a deferred class
   before the class name to replace the default "end of deferred ".
 
 "hook903" - When exists, printed once at the end of an ordinary (not
   expanded nor deferred) class, before the class name to replace the
   default string "end of ".
 
 "hook904" - When exist, printed just before the class name to replace the
   default empty string "".
 
 "hook905" - When exists, the contents of this file is printed after the
   class name to replace the default string "%N".
 
 "hook999" - If this hook file exists, the contents of this file is 
   printed once to finish the job.
11. Class name and formal generic arguments
        11.1 Changing the output for class names
- 
"Bcn" - When exists, printed Before each class name.
 
 "Mcn" - When exists, the corresponding class name is
printed one more time (using lower case letters) just before the contents 
of this hook file.
 
 "Acn" - When exists, printed After each class name.
 
 "Ucn" - To replace the Underscore character in a class name.
11.2 Changing the output for formal generic arguments- 
"Bfga" - When exists, printed Before each formal generic argument.
 
 "Mfga" - When exists, the corresponding formal generic argument is
printed one more time (using lower case letters) just before the contents 
of this hook file.
 
 "Afga" - When exists, printed After each formal generic argument.
 
 "Ufga" - To replace the Underscore character in a formal generic argument.
12. Changing the output for a type mark- 
"Btm" - When exists, printed Before each type mark.
 
 "Atm" - When exists, printed After each type mark.
 
 "open_sb" - To replace the opening square bracket (default "[").
 
 "close_sb" - To replace the closing square bracket (default "]").
 
 "fgl_sep" - To replace the default comma "," in a formal generic 
   argument list.
 
 "tm_blank" - To replace a blank character in a type mark.
 
 "tm_sep" - To replace default string "," as a separator in a generic
   list.
 
 "like" - To replace the default string "like ".
 
 "expanded" - To replace the default string "expanded ".
13. Changing the output for feature names
        13.1. Simple feature names
- 
"Bsfn" - When exists, printed Before each Simple Feature Name.
 
 "Asfn" - When exists, printed After each Simple Feature Name.
 
 "Usfn" - To replace the underscore character in a simple feature name.
13.2. Infix feature names- 
"Bifn" - When exists, replaces the default string "infix %"" Before an 
   infix feature name definition.
 
 "Aifn" - When exists, replaces the default string "%"" to close "Bifn".
 
 "Binfix" - When exists, replaces the default string " " printed before
   the infix name used in an expression.
 
 "Ainfix" - When exists, replaces the default string " " printed after
   the infix name used in an expression.
 
 "rem" - When exists, replaces the default string "\\".
13.3. Prefix feature names- 
"Bpfn" - When exists, replaces the default string "prefix %"" Before a
   prefix feature name definition.
 
 "Apfn" - When exists, replaces the default string "%"" to close "Bpfn".
14. Changing the output for an argument name- 
"Ban" - When exists, printed Before each argument name.
 
 "Aan" - When exists, printed after each argument name.
 
 "Uan" - To replace the Underscore character in an argument name.
15. Changing the output for a tag name- 
"Btag" - When exists, printed Before each tag name.
 
 "Atag" - When exists, printed after each tag name.
 
 "Utag" - To replace the Underscore character in a tag name.
16. Changing the output for an effective argument list- 
"op_eal" - To replace the default string "(" to open an effective argument list.
 
 "eal_sep" - To replace the default string "," in an effective argument list.
 
 "cl_eal" - To replace the default string ")" for an effective argument list.
17. Changing the output for manifest strings- 
"open_ms" - To replace the default opening string "%"".
 
 "close_ms" - To replace the default closing string "%"".
 
 "Prcnt_ms" - To replace a % character inside a manifest string.
 
 "Slash_ms" - To replace a / character inside a manifest string.
18. Changing the output for a manifest array- 
"op_ma" - To replace the default string "<<" to open a manifest array.
 
 "ma_sep" - To replace the default string "," in a manifest array.
 
 "cl_ma" - To replace the default string ">>" to close a manifest array.
19. Changing the output for comments lines- 
"BECL" - Before Each Comment Line. This hook is applied to all comments
   whatever the kind of comment. If exists, printed before the contents
   of each line of each comment (usually after the default string "--").
 
 "AECL" - After Each Comment Line. This hook is applied to all comments
   whatever the kind of comment. If exits, printed after the contents
   of each line of each comment (usually, printed before the default "%N").
 
 "Ucomment" - To replace the Underscore character in a comment.
 
 "op_quote" - To replace the default opening quote mark "`".
 
 "cl_quote" - To close an "op_quote" to replace the closing quote mark "'".
20. Miscellaneous tuning- 
"open_b" - To replace the default opening bracket "(" in expressions.
 
 "close_b" - To replace the default closing bracket ")" in expressions.
 
 "arrow" - To replace the default string "->" in a formal generic list.
 
 "dot" - To replace the default string "." in an expression.
 
 "Result" - To replace the default string "Result".
 
 "old" - To replace the default string "old " in ensure clauses.
 
 "strip_open" - To replace the default string "strip (".
 
 "strip_close" - To replace default string ")" which closes "strip_open".
 
 "create_open" - To replace the default string "create {".
 
 "create_close" - To replace default string "}" which closes "create_open".
 
 "fnl_sep" - To replace the default string ", " in a feature name list.
 
 "Current" - To replace the default string "Current".
 
 "Void" - To replace the default string "Void".
 
 "once" - To replace the default string "once ".
![[Line]](se-line.gif) 
Copyright © Dominique COLNET and Suzanne COLLIN -
<SmartEiffel@loria.fr>
Last modified: Tue Feb 11 12:17:57 CET 2003