Documentation ¶
Index ¶
- func AutoQuote(s string) string
- func ClassExt(fname string) string
- func Format(f *FileSyntax) []byte
- func IsDirectoryPath(ns string) bool
- func MustQuote(s string) bool
- func SplitFname(fname string) (className, classExt string)
- type Class
- type Comment
- type CommentBlock
- type Comments
- type Compiler
- type Error
- type ErrorList
- type Expr
- type File
- type FileSyntax
- type Gop
- type Import
- type InvalidExtError
- type InvalidSymbolError
- type LParen
- type Line
- type LineBlock
- type Position
- type Project
- type RParen
- type VersionFixer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoQuote ¶
AutoQuote returns s or, if quoting is required for s to appear in a gop.mod, the quotation of s.
func Format ¶
func Format(f *FileSyntax) []byte
Format returns a gop.mod file as a byte slice, formatted in standard style.
func IsDirectoryPath ¶
IsDirectoryPath reports whether the given path should be interpreted as a directory path. Just like on the go command line, relative paths and rooted paths are directory paths; the rest are module paths.
func MustQuote ¶
MustQuote reports whether s must be quoted in order to appear as a single token in a gop.mod line.
func SplitFname ¶ added in v0.12.1
SplitFname splits fname into (className, classExt).
Types ¶
type Class ¶ added in v0.10.0
type Class struct { Ext string // can be "_[class].gox" or ".[class]", eg. "_yap.gox" or ".spx" Class string // "Sprite" Project string // maybe empty Syntax *Line }
A Class is the work class statement.
type CommentBlock ¶
type CommentBlock = modfile.CommentBlock
A CommentBlock represents a top-level block of comments separate from any rule.
type File ¶
type File struct { Gop *Gop Compiler *Compiler // the underlying go compiler in go.mod (not gop.mod) Projects []*Project ClassMods []string // calc by require statements in go.mod (not gop.mod) Syntax *FileSyntax }
A File is the parsed, interpreted form of a gop.mod file.
func Parse ¶
func Parse(file string, data []byte, fix VersionFixer) (*File, error)
Parse parses and returns a gop.mod file.
file is the name of the file, used in positions and errors.
data is the content of the file.
fix is an optional function that canonicalizes module versions. If fix is nil, all module versions must be canonical (module.CanonicalVersion must return the same string).
func ParseLax ¶
func ParseLax(file string, data []byte, fix VersionFixer) (*File, error)
ParseLax is like Parse but ignores unknown statements. It is used when parsing gop.mod files other than the main module, under the theory that most statement types we add in the future will only apply in the main module, like exclude and replace, and so we get better gradual deployments if old go commands simply ignore those statements when found in gop.mod files in dependencies.
type FileSyntax ¶
type FileSyntax = modfile.FileSyntax
A FileSyntax represents an entire gop.mod file.
type InvalidExtError ¶
func (*InvalidExtError) Error ¶
func (e *InvalidExtError) Error() string
func (*InvalidExtError) Unwrap ¶
func (e *InvalidExtError) Unwrap() error
type InvalidSymbolError ¶ added in v0.10.0
func (*InvalidSymbolError) Error ¶ added in v0.10.0
func (e *InvalidSymbolError) Error() string
func (*InvalidSymbolError) Unwrap ¶ added in v0.10.0
func (e *InvalidSymbolError) Unwrap() error
type LParen ¶
An LParen represents the beginning of a parenthesized line block. It is a place to store suffix comments.
type Position ¶
A Position describes an arbitrary source position in a file, including the file, line, column, and byte offset.
type Project ¶ added in v0.10.0
type Project struct { Ext string // can be "_[class].gox" or ".[class]", eg. "_yap.gox" or ".gmx" Class string // "Game" Works []*Class // work class of classfile PkgPaths []string // package paths of classfile and optional inline-imported packages. Import []*Import // auto-imported packages Syntax *Line }
A Project is the project statement.
type RParen ¶
An RParen represents the end of a parenthesized line block. It is a place to store whole-line (before) comments.
type VersionFixer ¶
type VersionFixer = modfile.VersionFixer