ast

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2023 License: BSD-2-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Walk

func Walk(v Visitor, node ASTNode)

Types

type ASTNode

type ASTNode interface {
	Value() string
}

type BaseNode

type BaseNode struct {
	Token parse.Token
}

func (*BaseNode) Value

func (b *BaseNode) Value() string

type BinaryOpNode

type BinaryOpNode struct {
	BaseNode
	Left  ASTNode
	Op    parse.Token
	Right ASTNode
}

func (BinaryOpNode) DerivedValue

func (b BinaryOpNode) DerivedValue() int64

type BuiltinFunctionNode

type BuiltinFunctionNode struct {
	BaseNode
	Name       parse.Token
	LParen     parse.Location
	Expression ASTNode
	RParen     parse.Location
}

type DataFunctionNode

type DataFunctionNode struct {
	BaseNode
	Name       parse.Token
	Arguments  []IdentifierNode
	Next       *DataFunctionNode
	Expression ASTNode
}

type DataPipelineNode

type DataPipelineNode struct {
	BaseNode
	Stages []ASTNode
}

type Dumper

type Dumper struct {
	Output string
	// contains filtered or unexported fields
}

func (*Dumper) Visit

func (d *Dumper) Visit(node ASTNode) Visitor

type FilterGenerator

type FilterGenerator interface {
	GenerateFilter(*database.Database) database.Filter
}

type IdentifierNode

type IdentifierNode struct {
	BaseNode
}

type NumberNode

type NumberNode struct {
	BaseNode
	Val types.Value
}

func MakeNumberNode

func MakeNumberNode(tok parse.Token) *NumberNode

func (NumberNode) DerivedValue

func (n NumberNode) DerivedValue() int64

type Numeric

type Numeric interface {
	DerivedValue() int64
}

type QuantifierNode

type QuantifierNode struct {
	BaseNode
	Type         parse.Token
	TimeQuantity ASTNode
}

type QueryNode

type QueryNode struct {
	BaseNode
	Input         string
	Quantifier    ASTNode
	Identifier    ASTNode
	Topic         ASTNode
	TimePredicate ASTNode
	DataPipeline  ASTNode
}

func (QueryNode) Value

func (q QueryNode) Value() string

type StringNode

type StringNode struct {
	BaseNode
	Val types.Value
}

func MakeStringNode

func MakeStringNode(tok parse.Token) *StringNode

type TimeExpressionNode

type TimeExpressionNode struct {
	BaseNode
	Whence   ASTNode
	Op       parse.Token
	Quantity ASTNode
}

func (TimeExpressionNode) Time

func (t TimeExpressionNode) Time() time.Time

type TimePredicateNode

type TimePredicateNode struct {
	BaseNode
	Specifier parse.Token
	Begin     ASTNode
	Comma     parse.Location
	End       ASTNode
}

type TimeWhenceNode

type TimeWhenceNode struct {
	BaseNode
	When time.Time
}

func (TimeWhenceNode) Time

func (t TimeWhenceNode) Time() time.Time

type TimespanNode

type TimespanNode struct {
	BaseNode
}

func (TimespanNode) DerivedValue

func (t TimespanNode) DerivedValue() int64

type TopicSelectorNode

type TopicSelectorNode struct {
	BaseNode
	In    parse.Location
	Topic parse.Token
}

func (TopicSelectorNode) Value

func (t TopicSelectorNode) Value() string

type TupleElementNode

type TupleElementNode struct {
	BaseNode
	Identifier IdentifierNode
	Subscript  NumberNode
}

type TupleNode

type TupleNode struct {
	BaseNode
	Elements []ASTNode
}

type UnaryOpNode

type UnaryOpNode struct {
	BaseNode
	Operator parse.Token
	Operand  ASTNode
}

type Visitor

type Visitor interface {
	Visit(ASTNode) Visitor
}

Jump to

Keyboard shortcuts

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