<?xml version="1.0"?> 

<!--
	description:

		"Using gelint"

	tool: "Gobo Eiffel Lint"
	copyright: "Copyright (c) 2006-2018, Eric Bezault and others"
	license: "MIT License"
	date: "$Date$"
	revision: "$Revision$"
-->

<chapter xmlns="http://www.gobosoft.com/eiffel/gobo/documentation" id="gelint/usage">
<chapterinfo>
	<copyright>
		<year>2006-2018</year>
		<holder>Eric Bezault</holder>
	</copyright>
	<author>
		<firstname>Eric</firstname><surname>Bezault</surname>
	</author>
	<email>ericb@gobosoft.com</email>
	<date>28 October 2018</date>
</chapterinfo>

<title>Using gelint</title>

<section><title>Command-line options</title>
<para>
The usual way to invoke <projectname>gelint</projectname> is as follows:
<blockquote>
	<filename>gelint ecf_filename</filename>
</blockquote>
This will read the description of your Eiffel system in the ECF file
<filename>ecf_filename</filename>, perform code analysis on the
corresponding Eiffel classes and report any syntax or validity
errors. Note that an Xace file can also be used in place of the
ECF file. Your Eiffel system can be an Eiffel project or an 
Eiffel library. Here is the list of options that can be used with 
<projectname>gelint</projectname>:
<variablelist>
	<varlistentry>
		<term>
			<filename>-h</filename>
		</term>
		<term>
			<filename>--help</filename>
		</term>
		<listitem><para>
			Print a summary of the command-line options of <projectname>gelint</projectname> and exit.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--target=&lt;target_name&gt;</filename>
		</term>
		<listitem><para>
			Name of target to be used in ECF file.
			(default: last target in ECF file)
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--flat</filename>
		</term>
		<listitem><para>
			For each class, not only check the validity of the features
			declared in this class, but also of those inherited from 
			its parent classes.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--noflatdbc</filename>
		</term>
		<listitem><para>
			Do not check the validity of inherited pre- and postconditions
			when a feature is redeclared.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--catcall</filename>
		</term>
		<listitem><para>
			Report possible CAT-call errors, based on the statically computed
			dynamic type sets of each variables in the Eiffel code.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--ecma</filename>
		</term>
		<listitem><para>
			Strictly follow the ECMA Eiffel standard during code analysis.
		</para></listitem>
	</varlistentry>	
	<varlistentry>
		<term>
			<filename>--ise[=major[.minor[.revision[.build]]]]</filename>
		</term>
		<listitem><para>
			Version of ISE Eiffel whose semantics should be used during code analysis.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--setting=name=value</filename>
		</term>
		<listitem><para>
			Override settings defined in ECF file. This option can be used several
			times to override several settings.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--capability=name=value</filename>
		</term>
		<listitem><para>
			Override capability usage defined in ECF file. This option can be used several
			times to override several capabilities.
		</para></listitem>
	</varlistentry>	
	<varlistentry>
		<term>
			<filename>--variable=NAME=VALUE</filename>
		</term>
		<listitem><para>
			Override variables defined in ECF file. This option can be used several
			times to override several variables.
		</para></listitem>
	</varlistentry>	
	<varlistentry>
		<term>
			<filename>--thread=&lt;thread_count&gt;</filename>
		</term>
		<listitem><para>
			Number of threads to be used to run <projectname>gelint</projectname>.
			Negative numbers -N mean &quot;number of CPUs - N&quot;.
			(default: number of CPUs)
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--silent</filename>
		</term>
		<listitem><para>
			Run <projectname>gelint</projectname> in silent mode.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--verbose</filename>
		</term>
		<listitem><para>
			Run <projectname>gelint</projectname> in verbose mode.
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--no-benchmark</filename>
		</term>
		<listitem><para>
			Should no benchmark information be displayed?
			(default: display non-nested benchmark information)
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--nested-benchmark</filename>
		</term>
		<listitem><para>
			Should nested benchmark information be displayed?
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>--metrics</filename>
		</term>
		<listitem><para>
			Should metrics information be displayed?
		</para></listitem>
	</varlistentry>
	<varlistentry>
		<term>
			<filename>-V</filename>
		</term>
		<term>
			<filename>--version</filename>
		</term>
		<listitem><para>
			Print the version number of <projectname>gelint</projectname> and exit.
		</para></listitem>
	</varlistentry>
</variablelist>
</para>
</section>

</chapter>
