Documentation ¶
Overview ¶
Package parser reads Jsonnet files and parses them into AST nodes.
Index ¶
- func Children(node ast.Node) []ast.Node
- func Parse(t Tokens) (ast.Node, error)
- type LiteralField
- type LiteralFieldSet
- func (set LiteralFieldSet) Add(i LiteralField) bool
- func (set LiteralFieldSet) Cardinality() int
- func (set *LiteralFieldSet) Clear()
- func (set LiteralFieldSet) Clone() LiteralFieldSet
- func (set LiteralFieldSet) Contains(i LiteralField) bool
- func (set LiteralFieldSet) ContainsAll(i ...LiteralField) bool
- func (set LiteralFieldSet) Difference(other LiteralFieldSet) LiteralFieldSet
- func (set LiteralFieldSet) Equal(other LiteralFieldSet) bool
- func (set LiteralFieldSet) Intersect(other LiteralFieldSet) LiteralFieldSet
- func (set LiteralFieldSet) IsSubset(other LiteralFieldSet) bool
- func (set LiteralFieldSet) IsSuperset(other LiteralFieldSet) bool
- func (set LiteralFieldSet) Iter() <-chan LiteralField
- func (set LiteralFieldSet) Remove(i LiteralField)
- func (set LiteralFieldSet) SymmetricDifference(other LiteralFieldSet) LiteralFieldSet
- func (set LiteralFieldSet) ToSlice() []LiteralField
- func (set LiteralFieldSet) Union(other LiteralFieldSet) LiteralFieldSet
- type StaticError
- type Tokens
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type LiteralField ¶
type LiteralField string
A LiteralField is a field of an object or object comprehension. +gen set
type LiteralFieldSet ¶
type LiteralFieldSet map[LiteralField]struct{}
LiteralFieldSet is the primary type that represents a set
func NewLiteralFieldSet ¶
func NewLiteralFieldSet(a ...LiteralField) LiteralFieldSet
NewLiteralFieldSet creates and returns a reference to an empty set.
func (LiteralFieldSet) Add ¶
func (set LiteralFieldSet) Add(i LiteralField) bool
Add adds an item to the current set if it doesn't already exist in the set.
func (LiteralFieldSet) Cardinality ¶
func (set LiteralFieldSet) Cardinality() int
Cardinality returns how many items are currently in the set.
func (*LiteralFieldSet) Clear ¶
func (set *LiteralFieldSet) Clear()
Clear clears the entire set to be the empty set.
func (LiteralFieldSet) Clone ¶
func (set LiteralFieldSet) Clone() LiteralFieldSet
Clone returns a clone of the set. Does NOT clone the underlying elements.
func (LiteralFieldSet) Contains ¶
func (set LiteralFieldSet) Contains(i LiteralField) bool
Contains determines if a given item is already in the set.
func (LiteralFieldSet) ContainsAll ¶
func (set LiteralFieldSet) ContainsAll(i ...LiteralField) bool
ContainsAll determines if the given items are all in the set
func (LiteralFieldSet) Difference ¶
func (set LiteralFieldSet) Difference(other LiteralFieldSet) LiteralFieldSet
Difference returns a new set with items in the current set but not in the other set
func (LiteralFieldSet) Equal ¶
func (set LiteralFieldSet) Equal(other LiteralFieldSet) bool
Equal determines if two sets are equal to each other. If they both are the same size and have the same items they are considered equal. Order of items is not relevent for sets to be equal.
func (LiteralFieldSet) Intersect ¶
func (set LiteralFieldSet) Intersect(other LiteralFieldSet) LiteralFieldSet
Intersect returns a new set with items that exist only in both sets.
func (LiteralFieldSet) IsSubset ¶
func (set LiteralFieldSet) IsSubset(other LiteralFieldSet) bool
IsSubset determines if every item in the other set is in this set.
func (LiteralFieldSet) IsSuperset ¶
func (set LiteralFieldSet) IsSuperset(other LiteralFieldSet) bool
IsSuperset determines if every item of this set is in the other set.
func (LiteralFieldSet) Iter ¶
func (set LiteralFieldSet) Iter() <-chan LiteralField
Iter returns a channel of type LiteralField that you can range over.
func (LiteralFieldSet) Remove ¶
func (set LiteralFieldSet) Remove(i LiteralField)
Remove allows the removal of a single item in the set.
func (LiteralFieldSet) SymmetricDifference ¶
func (set LiteralFieldSet) SymmetricDifference(other LiteralFieldSet) LiteralFieldSet
SymmetricDifference returns a new set with items in the current set or the other set but not in both.
func (LiteralFieldSet) ToSlice ¶
func (set LiteralFieldSet) ToSlice() []LiteralField
ToSlice returns the elements of the current set as a slice
func (LiteralFieldSet) Union ¶
func (set LiteralFieldSet) Union(other LiteralFieldSet) LiteralFieldSet
Union returns a new set with all items in both sets.
type StaticError ¶
type StaticError struct { Loc ast.LocationRange Msg string }
StaticError represents an error during parsing/lexing or static analysis. TODO(sbarzowski) Make it possible to have multiple static errors and warnings
func MakeStaticError ¶
func MakeStaticError(msg string, lr ast.LocationRange) StaticError
MakeStaticError returns a StaticError with a message and a LocationRange.
func MakeStaticErrorMsg ¶
func MakeStaticErrorMsg(msg string) StaticError
MakeStaticErrorMsg returns a StaticError with a message.
func (StaticError) Error ¶
func (err StaticError) Error() string
Error returns the string representation of a StaticError.