Difference between revisions of "Short"
m (30 revisions: initial import from SamrtEiffel Wiki - The Grand SmartEiffel Book) |
m (s/LibertyEiffel/Liberty Eiffel/) |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category: |
+ | [[Category:Tool]] |
− | The <tt>short</tt> command is the |
+ | The <tt>short</tt> command is the Liberty Eiffel interface generator. Using a plain Eiffel source file, the command prints the interface of this class to the standard output. It is also a good tool to perform many validity checks of a given class (syntax, exportation rules, inheritance, etc.). |
− | In a normal installation, |
+ | In a normal installation, the tool is invoked by the command <b><TT>[[se]] short</TT></b>. |
There are two ways of invoking it: the ''traditional'' mode and the ''ACE'' mode. |
There are two ways of invoking it: the ''traditional'' mode and the ''ACE'' mode. |
||
* In the traditional mode, many options can be specified on the command line. |
* In the traditional mode, many options can be specified on the command line. |
||
* In the [[ACE]] mode ''(Assembly of Classes in Eiffel)'', most of its options are not allowed on the command line; they have their equivalents ''in'' the ACE file. |
* In the [[ACE]] mode ''(Assembly of Classes in Eiffel)'', most of its options are not allowed on the command line; they have their equivalents ''in'' the ACE file. |
||
+ | |||
== Synopsis == |
== Synopsis == |
||
Line 29: | Line 30: | ||
|- |
|- |
||
| valign="top" | <code>-version</code> |
| valign="top" | <code>-version</code> |
||
− | | Display the |
+ | | Display the Liberty Eiffel version number. |
|- |
|- |
||
| valign="top" | <code>-loadpath <loadpath-file></code> |
| valign="top" | <code>-loadpath <loadpath-file></code> |
||
Line 40: | Line 41: | ||
| Show only locally defined features (do not consider purely inherited features). |
| Show only locally defined features (do not consider purely inherited features). |
||
|- |
|- |
||
− | | valign="top" | <code>- |
+ | | valign="top" | <code>-style_warning</code> |
− | | |
+ | | Display warning messages about non-compliance with Eiffel style rules. |
|- |
|- |
||
| valign="top" | <code>-no_warning</code> |
| valign="top" | <code>-no_warning</code> |
||
− | | Suppress all warning messages |
+ | | Suppress all warning messages. |
+ | |- |
||
+ | | valign="top" | <code>-fly_make_mode</code> |
||
+ | | Display messages in a compact format suitable for processing by tools such as Emacs' Flymake mode. |
||
|- |
|- |
||
| valign="top" | <code>-client <client_class></code> |
| valign="top" | <code>-client <client_class></code> |
Latest revision as of 18:07, 14 June 2016
The short command is the Liberty Eiffel interface generator. Using a plain Eiffel source file, the command prints the interface of this class to the standard output. It is also a good tool to perform many validity checks of a given class (syntax, exportation rules, inheritance, etc.).
In a normal installation, the tool is invoked by the command se short.
There are two ways of invoking it: the traditional mode and the ACE mode.
- In the traditional mode, many options can be specified on the command line.
- In the ACE mode (Assembly of Classes in Eiffel), most of its options are not allowed on the command line; they have their equivalents in the ACE file.
Synopsis
se short [options] <class>
se short [options] <ace_file.ace> <class>
The first syntax is the traditional mode, the second is the ACE mode.
In the ACE mode, the name of the ACE file provided must end with the suffix .ace.
Options
-help
|
Display a short summary of the command line syntax, as well as a complete list of the compiler's options. |
-verbose
|
Display (an enormous amount of) information during the compilation: a complete list of files loaded, the type inference scores, the generated files, and so on. |
-version
|
Display the Liberty Eiffel version number. |
-loadpath <loadpath-file>
|
Add a loadpath file for class lookup. See details in the finder page. |
-sort
|
Sort features alphabetically. |
-short
|
Show only locally defined features (do not consider purely inherited features). |
-style_warning
|
Display warning messages about non-compliance with Eiffel style rules. |
-no_warning
|
Suppress all warning messages. |
-fly_make_mode
|
Display messages in a compact format suitable for processing by tools such as Emacs' Flymake mode. |
-client <client_class>
|
Specify the class whose point of view is taken. This command shows all the features visible to client_class out of class .
Note1: the default is equivalent to Note2: |
-all_clients
|
Display all the features, even those not exported at all (marked feature {} )
|
Predefined Output Formats
You can specify an output format, which will change some typographic details but not the content itself (see the options above to change the content.
See also Adding a new format below to know how to add a new output format.
-plain
|
The default compact output format. No special character added. |
-pretty
|
The output is similar to that of -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 is similar to the output of the "pretty" printer).
|
-tex1
|
Simple output mode for TeX. |
-tex2
|
Output mode for TeX. Uses a bold font for keywords, an italic font for comments and a fixed font for identifiers. |
-tex3
|
Output mode for TeX. Follows style guidelines given in ETL2 appendix A. |
-html1
|
A nice HTML output (provided by Matthias Klose). |
-html2
|
Another nice HTML output. |
-html_css
|
A nice HTML+CSS output (provided by John E. Perry). The CSS file must be called seshort.css. |
Adding a new 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 contain hook files, which contain the text used to replace the default output.
Here is the current list of hook files.
Changing the output for the class interface header
hook000 | If this hook file exists, the contents of this file are printed first of all. |
hook010 | If this hook file exists, and if the processed class is an expanded one, the contents of this file are 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 are 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 are 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 are 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 a heading comment is present, the contents of this file are printed to replace the default string " --" at the beginning of each comment line.
|
hook017 | If this hook file exists, and if a heading comment is present, the contents of this file are 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 are 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. |
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. |
Changing the output for the feature list
hook200 | If it exists, this file is printed before the feature list, when the option -sort is selected, to replace the default string "feature(s)%N" .
|
hook201 | If it exists, this file is printed after the feature list, when the option -sort is selected, to replace the default empty string "" .
|
hook202 | If it exists, this file is printed before each feature list with no heading comment to replace the default string "feature(s) from " .
|
hook203 | If it exists, this file is printed after the class name introduced at hook202 to replace the default string "%N" .
|
hook204 | If it exists, this file is printed before a feature list with a heading comment to replace the default string "feature(s) from " .
|
hook205 | If it exists, this file is printed after the class name introduced at hook204 to replace the default string "%N" .
|
hook206 | If it exists, this file is printed before each line of the feature list comment to replace the default string " --" .
|
hook207 | If it exists, this file is printed after each line of the feature list comment to replace the default string "%N" .
|
hook208 | If it exists, this file is printed after a feature list comment to replace the default empty string "" .
|
Changing the output for a feature signature
hook300 | If it exists, this file is printed before each feature to replace the default string " " .
|
hook301 | If it exists, this file is printed once when the feature has no arguments to replace the default empty string "" .
|
hook302 | If it exists, this file is printed once when the feature has arguments to replace the default string " (" .
|
hook303 | If it exists, this file is printed when the feature has arguments to replace the default string "; " .
|
hook304 | If it exists, this file is printed when the feature has arguments to replace the default string ", " .
|
hook305 | If it exists, this file is printed when the feature has arguments to replace the default string ": " .
|
hook306 | If it exists, this file is printed once when the feature has arguments to replace the default string ")" .
|
hook307 | If it exists, this file is printed once when the feature has no result to replace the default string "%N" .
|
hook308 | If it exists, this file is printed once before the result type of the feature to replace the default string ": " .
|
hook309 | If it exists, this file is printed once after the result type of the feature to replace the default string "%N" .
|
Changing the output for a feature comment
hook310 | If it exists, and if a feature has a heading comment, this file is printed once before the comment. |
hook311 | If it exists, and if a feature has a heading comment, this file is printed to replace the default string " --" at the beginning of each comment line.
|
hook312 | If it exists, and if a feature has a heading comment, this file is printed to replace the default string "%N" at the end of each comment line.
|
hook313 | If it exists, and if a feature has a heading comment, this file is printed once after this comment. |
hook314 | If it exists, and if a feature has no heading comment, this file is printed. |
hook315 | If it exists, and if a feature is deferred, the contents of this file is printed. |
Changing the output for require clauses
For the header of a require clause
hook400 | If it exists, and if a feature has no require assertion, this file is printed to replace the default empty string "" .
|
hook401 | If it exists, and if a feature has one require assertion, this file is printed before the latest inherited assertion to replace the default string " require%N" .
|
hook402 | If it exists, and if a feature has more than one require assertion, this file is printed before the require assertion to replace the default string " require else%N" .
|
hook403 | If it exists, and if a feature has at least one require assertion, this file is printed to finish the job (once after the last printed require assertion) to replace the default empty string "" .
|
hook412 | If it exists, this file is printed when a require clause has no heading comment to replace the default empty string "" .
|
hook413 | If it exists, this file is printed once before the require clause heading comment to replace the default empty string "" .
|
hook414 | If it exists, this file is printed before each line of the heading comment to replace the default string " --" .
|
hook415 | If it exists, this file is printed after each line of the heading comment to replace the default string "%N" .
|
hook416 | If it exists, this file is printed once after the require clause heading comment. |
hook417 | If it exists, this file is printed when a require clause has no assertion to replace the default empty string "" .
|
hook418 | If it exists, this file is printed once before the first assertion of a require clause to replace the default empty string "" .
|
hook433 | If it exists, this file is printed once after the last assertion of a require clause to replace the default empty string "" .
|
hook434 | If it exists, this file is printed at the very end of a require clause to replace the default empty string "" .
|
For each assertion in a require clause
hook419 | If it exists, this file is printed before each assertion of a require clause to replace the default string " " .
|
hook420 | If it exists, this file is printed when an assertion has no tag to replace the default empty string "" .
|
hook421 | If it exists, this file is printed before a tag to replace the default empty string "" .
|
hook422 | If it exists, this file is printed after a tag to replace the default string ": " .
|
hook423 | If it exists, this file is printed when the assertion has no expression to replace the default empty string "" .
|
hook424 | If it exists, this file is printed before the expression to replace the default empty string "" .
|
hook425 | If it exists, this file is printed after the expression (except for the last assertion) to replace the default string ";" .
|
hook426 | If it exists, this file is printed when an assertion has no comment to replace the default string "%N" .
|
hook427 | If it exists, this file is printed once before the assertion comment to replace the default empty string "" .
|
hook428 | If it exists, this file is printed before each line of the expression comment to replace the default string " --" .
|
hook429 | If it exists, this file is printed after each line of the expression comment to replace the default string "%N" .
|
hook430 | If it exists, this file is printed once after the assertion's comment to replace the default string "" .
|
hook431 | If it exists, this file is printed after the assertion to replace the default empty string "" .
|
For the last assertion in a require clause
The same hook files list is used as is described in the previous section, except for hook425 which is replaced by:
hook432 | If it exists, this file is printed after the last expression to replace the default empty string "" .
|
Changing the output for ensure clauses
For the header of an ensure clause
hook500 | If it exists, and if a feature has no ensure assertion, this file is printed to replace the default empty string "" .
|
hook501 | If it exists, and if a feature has one ensure assertion, this file is printed before the latest inherited assertion to replace the default string " ensure%N" .
|
hook502 | If it exists, and if a feature has more than one ensure assertion, this file is printed before the ensure assertion to replace the default string " ensure else%N" .
|
hook503 | If it exists, and if a feature has at least one ensure assertion, this file is printed to finish the job (once after the last printed ensure assertion) to replace the default empty string "" .
|
hook512 | If it exists, this file is printed when an ensure clause has no heading comment to replace the default empty string "" .
|
hook513 | If it exists, this file is printed once before the ensure clause heading comment to replace the default empty string "" .
|
hook514 | If it exists, this file is printed before each line of the heading comment to replace the default string " --" .
|
hook515 | If it exists, this file is printed after each line of the heading comment to replace the default string "%N" .
|
hook516 | If it exists, this file is printed once after the ensure clause heading comment. |
hook517 | If it exists, this file is printed when an ensure clause has no assertion to replace the default empty string "" .
|
hook518 | If it exists, this file is printed once before the first assertion of an ensure clause to replace the default empty string "" .
|
hook533 | If it exists, this file is printed once after the last assertion of an ensure clause to replace the default empty string "" .
|
hook534 | If it exists, this file is printed to finish an ensure clause to replace the default empty string "" .
|
For each assertion in an ensure clause
hook519 | If it exists, this file is printed before each assertion of an ensure clause to replace the default string " " .
|
hook520 | If it exists, this file is printed when an assertion has no tag to replace the default empty string "" .
|
hook521 | If it exists, this file is printed before a tag to replace the default empty string "" .
|
hook522 | If it exists, this file is printed after a tag to replace the default string ": " .
|
hook523 | If it exists, this file is printed when the assertion has no expression to replace the default empty string "" .
|
hook524 | If it exists, this file is printed before the expression to replace the default empty string "" .
|
hook525 | If it exists, this file is printed after the expression (except for the last assertion) to replace the default string ";" .
|
hook526 | If it exists, this file is printed when an assertion has no comment to replace the default string "%N" .
|
hook527 | If it exists, this file is printed once before the assertion comment to replace the default empty string "" .
|
hook528 | If it exists, this file is printed before each line of the expression comment to replace the default string " --" .
|
hook529 | If it exists, this file is printed after each line of the expression comment to replace the default string "%N" .
|
hook530 | If it exists, this file is printed once after the assertion's comment to replace the default string "" .
|
hook531 | If it exists, this file is printed after the assertion to replace the default empty string "" .
|
For the last assertion in an ensure clause
The same hook files list is used as is described in the previous section, except for hook525 which is replaced by:
hook532 | If it exists, this file is printed after the last expression to replace the default empty string "" .
|
Changing the output after each feature
hook599 | If it exists, this file is printed after each feature to replace the default empty string "" .
|
Changing the output for the class invariant
For the header of a ensure clause
hook800 | If it exists, and when no class invariant exists, this file is printed to replace the default empty string "" .
|
hook811 | If it exists, this file is printed before the class invariant to replace the default string "invariant%N" .
|
hook812 | If it exists, this file is printed before the class invariant to replace the default empty string "" .
|
hook813 | If it exists, this file is printed once before the class invariant heading comment to replace the default empty string "" .
|
hook814 | If it exists, this file is printed before each line of the heading comment to replace the default string " --" .
|
hook815 | If it exists, this file is printed after each line of the heading comment to replace the default string "%N" .
|
hook816 | If it exists, this file is printed once after the class invariant heading comment. |
hook817 | If it exists, this file is printed when the class invariant has no assertion to replace the default empty string "" .
|
hook818 | If it exists, this file is printed once before the first assertion of the class invariant to replace the default empty string "" .
|
hook833 | If it exists, this file is printed once after the last assertion of the class invariant to replace the default empty string "" .
|
hook834 | If it exists, this file is printed to finish the class invariant to replace the default empty string "" .
|
For each assertion in a class invariant
hook819 | If it exists, this file is printed before each assertion of the class invariant to replace the default string " " .
|
hook820 | If it exists, this file is printed when an assertion has no tag to replace the default empty string "" .
|
hook821 | If it exists, this file is printed before a tag to replace the default empty string "" .
|
hook822 | If it exists, this file is printed after a tag to replace the default string ": " .
|
hook823 | If it exists, this file is printed when the assertion has no expression to replace the default empty string "" .
|
hook824 | If it exists, this file is printed before the expression to replace the default empty string "" .
|
hook825 | If it exists, this file is printed after the expression (except for the last assertion) to replace the default string ";" .
|
hook826 | If it exists, this file is printed when an assertion has no comment to replace the default string "%N" .
|
hook827 | If it exists, this file is printed once before the assertion comment to replace the default empty string "" .
|
hook828 | If it exists, this file is printed before each line of the expression comment to replace the default string " --" .
|
hook829 | If it exists, this file is printed after each line of the expression comment to replace the default string "%N" .
|
hook830 | If it exists, this file is printed once after the assertion's comment to replace the default string "" .
|
hook831 | If it exists, this file is printed after the assertion to replace the default empty string "" .
|
For the last assertion in the class invariant
The same hook files list is used as is described in the previous section, except for hook825 which is replaced by:
hook832 | If it exists, this file is printed after the last expression to replace the default empty string "" .
|
hook900 | If it exists, this file is printed once before class footer to replace the default empty string "" .
|
hook901 | If it exists, this file is printed once at the end of an expanded class before the class name to replace the default "end of expanded " .
|
hook902 | If it exists, this file is printed once at the end of a deferred class before the class name to replace the default "end of deferred " .
|
hook903 | If it exists, this file is 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 | If it exists, this file is printed just before the class name to replace the default empty string "" .
|
hook905 | If it exists, this file is printed after the class name to replace the default string "%N" .
|
hook999 | If it exists, this file is printed once to finish the job. |
Class name and formal generic arguments
Changing the output for class names
Bcn | If it exists, this file is printed before each class name. |
Mcn | If this file exists, the class name is printed once more (using lower case letters) followed by the contents of this file. |
Acn | If it exists, this file is printed after each class name. |
Ucn | If it exists, this file is printed to replace the underscore character in a class name. |
Changing the output for formal generic arguments
Bfga | If it exists, this file is printed before each formal generic argument. |
Mfga | If this file exists, the formal generic argument is printed once more (using lower case letters) followed by the contents of this file. |
Afga | If it exists, this file is printed after each formal generic argument. |
Ufga | If it exists, this file is printed to replace the underscore character in a formal generic argument. |
Changing the output for a type mark
Btm | If it exists, this file is printed before each type mark. |
Atm | If it exists, this file is printed after each type mark. |
open_sb | If it exists, this file is printed instead of an opening bracket ("[" ).
|
close_sb | If it exists, this file is printed instead of a closing bracket ("]" ).
|
fgl_sep | If it exists, this file is printed instead of the separating coma in a formal generic argument list (", " ).
|
tm_blank | If it exists, this file is printed instead of a white space in a type mark (" " ).
|
tm_sep | If it exists, this file is printed instead of the separating coma in a generic list (", " ).
|
like | If it exists, this file is printed instead of the default string "like "
|
expanded | If it exists, this file is printed instead of the default string "expanded "
|
Changing the output for feature names
Simple feature names
Bsfn | If it exists, this file is printed before each Simple Feature Name. |
Asfn | If it exists, this file is printed after each Simple Feature Name. |
Usfn | If it exists, this file is printed to replace the underscore character in a Simple Feature Name. |
Infix feature names
Bifn | If it exists, this file is printed before each infix feature definition name instead of the default string "infix %"" .
|
Aifn | If it exists, this file is printed after each infix feature definition name instead of the default string "%"" .
|
Binfix | If it exists, this file is printed before the infix name used in an expression instead of the default string " " .
|
Ainfix | If it exists, this file is printed after the infix name used in an expression instead of the default string " " .
|
rem | If it exists, this file is printed to replace the default string "\\" .
|
Prefix feature names
Bpfn | If it exists, this file is printed before each prefix feature definition name instead of the default string "infix %"" .
|
Apfn | If it exists, this file is printed after each prefix feature definition name instead of the default string "%"" .
|
Changing the output for an argument name
Ban | If it exists, this file is printed before each Argument Name. |
Aan | If it exists, this file is printed after each Argument Name. |
Uan | If it exists, this file is printed to replace the underscore character in an Argument Name. |
Changing the output for a tag name
Btag | If it exists, this file is printed before each Tag Name. |
Atag | If it exists, this file is printed after each Tag Name. |
Utag | If it exists, this file is printed to replace the underscore character in an Tag Name. |
Changing the output for an effective argument list
op_eal | If it exists, this file is printed to open an effective argument list instead of the default string "(" .
|
eal_sep | If it exists, this file is printed in an effective argument list instead of the default string ", " .
|
cl_eal | If it exists, this file is printed to close an effective argument list instead of the default string ")" .
|
Changing the output for manifest strings
open_ms | If it exists, this file is printed to open a manifest string instead of the default string "%"" .
|
close_ms | If it exists, this file is printed to close a manifest string instead of the default string "%"" .
|
Prcnt_ms | If it exists, this file is printed in a manifest string instead of the default string "%%" .
|
Slash_ms | If it exists, this file is printed to close a manifest string instead of the default string "/" .
|
Changing the output for a manifest array
op_ma | If it exists, this file is printed to open a manifest array instead of the default string "<<" .
|
ma_sep | If it exists, this file is printed in a manifest array instead of the default string ", " .
|
cl_ma | If it exists, this file is printed to close a manifest array instead of the default string ">>" .
|
Changing the output for comments lines
BECL | Before Each Comment Line. This hook is applied to all comments whatever the kind of comment. If it exists, this file is printed at the beginning of each comment line instead of the default string "--" .
|
AECL | After Each Comment Line. This hook is applied to all comments whatever the kind of comment. If it exists, this file is printed at the end of each comment line instead of the default string "%N" .
|
Ucomment | If it exists, this file is printed to replace the underscore character in an comment line. |
op_quote | If it exists, this file is printed instead of the default string "`" .
|
cl_quote | If it exists, this file is printed instead of the default string "'" .
|
Miscellaneous tuning
open_b | If it exists, this file is printed instead of the default opening parenthesis in expressions, replacing the default string "(" .
|
close_b | If it exists, this file is printed instead of the default closing parenthesis in expressions, replacing the default string ")" .
|
dot | If it exists, this file is printed instead of the dot in expressions, replacing the default string "." .
|
Current | If it exists, this file is printed instead of the Current entity in expressions, replacing the default string "Current" .
|
Result | If it exists, this file is printed instead of the Result entity in expressions, replacing the default string "Result" .
|
Void | If it exists, this file is printed instead of the Void entity in expressions, replacing the default string "Void" .
|
once | If it exists, this file is printed instead of the once keyword in expressions, replacing the default string "once" .
|
old | If it exists, this file is printed instead of the old keyword in postcondition expressions, replacing the default string "old" .
|
create_open | If it exists, this file is printed to replace the default string "create {" .
|
create_close | If it exists, this file is printed to replace the default string "}" opened by create_open.
|
fnl_sep | If it exists, this file is printed in a feature name list instead of the default string ", " .
|
arrow | If it exists, this file is printed instead of the arrow in a formal generic list, replacing the default string "->" .
|
new_line | If it exists, this file replaces the default string "%N" .
|