PUNCTUATOR(LBRACK,          "[", = '[')
PUNCTUATOR(RBRACK,          "]", = ']')
PUNCTUATOR(LPAREN,          "(", = '(')
PUNCTUATOR(RPAREN,          ")", = ')')
PUNCTUATOR(LCURLY,          "{", = '{')
PUNCTUATOR(RCURLY,          "}", = '}')
PUNCTUATOR(DOT,             ".", = '.')
PUNCTUATOR(AND,             "&", = '&')
ALTERNATE(bitand,                = '&')
PUNCTUATOR(ASTERISK,        "*", = '*')
PUNCTUATOR(PLUS,            "+", = '+')
PUNCTUATOR(MINUS,           "-", = '-')
PUNCTUATOR(TILDE,           "~", = '~')
ALTERNATE(compl,                 = '~')
PUNCTUATOR(EXCLAMATIONMARK, "!", = '!')
ALTERNATE(not,                   = '!')
PUNCTUATOR(SLASH,           "/", = '/')
PUNCTUATOR(PERCENT,         "%", = '%')
PUNCTUATOR(LESS,            "<", = '<')
PUNCTUATOR(GREATER,         ">", = '>')
PUNCTUATOR(CARET,           "^", = '^')
ALTERNATE(xor,                   = '^')
PUNCTUATOR(PIPE,            "|", = '|')
ALTERNATE(bitor,                 = '|')
PUNCTUATOR(QUESTIONMARK,    "?", = '?')
PUNCTUATOR(COLON,           ":", = ':')
PUNCTUATOR(SEMICOLON,       ";", = ';')
PUNCTUATOR(EQUAL,           "=", = '=')
PUNCTUATOR(COMMA,           ",", = ',')
PUNCTUATOR(HASH,            "#", = '#')

/* Start after extended ASCII. */
PUNCTUATOR(MINUSGREATER,             "->", = 256)
PUNCTUATOR(PLUSPLUS,                 "++",)
PUNCTUATOR(MINUSMINUS,               "--",)
PUNCTUATOR(LESSLESS,                 "<<",)
PUNCTUATOR(GREATERGREATER,           ">>",)
PUNCTUATOR(LESSEQUAL,                "<=",)
PUNCTUATOR(GREATEREQUAL,             ">=",)
PUNCTUATOR(EQUALEQUAL,               "==",)
PUNCTUATOR(EXCLAMATIONMARKEQUAL,     "!=",)
ALTERNATE(not_eq,                          = T_EXCLAMATIONMARKEQUAL)
PUNCTUATOR(ANDAND,                   "&&",)
ALTERNATE(and,                             = T_ANDAND)
PUNCTUATOR(PIPEPIPE,                 "||",)
ALTERNATE(or,                              = T_PIPEPIPE)
PUNCTUATOR(DOTDOTDOT,                "...",)
PUNCTUATOR(ASTERISKEQUAL,            "*=",)
PUNCTUATOR(SLASHEQUAL,               "/=",)
PUNCTUATOR(PERCENTEQUAL,             "%=",)
PUNCTUATOR(PLUSEQUAL,                "+=",)
PUNCTUATOR(MINUSEQUAL,               "-=",)
PUNCTUATOR(LESSLESSEQUAL,            "<<=",)
PUNCTUATOR(GREATERGREATEREQUAL,      ">>=",)
PUNCTUATOR(ANDEQUAL,                 "&=",)
ALTERNATE(and_eq,                          = T_ANDEQUAL)
PUNCTUATOR(CARETEQUAL,               "^=",)
ALTERNATE(xor_eq,                          = T_CARETEQUAL)
PUNCTUATOR(PIPEEQUAL,                "|=",)
ALTERNATE(or_eq,                           = T_PIPEEQUAL)
PUNCTUATOR(COLONCOLON,               "::",)
PUNCTUATOR(HASHHASH,                 "##",)
