github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/token/token.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // パッケージtokenは、Goプログラミング言語の字句トークンとトークンに対する基本的な操作(印刷、述語)を定義する定数を表します。 6 package token 7 8 // TokenはGoプログラミング言語の字句トークンの集合です。 9 type Token int 10 11 // トークンのリスト。 12 const ( 13 // 特別なトークン 14 ILLEGAL Token = iota 15 EOF 16 COMMENT 17 18 // 識別子と基本型のリテラル 19 // (これらのトークンはリテラルのクラスを表します) 20 IDENT 21 INT 22 FLOAT 23 IMAG 24 CHAR 25 STRING 26 27 // オペレータと区切り文字 28 ADD 29 SUB 30 MUL 31 QUO 32 REM 33 34 AND 35 OR 36 XOR 37 SHL 38 SHR 39 AND_NOT 40 41 ADD_ASSIGN 42 SUB_ASSIGN 43 MUL_ASSIGN 44 QUO_ASSIGN 45 REM_ASSIGN 46 47 AND_ASSIGN 48 OR_ASSIGN 49 XOR_ASSIGN 50 SHL_ASSIGN 51 SHR_ASSIGN 52 AND_NOT_ASSIGN 53 54 LAND 55 LOR 56 ARROW 57 INC 58 DEC 59 60 EQL 61 LSS 62 GTR 63 ASSIGN 64 NOT 65 66 NEQ 67 LEQ 68 GEQ 69 DEFINE 70 ELLIPSIS 71 72 LPAREN 73 LBRACK 74 LBRACE 75 COMMA 76 PERIOD 77 78 RPAREN 79 RBRACK 80 RBRACE 81 SEMICOLON 82 COLON 83 84 // キーワード 85 BREAK 86 CASE 87 CHAN 88 CONST 89 CONTINUE 90 91 DEFAULT 92 DEFER 93 ELSE 94 FALLTHROUGH 95 FOR 96 97 FUNC 98 GO 99 GOTO 100 IF 101 IMPORT 102 103 INTERFACE 104 MAP 105 PACKAGE 106 RANGE 107 RETURN 108 109 SELECT 110 STRUCT 111 SWITCH 112 TYPE 113 VAR 114 115 // 追加のトークン、特別な方法で処理される 116 TILDE 117 ) 118 119 // Stringはtokに対応する文字列を返します。 120 // 演算子、区切り文字、キーワードの場合、文字列は実際のトークン文字列です(たとえば、トークン [ADD] の場合、文字列は"+"です)。 121 // それ以外のすべてのトークンに対して、文字列はトークンの定数名に対応します(たとえば、トークン [IDENT] の場合、文字列は"IDENT"です)。 122 func (tok Token) String() string 123 124 // 優先順位ベースの式の解析のための定数のセット。 125 // 非演算子は最低の優先度を持ち、1から始まる演算子が続きます。 126 // 最高の優先度はセレクタ、インデックス、その他の演算子や区切り記号トークンのための「キャッチオール」優先度として機能します。 127 const ( 128 LowestPrec = 0 129 UnaryPrec = 6 130 HighestPrec = 7 131 ) 132 133 // Precedence returns the operator precedence of the binary 134 // operator op. If op is not a binary operator, the result 135 // is LowestPrecedence. 136 // Precedenceは、バイナリ演算子opの演算子の優先度を返します。opがバイナリ演算子でない場合、結果はLowestPrecedenceになります。 137 func (op Token) Precedence() int 138 139 // Lookupは識別子をキーワードトークンまたは [IDENT](キーワードでない場合)にマップします。 140 func Lookup(ident string) Token 141 142 // IsLiteral は、識別子と基本型のリテラルに対応するトークンに対して true を返します。それ以外の場合は、false を返します。 143 func (tok Token) IsLiteral() bool 144 145 // IsOperatorはオペレーターや区切り記号に対応するトークンに対してtrueを返し、 146 // それ以外の場合はfalseを返します。 147 func (tok Token) IsOperator() bool 148 149 // IsKeywordはキーワードに対応するトークンに対してtrueを返し、それ以外の場合はfalseを返します。 150 func (tok Token) IsKeyword() bool 151 152 // IsExported は、name が大文字で始まるかどうかを報告します。 153 func IsExported(name string) bool 154 155 // IsKeywordは、nameがGoのキーワード("func"や"return"など)であるかどうかを報告します。 156 func IsKeyword(name string) bool 157 158 // IsIdentifierは、nameがGoの識別子であるかどうかを報告します。つまり、 159 // 最初の文字が数字でない、文字、数字、アンダースコアで構成された空でない文字列です。キーワードは識別子ではありません。 160 func IsIdentifier(name string) bool