2 * Language expressions.
\r
3 * @type {!Object.<string,!RegExp>}
\r
8 // Characters always ending a statement
\r
9 DELIM: /[\s\{\}=;:\[\],'"\(\)<>]/g,
\r
12 RULE: /^(?:required|optional|repeated|map)$/,
\r
15 TYPE: /^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,
\r
18 NAME: /^[a-zA-Z_][a-zA-Z_0-9]*$/,
\r
21 TYPEDEF: /^[a-zA-Z][a-zA-Z_0-9]*$/,
\r
24 TYPEREF: /^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,
\r
26 // Fully qualified type references
\r
27 FQTYPEREF: /^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/,
\r
30 NUMBER: /^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,
\r
33 NUMBER_DEC: /^(?:[1-9][0-9]*|0)$/,
\r
35 // Hexadecimal numbers
\r
36 NUMBER_HEX: /^0[xX][0-9a-fA-F]+$/,
\r
39 NUMBER_OCT: /^0[0-7]+$/,
\r
41 // Floating point numbers
\r
42 NUMBER_FLT: /^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,
\r
45 BOOL: /^(?:true|false)$/i,
\r
48 ID: /^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
\r
50 // Negative id numbers (enum values)
\r
51 NEGID: /^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,
\r
57 STRING: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,
\r
59 // Double quoted strings
\r
60 STRING_DQ: /(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,
\r
62 // Single quoted strings
\r
63 STRING_SQ: /(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g
\r