package parser
import "github.com/moby/buildkit/frontend/dockerfile/parser"
Package parser implements a parser and parse tree dumper for Dockerfiles.
Index ¶
Constants ¶
const DefaultEscapeToken = '\\'
DefaultEscapeToken is the default escape token
Types ¶
type Directive ¶
type Directive struct {
// contains filtered or unexported fields
}
Directive is the structure used during a build run to hold the state of parsing directives.
func NewDefaultDirective ¶
func NewDefaultDirective() *Directive
NewDefaultDirective returns a new Directive with the default escapeToken token
type Node ¶
type Node struct { Value string // actual content Next *Node // the next item in the current sexp Children []*Node // the children of this sexp Attributes map[string]bool // special attributes for this node Original string // original line used before parsing Flags []string // only top Node should have this set StartLine int // the line in the original dockerfile where the node begins // contains filtered or unexported fields }
Node is a structure used to represent a parse tree.
In the node there are three fields, Value, Next, and Children. Value is the current token's string value. Next is always the next non-child token, and children contains all the children. Here's an example:
(value next (child child-next child-next-next) next-next)
This data structure is frankly pretty lousy for handling complex languages, but lucky for us the Dockerfile isn't very complicated. This structure works a little more effectively than a "proper" parse tree for our needs.
func (*Node) AddChild ¶
AddChild adds a new child node, and updates line information
func (*Node) Dump ¶
Dump dumps the AST defined by `node` as a list of sexps. Returns a string suitable for printing.
type Result ¶
Result is the result of parsing a Dockerfile
func Parse ¶
Parse reads lines from a Reader, parses the lines into an AST and returns the AST and escape token
func (*Result) PrintWarnings ¶
PrintWarnings to the writer
Source Files ¶
line_parsers.go parser.go split_command.go
Directories ¶
Path | Synopsis |
---|---|
frontend/dockerfile/parser/dumper |
- Version
- v0.5.1
- Published
- May 9, 2019
- Platform
- js/wasm
- Imports
- 13 packages
- Last checked
- 12 hours ago –
Tools for package owners.