An LP input is made up of words or tokens. Each token is either an IDENT,
a NUMBER, a STRING, a keyword, or a literal. These
are defined as follows:
- IDENT
-
is any nonempty string that contains solely lower or upper case letters (a-z
and A-Z) the ten digits (0-9),
and !"#$%&()/,;?@_`'{}|~.
An IDENT must never start with a digit or a period (.).
- NUMBER
-
is a floating point number in scientific notation.
- STRING
-
is a nonempty sequence of characters that contains no white space characters.
- keyword
-
is any of the strings given in double quotes in the LP
format definition. All keywords must appear at the beginning of lines.
Characters in keywords may be any mix of upper or lower case. For example "MIN"
can be written as min, Min,
MIN, mIn,
...
- literal
-
is any of the strings given in single quotes used in BNF
definition of the LP format. A literal may appear anywhere on a line.
Characters in literals may be any mix of upper or lower case. For example, 'inf'
can we written as inf, INF,
Inf, iNF,
...
Comments are introduced by the character '\'. The LP format parser
ignores all text after '\' until the end of the line.
Tokens may be separated by white space, that is by blanks, tabs, newlines,
formfeeds, and control-returns. The LP format parser always tries to match the
longest possible string to the next token. Therefore, two tokens must be
separated by white space from each other in an LP-format description if their
combination becomes a legal token itself. For example, writing
Bounds
10<=xy<=10 \ x and y glued together
is interpreted as 10 <= xy <= 10 and not as 10 <= x,
y <= 10
See also LP format definition.