Difference between revisions of "Short"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
(Still working)
(→‎Adding a new format: Still working.)
Line 96: Line 96:
   
 
== Adding a new format ==
 
== Adding a new format ==
  +
  +
To define a new output format, you have to add a new sub-directory in the <code>SmartEiffel/short</code> 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.

Revision as of 07:53, 13 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.