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.