| // UNREVIEWED | |
| // Copyright 2021 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package noder | |
| import "internal/pkgbits" | |
| type codeStmt int | |
| func (c codeStmt) Marker() pkgbits.SyncMarker { return pkgbits.SyncStmt1 } | |
| func (c codeStmt) Value() int { return int(c) } | |
| const ( | |
| stmtEnd codeStmt = iota | |
| stmtLabel | |
| stmtBlock | |
| stmtExpr | |
| stmtSend | |
| stmtAssign | |
| stmtAssignOp | |
| stmtIncDec | |
| stmtBranch | |
| stmtCall | |
| stmtReturn | |
| stmtIf | |
| stmtFor | |
| stmtSwitch | |
| stmtSelect | |
| ) | |
| type codeExpr int | |
| func (c codeExpr) Marker() pkgbits.SyncMarker { return pkgbits.SyncExpr } | |
| func (c codeExpr) Value() int { return int(c) } | |
| // TODO(mdempsky): Split expr into addr, for lvalues. | |
| const ( | |
| exprNone codeExpr = iota | |
| exprConst | |
| exprType // type expression | |
| exprLocal // local variable | |
| exprName // global variable or function | |
| exprBlank | |
| exprCompLit | |
| exprFuncLit | |
| exprSelector | |
| exprIndex | |
| exprSlice | |
| exprAssert | |
| exprUnaryOp | |
| exprBinaryOp | |
| exprCall | |
| exprConvert | |
| ) | |
| type codeDecl int | |
| func (c codeDecl) Marker() pkgbits.SyncMarker { return pkgbits.SyncDecl } | |
| func (c codeDecl) Value() int { return int(c) } | |
| const ( | |
| declEnd codeDecl = iota | |
| declFunc | |
| declMethod | |
| declVar | |
| declOther | |
| ) |