one
of
"..."
", "any
but
x," and "x..y
" are used to concisely list a range of alternative characters. space
, tab
, and newline
stand for the corresponding characters.
name
::= letter {letter | digit} [id_cont] | "_" {"_"} op_name the first underscore is not part of the msg nameop_name
::= punct {punct} [id_cont] | "_" {"_"} name the first underscore is not part of the msg name id_cont ::= "_" {"_"} [name | op_name]integer
::= [radix] hex_digits a leading "-" is considered a unary operator
radix ::= digits "_" hex_digits ::= hex_digit {hex_digit} hex_digit ::= digit | one of "a..fA..F"float
::= integer "." hex_digits [exponent] | integer exponent exponent ::= "^" ["+" | "-"] digits digits ::= digit {digit}character
::= "'" char "'"string
::= """ { char | line_break } """ char ::= any | "\" escape_char escape_char ::= one of "'"nrtvba" | ["o"] digit [digit [digit]] | "x" hex_digit [hex_digit] line_break ::= "\" {whitespace} new_line {whitespace} "\" characters between \'s are not part of the string letter ::= one of "a..zA..Z" digit ::= one of "0..9" punct ::= one of "!#$%^&*-+=<>/?~\|"
Generated with Harlequin WebMaker