node

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2023 License: BSD-2-Clause Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IdentifierNode

type IdentifierNode interface {
	Node
	Value() string
	IsQuoted() bool
	UnquotedValue() string
}

type KeywordCode

type KeywordCode int
const (
	KeywordUnspecified KeywordCode = iota
	KeywordAll
	KeywordAnd
	KeywordAny
	KeywordArray
	KeywordAs
	KeywordAsc
	KeywordAssertRowsModified
	KeywordAt
	KeywordBetween
	KeywordBy
	KeywordCase
	KeywordCast
	KeywordCollate
	KeywordContains
	KeywordCreate
	KeywordCross
	KeywordCube
	KeywordCurrent
	KeywordDefault
	KeywordDefine
	KeywordDesc
	KeywordDistinct
	KeywordElse
	KeywordEnd
	KeywordEnum
	KeywordEscape
	KeywordExcept
	KeywordExclude
	KeywordExists
	KeywordExtract
	KeywordFalse
	KeywordFetch
	KeywordFollowing
	KeywordFor
	KeywordFrom
	KeywordFull
	KeywordGroup
	KeywordGrouping
	KeywordGroups
	KeywordHash
	KeywordHaving
	KeywordIf
	KeywordIgnore
	KeywordIn
	KeywordInner
	KeywordIntersect
	KeywordInterval
	KeywordInto
	KeywordIs
	KeywordJoin
	KeywordLateral
	KeywordLeft
	KeywordLike
	KeywordLimit
	KeywordLookup
	KeywordMerge
	KeywordNatural
	KeywordNew
	KeywordNo
	KeywordNot
	KeywordNull
	KeywordNulls
	KeywordOf
	KeywordOn
	KeywordOr
	KeywordOrder
	KeywordOuter
	KeywordOver
	KeywordPartition
	KeywordPreceding
	KeywordProto
	KeywordRange
	KeywordRecursive
	KeywordRespect
	KeywordRight
	KeywordRollup
	KeywordRows
	KeywordSelect
	KeywordSet
	KeywordSome
	KeywordStruct
	KeywordTablesample
	KeywordThen
	KeywordTo
	KeywordTreat
	KeywordTrue
	KeywordUnbound
	KeywordUnion
	KeywordUnnest
	KeywordUsing
	KeywordWhen
	KeywordWhere
	KeywordWindow
	KeywordWith
	KeywordWithin
)

func KeywordCodeOf

func KeywordCodeOf(keyword string) KeywordCode

func (KeywordCode) Keyword

func (k KeywordCode) Keyword() string

func (KeywordCode) String

func (i KeywordCode) String() string

type KeywordNode

type KeywordNode interface {
	Node
	KeywordCode() KeywordCode
}

type Kind

type Kind int
const (
	KindUnspecified Kind = iota

	KindIdentifier
	KindKeyword
	KindPath
	KindStructTypeField
	KindType
	KindTypeSize
)

func (Kind) String

func (i Kind) String() string

type NewNodeFunc

type NewNodeFunc[T Node] func(begin int, end int) T

func ArrayType

func ArrayType(element TypeNode) NewNodeFunc[TypeNode]

func BoolType

func BoolType() NewNodeFunc[TypeNode]

func BytesType

func BytesType() NewNodeFunc[TypeNode]

func BytesTypeSized

func BytesTypeSized(size TypeSizeNode) NewNodeFunc[TypeNode]

func DateType

func DateType() NewNodeFunc[TypeNode]

func Float64Type

func Float64Type() NewNodeFunc[TypeNode]

func Identifier

func Identifier(value string) NewNodeFunc[IdentifierNode]

func Int64Type

func Int64Type() NewNodeFunc[TypeNode]

func JSONType

func JSONType() NewNodeFunc[TypeNode]

func Keyword

func Keyword(code KeywordCode) NewNodeFunc[KeywordNode]

func NumericType

func NumericType() NewNodeFunc[TypeNode]

func Path

func Path(identifiers []IdentifierNode) NewNodeFunc[PathNode]

func StringType

func StringType() NewNodeFunc[TypeNode]

func StringTypeSized

func StringTypeSized(size TypeSizeNode) NewNodeFunc[TypeNode]

func StructType

func StructType(fields []StructTypeFieldNode) NewNodeFunc[TypeNode]

func StructTypeField

func StructTypeField(fieldName IdentifierNode, fieldType TypeNode) NewNodeFunc[StructTypeFieldNode]

func StructTypeFieldUnnamed

func StructTypeFieldUnnamed(fieldType TypeNode) NewNodeFunc[StructTypeFieldNode]

func TimestampType

func TimestampType() NewNodeFunc[TypeNode]

func TypeSize

func TypeSize(size int) NewNodeFunc[TypeSizeNode]

func TypeSizeMax

func TypeSizeMax() NewNodeFunc[TypeSizeNode]

type Node

type Node interface {
	Kind() Kind
	Begin() int
	End() int
	Len() int
	Children() []Node
}

type PathNode

type PathNode interface {
	Node
	Identifiers() []IdentifierNode
}

type StructTypeFieldNode

type StructTypeFieldNode interface {
	Node
	Named() bool
	Name() IdentifierNode
	Type() TypeNode
}

type TypeCode

type TypeCode int
const (
	TypeUnspecified TypeCode = iota
	TypeArray
	TypeBool
	TypeBytes
	TypeDate
	TypeJSON
	TypeInt64
	TypeNumeric
	TypeFloat64
	TypeString
	TypeStruct
	TypeTimestamp
)

func (TypeCode) String

func (i TypeCode) String() string

type TypeNode

type TypeNode interface {
	Node
	TypeCode() TypeCode
	IsScalar() bool
	ScalarName() string
	ScalarSized() bool
	ScalarSize() TypeSizeNode
	IsArray() bool
	ArrayElement() TypeNode
	IsStruct() bool
	StructFields() []StructTypeFieldNode
}

type TypeSizeNode

type TypeSizeNode interface {
	Node
	Max() bool
	Size() int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL