ast

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const COMMA = 57350
View Source
const EQUAL = 57360
View Source
const FLAT = 57353
View Source
const LBRA = 57348
View Source
const LCBRA = 57358
View Source
const METADATA = 57361
View Source
const NUMBER = 57354
View Source
const RBRA = 57349
View Source
const RCBRA = 57359
View Source
const REST = 57356
View Source
const SEMICOLON = 57351
View Source
const SHARP = 57352
View Source
const SLASH = 57347
View Source
const SYLLABLE = 57346
View Source
const SYMBOL = 57355
View Source
const UNDERSCORE = 57357

Variables

This section is empty.

Functions

func NewPos

func NewPos(p ybase.Pos) ybase.Pos

func NewToken

func NewToken(t ybase.Token) ybase.Token

func Parse

func Parse(lexer *Lexer) int

func SetDebug

func SetDebug(level int)

func VisitSwitch

func VisitSwitch(visitor Visitor, v interface{})

Types

type Chord

type Chord struct {
	Degree *ChordDegree `json:"degree" yaml:"degree"`
	Symbol *ChordSymbol `json:"symbol,omitempty" yaml:"symbol,omitempty"`
	Base   *ChordBase   `json:"base,omitempty" yaml:"base,omitempty"`
	Values *ChordValues `json:"values" yaml:"values"`
	Meta   *ChordMeta   `json:"meta,omitempty" yaml:"meta,omitempty"`
}

func (*Chord) Accept

func (s *Chord) Accept(v Visitor)

func (*Chord) IsChordOrRest

func (*Chord) IsChordOrRest()

func (*Chord) IsNode

func (*Chord) IsNode()

type ChordBase

type ChordBase struct {
	Degree *ChordDegree `json:"degree" yaml:"degree"`
}

func (*ChordBase) Accept

func (s *ChordBase) Accept(v Visitor)

func (*ChordBase) IsNode

func (*ChordBase) IsNode()

type ChordDegree

type ChordDegree struct {
	Degree     ybase.Token `json:"degree" yaml:"degree"`
	Accidental ybase.Token `json:"accidental,omitempty" yaml:"accidental,omitempty"`
}

func (*ChordDegree) Accept

func (s *ChordDegree) Accept(v Visitor)

func (*ChordDegree) IsNode

func (*ChordDegree) IsNode()

type ChordList

type ChordList struct {
	List []ChordOrRest `json:"list" yaml:"list"`
}

func (*ChordList) Accept

func (s *ChordList) Accept(v Visitor)

func (*ChordList) IsNode

func (*ChordList) IsNode()

type ChordMeta

type ChordMeta struct {
	Data []*ChordMetadata `json:"data,omitempty" yaml:"data,omitempty"`
}

func (*ChordMeta) Accept

func (s *ChordMeta) Accept(v Visitor)

func (*ChordMeta) IsNode

func (*ChordMeta) IsNode()

type ChordMetadata

type ChordMetadata struct {
	Key   ybase.Token `json:"key" yaml:"key"`
	Value ybase.Token `json:"value" yaml:"value"`
}

func (*ChordMetadata) Accept

func (s *ChordMetadata) Accept(v Visitor)

func (*ChordMetadata) IsNode

func (*ChordMetadata) IsNode()

type ChordOrRest

type ChordOrRest interface {
	IsChordOrRest()
}

type ChordSymbol

type ChordSymbol struct {
	Symbol ybase.Token `json:"symbol" yaml:"symbol"`
}

func (*ChordSymbol) Accept

func (s *ChordSymbol) Accept(v Visitor)

func (*ChordSymbol) IsNode

func (*ChordSymbol) IsNode()

type ChordValue

type ChordValue struct {
	Num   ybase.Token `json:"num" yaml:"num"`
	Denom ybase.Token `json:"denom,omitempty" yaml:"denom,omitempty"`
}

func (*ChordValue) Accept

func (s *ChordValue) Accept(v Visitor)

func (*ChordValue) IsNode

func (*ChordValue) IsNode()

type ChordValues

type ChordValues struct {
	Values []*ChordValue `json:"values" yaml:"values"`
}

func (*ChordValues) Accept

func (s *ChordValues) Accept(v Visitor)

func (*ChordValues) IsNode

func (*ChordValues) IsNode()

type IterVisitor

type IterVisitor struct {
	// contains filtered or unexported fields
}

func NewIterVisitor

func NewIterVisitor() *IterVisitor

func (*IterVisitor) All

func (s *IterVisitor) All(root Node) iter.Seq[Node]

func (*IterVisitor) VisitChord

func (s *IterVisitor) VisitChord(v *Chord)

func (*IterVisitor) VisitChordBase

func (s *IterVisitor) VisitChordBase(v *ChordBase)

func (*IterVisitor) VisitChordDegree

func (s *IterVisitor) VisitChordDegree(v *ChordDegree)

func (*IterVisitor) VisitChordList

func (s *IterVisitor) VisitChordList(v *ChordList)

func (*IterVisitor) VisitChordMeta

func (s *IterVisitor) VisitChordMeta(v *ChordMeta)

func (*IterVisitor) VisitChordMetadata

func (s *IterVisitor) VisitChordMetadata(v *ChordMetadata)

func (*IterVisitor) VisitChordSymbol

func (s *IterVisitor) VisitChordSymbol(v *ChordSymbol)

func (*IterVisitor) VisitChordValue

func (s *IterVisitor) VisitChordValue(v *ChordValue)

func (*IterVisitor) VisitChordValues

func (s *IterVisitor) VisitChordValues(v *ChordValues)

func (*IterVisitor) VisitRest

func (s *IterVisitor) VisitRest(v *Rest)

type LexScanner

type LexScanner struct {
	// contains filtered or unexported fields
}

func (*LexScanner) ScanFunc

func (lex *LexScanner) ScanFunc(r ybase.Reader) int

func (*LexScanner) SetExpectMetadata

func (lex *LexScanner) SetExpectMetadata(v bool)

func (*LexScanner) SetExpectSymbol

func (lex *LexScanner) SetExpectSymbol(v bool)

type Lexer

type Lexer struct {
	ybase.Lexer
	*LexScanner
	Result *ChordList
}

func NewLexer

func NewLexer(r io.Reader) *Lexer

func (*Lexer) Lex

func (lex *Lexer) Lex(lval *yySymType) int

type MapVisitor

type MapVisitor struct {
	// contains filtered or unexported fields
}

MapVisitor maps Token value and AST into dictionary.

func NewMapVisitor

func NewMapVisitor(extractor func(ybase.Token) (any, bool)) *MapVisitor

func (MapVisitor) Result

func (s MapVisitor) Result() map[string]any

func (*MapVisitor) VisitChord

func (s *MapVisitor) VisitChord(v *Chord)

func (*MapVisitor) VisitChordBase

func (s *MapVisitor) VisitChordBase(v *ChordBase)

func (*MapVisitor) VisitChordDegree

func (s *MapVisitor) VisitChordDegree(v *ChordDegree)

func (*MapVisitor) VisitChordList

func (s *MapVisitor) VisitChordList(v *ChordList)

func (*MapVisitor) VisitChordMeta

func (s *MapVisitor) VisitChordMeta(v *ChordMeta)

func (*MapVisitor) VisitChordMetadata

func (s *MapVisitor) VisitChordMetadata(v *ChordMetadata)

func (*MapVisitor) VisitChordSymbol

func (s *MapVisitor) VisitChordSymbol(v *ChordSymbol)

func (*MapVisitor) VisitChordValue

func (s *MapVisitor) VisitChordValue(v *ChordValue)

func (*MapVisitor) VisitChordValues

func (s *MapVisitor) VisitChordValues(v *ChordValues)

func (*MapVisitor) VisitRest

func (s *MapVisitor) VisitRest(v *Rest)

type Node

type Node interface {
	IsNode()
}

type Pos

type Pos struct {
	VLine   int `json:"line" yaml:"line"`
	VColumn int `json:"col" yaml:"col"`
	VOffset int `json:"offset" yaml:"offset"`
}

func (Pos) Add

func (p Pos) Add(_ rune) ybase.Pos

func (Pos) Column

func (p Pos) Column() int

func (Pos) Line

func (p Pos) Line() int

func (Pos) Offset

func (p Pos) Offset() int

type Rest

type Rest struct {
	Values *ChordValues `json:"values" yaml:"values"`
	Meta   *ChordMeta   `json:"meta,omitempty" yaml:"meta,omitempty"`
}

func (*Rest) Accept

func (s *Rest) Accept(v Visitor)

func (*Rest) IsChordOrRest

func (*Rest) IsChordOrRest()

func (*Rest) IsNode

func (*Rest) IsNode()

type Token

type Token struct {
	VType  int       `json:"type" yaml:"type"`
	VValue string    `json:"value" yaml:"value"`
	VStart ybase.Pos `json:"start" yaml:"start"`
	VEnd   ybase.Pos `json:"end" yaml:"end"`
}

func (Token) End

func (t Token) End() ybase.Pos

func (Token) Start

func (t Token) Start() ybase.Pos

func (Token) String

func (t Token) String() string

func (Token) Type

func (t Token) Type() int

func (Token) Value

func (t Token) Value() string

type Visitor

type Visitor interface {
	VisitChordList(*ChordList)
	VisitChord(*Chord)
	VisitChordDegree(*ChordDegree)
	VisitChordSymbol(*ChordSymbol)
	VisitChordBase(*ChordBase)
	VisitChordValues(*ChordValues)
	VisitChordValue(*ChordValue)
	VisitRest(*Rest)
	VisitChordMeta(*ChordMeta)
	VisitChordMetadata(*ChordMetadata)
}

type VisitorDefault

type VisitorDefault struct{}

func (*VisitorDefault) VisitChord

func (s *VisitorDefault) VisitChord(_ *Chord)

func (*VisitorDefault) VisitChordBase

func (s *VisitorDefault) VisitChordBase(_ *ChordBase)

func (*VisitorDefault) VisitChordDegree

func (s *VisitorDefault) VisitChordDegree(_ *ChordDegree)

func (*VisitorDefault) VisitChordList

func (s *VisitorDefault) VisitChordList(_ *ChordList)

func (*VisitorDefault) VisitChordMeta

func (s *VisitorDefault) VisitChordMeta(_ *ChordMeta)

func (*VisitorDefault) VisitChordMetadata

func (s *VisitorDefault) VisitChordMetadata(_ *ChordMetadata)

func (*VisitorDefault) VisitChordSymbol

func (s *VisitorDefault) VisitChordSymbol(_ *ChordSymbol)

func (*VisitorDefault) VisitChordValue

func (s *VisitorDefault) VisitChordValue(_ *ChordValue)

func (*VisitorDefault) VisitChordValues

func (s *VisitorDefault) VisitChordValues(_ *ChordValues)

func (*VisitorDefault) VisitRest

func (s *VisitorDefault) VisitRest(_ *Rest)

Jump to

Keyboard shortcuts

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