Package constraint
Overview ▹
Index ▹
func IsGoBuild ¶ 1.16
func IsGoBuild(line string) bool
IsGoBuild reports whether the line of text is a “//go:build” constraint. It only checks the prefix of the text, not that the expression itself parses.
func IsPlusBuild ¶ 1.16
func IsPlusBuild(line string) bool
IsPlusBuild reports whether the line of text is a “// +build” constraint. It only checks the prefix of the text, not that the expression itself parses.
func PlusBuildLines ¶ 1.16
func PlusBuildLines(x Expr) ([]string, error)
PlusBuildLines returns a sequence of “// +build” lines that evaluate to the build expression x. If the expression is too complex to convert directly to “// +build” lines, PlusBuildLines returns an error.
type AndExpr ¶ 1.16
An AndExpr represents the expression X && Y.
type AndExpr struct { X, Y Expr }
func (*AndExpr) Eval ¶ 1.16
func (x *AndExpr) Eval(ok func(tag string) bool) bool
func (*AndExpr) String ¶ 1.16
func (x *AndExpr) String() string
type Expr ¶ 1.16
An Expr is a build tag constraint expression. The underlying concrete type is *AndExpr, *OrExpr, *NotExpr, or *TagExpr.
type Expr interface { // String returns the string form of the expression, // using the boolean syntax used in //go:build lines. String() string // Eval reports whether the expression evaluates to true. // It calls ok(tag) as needed to find out whether a given build tag // is satisfied by the current build configuration. Eval(ok func(tag string) bool) bool // contains filtered or unexported methods }
func Parse ¶ 1.16
func Parse(line string) (Expr, error)
Parse parses a single build constraint line of the form “//go:build ...” or “// +build ...” and returns the corresponding boolean expression.
type NotExpr ¶ 1.16
A NotExpr represents the expression !X (the negation of X).
type NotExpr struct { X Expr }
func (*NotExpr) Eval ¶ 1.16
func (x *NotExpr) Eval(ok func(tag string) bool) bool
func (*NotExpr) String ¶ 1.16
func (x *NotExpr) String() string
type OrExpr ¶ 1.16
An OrExpr represents the expression X || Y.
type OrExpr struct { X, Y Expr }
func (*OrExpr) Eval ¶ 1.16
func (x *OrExpr) Eval(ok func(tag string) bool) bool
func (*OrExpr) String ¶ 1.16
func (x *OrExpr) String() string
type SyntaxError ¶ 1.16
A SyntaxError reports a syntax error in a parsed build expression.
type SyntaxError struct { Offset int // byte offset in input where error was detected Err string // description of error }
func (*SyntaxError) Error ¶ 1.16
func (e *SyntaxError) Error() string
type TagExpr ¶ 1.16
A TagExpr is an Expr for the single tag Tag.
type TagExpr struct { Tag string // for example, “linux” or “cgo” }
func (*TagExpr) Eval ¶ 1.16
func (x *TagExpr) Eval(ok func(tag string) bool) bool
func (*TagExpr) String ¶ 1.16
func (x *TagExpr) String() string