Difference between revisions of "Short"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
(still feeding the page)
(still feeding the page)
Line 287: Line 287:
 
| valign="top" | ''hook434''
 
| valign="top" | ''hook434''
 
| If it exists, this file is printed to finish a require clause to replace the default empty string <code>""</code>.
 
| If it exists, this file is printed to finish a require clause to replace the default empty string <code>""</code>.
  +
|}
  +
  +
==== For each assertion in a require clause ====
  +
  +
{| cellspacing="4" cellpadding="0" width="100%"
  +
|-
  +
| width="10%" valign="top" | ''hook419''
  +
| If it exists, this file is printed before each assertion of a require clause to replace the default string <code>"&nbsp;"</code>.
  +
|-
  +
| valign="top" | ''hook420''
  +
| If it exists, this file is printed when an assertion has no tag to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook421''
  +
| If it exists, this file is printed before a tag to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook422''
  +
| If it exists, this file is printed after a tag to replace the default string <code>":&nbsp;"</code>.
  +
|-
  +
| valign="top" | ''hook423''
  +
| If it exists, this file is printed when the assertion has no expression to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook424''
  +
| If it exists, this file is printed before the expression to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook425''
  +
| If it exists, this file is printed after the expression (except for the last assertion) to replace the default string <code>";"</code>.
  +
|-
  +
| valign="top" | ''hook426''
  +
| If it exists, this file is printed when an assertion has no comment to replace the default string <code>"%N"</code>.
  +
|-
  +
| valign="top" | ''hook427''
  +
| If it exists, this file is printed once before the assertion comment to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook428''
  +
| If it exists, this file is printed before each line of the expression comment to replace the default string <code>"&nbsp;--"</code>.
  +
|-
  +
| valign="top" | ''hook429''
  +
| If it exists, this file is printed after each line of the expression comment to replace the default string <code>"%N"</code>.
  +
|-
  +
| valign="top" | ''hook430''
  +
| If it exists, this file is printed once after the assertion's comment to replace the default string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook431''
  +
| If it exists, this file is printed after the assertion to replace the default empty string <code>""</code>.
  +
|}
  +
  +
==== For the last assertion in a require clause ====
  +
  +
{| cellspacing="4" cellpadding="0" width="100%"
  +
|-
  +
| width="10%" valign="top" | ''hook432''
  +
| If it exists, this file is printed after the last expression to replace the default empty string <code>""</code>.
  +
|}
  +
  +
=== Changing the output for ensure clauses ===
  +
  +
==== For the header of a ensure clause ====
  +
  +
{| cellspacing="4" cellpadding="0" width="100%"
  +
|-
  +
| width="10%" valign="top" | ''hook500''
  +
| If it exists, and if a feature has no ensure assertion, this file is printed to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''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 <code>"&nbsp;ensure%N"</code>.
  +
|-
  +
| valign="top" | ''hook502''
  +
| If it exists, and if a feature has more than one ensure assertion, the contents of this file is printed before the ensure assertion to replace the default string <code>"&nbsp;ensure&nbsp;else%N"</code>.
  +
|-
  +
| valign="top" | ''hook503''
  +
| If it exists, and if a feature has at least one ensure assertion, the contents of this file is printed to finish the job (once after the last printed ensure assertion) to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook512''
  +
| If it exists, this file is printed when an ensure clause has no heading comment to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook513''
  +
| If it exists, this file is printed once before the ensure clause heading comment to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook514''
  +
| If it exists, this file is printed before each line of the heading comment to replace the default string <code>"&nbsp;--"</code>.
  +
|-
  +
| valign="top" | ''hook515''
  +
| If it exists, this file is printed after each line of the heading comment to replace the default string <code>"%N"</code>.
  +
|-
  +
| valign="top" | ''hook516''
  +
| If it exists, this file is printed once after the ensure clause heading comment.
  +
|-
  +
| valign="top" | ''hook517''
  +
| If it exists, this file is printed when a ensure clause has no assertion to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook518''
  +
| If it exists, this file is printed once before the first assertion of an ensure clause to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook533''
  +
| If it exists, this file is printed once after the last assertion of an ensure clause to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook534''
  +
| If it exists, this file is printed to finish an ensure clause to replace the default empty string <code>""</code>.
  +
|}
  +
  +
==== For each assertion in a ensure clause ====
  +
  +
{| cellspacing="4" cellpadding="0" width="100%"
  +
|-
  +
| width="10%" valign="top" | ''hook519''
  +
| If it exists, this file is printed before each assertion of a ensure clause to replace the default string <code>"&nbsp;"</code>.
  +
|-
  +
| valign="top" | ''hook520''
  +
| If it exists, this file is printed when an assertion has no tag to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook521''
  +
| If it exists, this file is printed before a tag to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook522''
  +
| If it exists, this file is printed after a tag to replace the default string <code>":&nbsp;"</code>.
  +
|-
  +
| valign="top" | ''hook523''
  +
| If it exists, this file is printed when the assertion has no expression to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook524''
  +
| If it exists, this file is printed before the expression to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook525''
  +
| If it exists, this file is printed after the expression (except for the last assertion) to replace the default string <code>";"</code>.
  +
|-
  +
| valign="top" | ''hook526''
  +
| If it exists, this file is printed when an assertion has no comment to replace the default string <code>"%N"</code>.
  +
|-
  +
| valign="top" | ''hook527''
  +
| If it exists, this file is printed once before the assertion comment to replace the default empty string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook528''
  +
| If it exists, this file is printed before each line of the expression comment to replace the default string <code>"&nbsp;--"</code>.
  +
|-
  +
| valign="top" | ''hook529''
  +
| If it exists, this file is printed after each line of the expression comment to replace the default string <code>"%N"</code>.
  +
|-
  +
| valign="top" | ''hook530''
  +
| If it exists, this file is printed once after the assertion's comment to replace the default string <code>""</code>.
  +
|-
  +
| valign="top" | ''hook531''
  +
| If it exists, this file is printed after the assertion to replace the default empty string <code>""</code>.
  +
|}
  +
  +
==== For the last assertion in a ensure clause ====
  +
  +
{| cellspacing="4" cellpadding="0" width="100%"
  +
|-
  +
| width="10%" valign="top" | ''hook532''
  +
| If it exists, this file is printed after the last expression to replace the default empty string <code>""</code>.
 
|}
 
|}

Revision as of 14:02, 15 May 2006


This is a draft. Please wait for me to finish it --Cyril 15:46, 12 May 2006 (CEST)


The short command is the SmartEiffel interface generator. Using a plain Eiffel source file, the command prints on the standard output the interface of this class. It is also a good tool to perform many validity checks of a given class (syntax, exportation rules, inheritance, etc.).

In a normal installation, it 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 SmartEiffel version number.
-loadpath <loadpath-file> Adds 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).
-no_style_warning Suppress the display of warning messages about non-compliance with Eiffel style rules (this flag does not have any effect any more in 2.3).
-no_warning Suppress all warning messages. This implies -no_style_warning.
-client <client_class> Specify the class whom the point of view is taken of. This command allows to know all the features visible to client_class from the class you short.

Note1: the default is equivalent to -client ANY.

Note2: se short -client STRING STRING does not show all features from STRING, but only those that are exported to STRING itself (callable via qualified calls).

-all_clients Display all the features, aven 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 contents itself (see [#Options the options above] to change the contents.

See also [#Adding_a_new_output_format below] to know how to add a new output format.

-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).
-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 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.

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</code 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 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, the contents of 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, 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 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 to finish 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

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 a 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, the contents of 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, the contents of 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 a 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 a ensure clause

hook519 If it exists, this file is printed before each assertion of a 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 a ensure clause

hook532 If it exists, this file is printed after the last expression to replace the default empty string "".