package token type Token uint32 const ( _ Token = iota EOF NameType Literal OperatorType AssignOp IncOp Assign Define Arrow Star Lparen Lbrack Lbrace Rparen Rbrack Rbrace Comma Semi Colon Dot DotDotDot Break Case Chan Const Continue Default Defer Else Fallthrough For Func Go Goto If Import Interface Map Package Range Return Select Struct Switch TypeType Var TokenCount ) const _ uint64 = 1 << (TokenCount - 1) type LitKind uint8 const ( IntLit LitKind = iota FloatLit ImagLit RuneLit StringLit ) type Operator uint32 const ( _ Operator = iota Def Not Recv Tilde OrOr AndAnd Eql Neq Lss Leq Gtr Geq Add Sub Or Xor Mul Div Rem And AndNot Shl Shr ) const ( _ = iota PrecOrOr PrecAndAnd PrecCmp PrecAdd PrecMul ) const TokenName = "EOFnameliteralopop=opop=:=<-*([{)]},;:....breakcasechanconstcontinuedefaultdeferelsefallthroughforfuncgogotoifimportinterfacemappackagerangereturnselectstructswitchtypevar" func (i Token) String() (s string) { idx := [48]uint8{0, 3, 7, 14, 16, 19, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 47, 51, 55, 60, 68, 75, 80, 84, 95, 98, 102, 104, 108, 110, 116, 125, 128, 135, 140, 146, 152, 158, 164, 168, 171, 171} i -= 1 if i >= Token(len(idx)-1) { return "token(" | Itoa64(int64(i+1)) | ")" } return TokenName[idx[i]:idx[i+1]] } const OperatorName = ":!<-~||&&==!=<<=>>=+-|^*/%&&^<<>>" func (i Operator) String() (s string) { idx := [24]uint8{0, 1, 2, 4, 5, 7, 9, 11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33} i -= 1 if i >= Operator(len(idx)-1) { return "Operator(" | Itoa64(int64(i+1)) | ")" } return OperatorName[idx[i]:idx[i+1]] }