com.redhat.ceylon.common.tool.package-info Maven / Gradle / Ivy
/**
* API for the Ceylon toolset.
*
* Terminology
* Consider the following hypothetical command line:
* ceylon example --foo --bar=A -c -def baz
* In the above
*
* - program name
* - is the first element of the command line, {@code ceylon} in the
* example
-
*
- arguments
* - can refer to everything following the program name, but more
* usually refers to non-option arguments.
-
*
- options
* - are arguments which begin with a {@code --} or a {@code -}
* and appear before the first end of options indicator
* (conventionally a {@code --} on its own) if any.
* An end of options indicator is not illustrated in the example)
* - pure options
* - are options that do not accept a value
* - option arguments
* - are options that do accept a value. This term can also refer to the
* value of an option argument.
* - long options
* - are options beginning with a {@code --} ({@code --foo} and
* {@code --bar} in the example).
* - short options
* - are options beginning with a single {@code -}. The simple
* case is illustrated by {@code -c} in the above example. Short options are
* always a single character, but pure short options can be
* combined with a following short option. In such a combination only the
* last short option in the group is allowed to be an option argument.
* Short option arguments (that is to say the value of the short option
* argument) may be merged with the short option itself, or follow it
* as a separate argument.
* So there are multiple interpretations of the {@code -def} in the
* example above:
*
* - {@code d} is a short option argument whose value is {@code ef}
* - {@code d} is a short pure option and {@code e} is a short option
* argument whose value is {@code f}
* - {@code d} and {@code e} are short pure options and {@code f} is a
* short option argument whose value is {@code baz}
* - {@code d}, {@code e} and {@code f} are short pure options and
* {@code baz} is a plain argument (not an option's argument).
*
*
*
* Tools
* A tool is a class which implements {@link Tool} and adheres
* to the conventions it requires.
*/
package com.redhat.ceylon.common.tool;
© 2015 - 2024 Weber Informatics LLC | Privacy Policy