ast

package
v0.0.19 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextModule

type ContextModule struct {
	Name ModuleName

	Files []*SourceFile
}

func MakeContextModule

func MakeContextModule(name ModuleName) *ContextModule

func (*ContextModule) AddSourceFile

func (m *ContextModule) AddSourceFile(sourceFile *SourceFile)

type Decl

type Decl interface {
	DeclName() Identifier
	IsExportedDecl() bool
	Meta() *MetaDecl

	EnumerateNestedDecls(enumerate func(interface{}, []Decl))
}

type DeclConstant

type DeclConstant struct {
	Name  Identifier
	Value Expr

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclConstant

func MakeDeclConstant(name Identifier, value Expr, source *Source) *DeclConstant

func (DeclConstant) DeclName

func (e DeclConstant) DeclName() Identifier

func (DeclConstant) DeclOverview added in v0.0.16

func (e DeclConstant) DeclOverview() string

func (DeclConstant) EnumerateNestedDecls added in v0.0.16

func (e DeclConstant) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclConstant) IsExportedDecl

func (e DeclConstant) IsExportedDecl() bool

func (DeclConstant) Meta

func (e DeclConstant) Meta() *MetaDecl

func (DeclConstant) ProvidedDocs

func (e DeclConstant) ProvidedDocs() *Docs

type DeclData

type DeclData struct {
	Name   Identifier
	Fields []DeclField

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclData

func MakeDeclData(name Identifier, source *Source) *DeclData

func (*DeclData) AddField

func (e *DeclData) AddField(field DeclField)

func (DeclData) DeclName

func (e DeclData) DeclName() Identifier

func (DeclData) DeclOverview added in v0.0.16

func (e DeclData) DeclOverview() string

func (DeclData) EnumerateNestedDecls added in v0.0.16

func (DeclData) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclData) IsExportedDecl

func (e DeclData) IsExportedDecl() bool

func (DeclData) Meta

func (e DeclData) Meta() *MetaDecl

func (DeclData) ProvidedDocs

func (decl DeclData) ProvidedDocs() *Docs

type DeclEnum

type DeclEnum struct {
	Name  Identifier
	Cases []*DeclEnumCase

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclEnum

func MakeDeclEnum(name Identifier, source *Source) *DeclEnum

func (*DeclEnum) AddCase

func (e *DeclEnum) AddCase(case_ *DeclEnumCase)

func (DeclEnum) DeclName

func (e DeclEnum) DeclName() Identifier

func (DeclEnum) DeclOverview added in v0.0.16

func (e DeclEnum) DeclOverview() string

func (DeclEnum) EnumerateNestedDecls added in v0.0.16

func (decl DeclEnum) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclEnum) IsExportedDecl

func (e DeclEnum) IsExportedDecl() bool

func (DeclEnum) Meta

func (e DeclEnum) Meta() *MetaDecl

func (DeclEnum) ProvidedDocs

func (decl DeclEnum) ProvidedDocs() *Docs

func (DeclEnum) String

func (e DeclEnum) String() string

type DeclEnumCase

type DeclEnumCase struct {
	Name Identifier

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclEnumCase

func MakeDeclEnumCase(name Identifier) *DeclEnumCase

func (DeclEnumCase) DeclName

func (e DeclEnumCase) DeclName() Identifier

func (DeclEnumCase) EnumerateNestedDecls added in v0.0.16

func (DeclEnumCase) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclEnumCase) IsExportedDecl

func (e DeclEnumCase) IsExportedDecl() bool

func (DeclEnumCase) Meta

func (e DeclEnumCase) Meta() *MetaDecl

func (DeclEnumCase) ProvidedDocs

func (decl DeclEnumCase) ProvidedDocs() *Docs

type DeclExternFunc

type DeclExternFunc struct {
	Name       Identifier
	Parameters []DeclParameter

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclExternFunc

func MakeDeclExternFunc(name Identifier, params []DeclParameter, source *Source) *DeclExternFunc

func (DeclExternFunc) DeclName

func (e DeclExternFunc) DeclName() Identifier

func (DeclExternFunc) DeclOverview added in v0.0.16

func (e DeclExternFunc) DeclOverview() string

func (DeclExternFunc) EnumerateNestedDecls added in v0.0.16

func (DeclExternFunc) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclExternFunc) IsExportedDecl

func (e DeclExternFunc) IsExportedDecl() bool

func (DeclExternFunc) Meta

func (e DeclExternFunc) Meta() *MetaDecl

func (DeclExternFunc) ProvidedDocs added in v0.0.15

func (decl DeclExternFunc) ProvidedDocs() *Docs

type DeclExternType

type DeclExternType struct {
	Name   Identifier
	Fields map[Identifier]DeclField

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclExternType

func MakeDeclExternType(name Identifier, source *Source) *DeclExternType

func (*DeclExternType) AddField

func (e *DeclExternType) AddField(decl DeclField)

func (DeclExternType) DeclName

func (e DeclExternType) DeclName() Identifier

func (DeclExternType) DeclOverview added in v0.0.16

func (e DeclExternType) DeclOverview() string

func (DeclExternType) EnumerateNestedDecls added in v0.0.16

func (DeclExternType) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclExternType) IsExportedDecl

func (e DeclExternType) IsExportedDecl() bool

func (DeclExternType) Meta

func (e DeclExternType) Meta() *MetaDecl

func (DeclExternType) ProvidedDocs

func (decl DeclExternType) ProvidedDocs() *Docs

type DeclField

type DeclField struct {
	Name       Identifier
	Parameters []DeclParameter

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclField

func MakeDeclField(name Identifier, params []DeclParameter, source *Source) *DeclField

func (DeclField) DeclName

func (e DeclField) DeclName() Identifier

func (DeclField) DeclOverview added in v0.0.16

func (e DeclField) DeclOverview() string

func (DeclField) EnumerateNestedDecls added in v0.0.16

func (DeclField) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclField) IsExportedDecl

func (e DeclField) IsExportedDecl() bool

func (DeclField) Meta

func (e DeclField) Meta() *MetaDecl

func (DeclField) ProvidedDocs

func (decl DeclField) ProvidedDocs() *Docs

type DeclFunc

type DeclFunc struct {
	Name Identifier
	Impl *ExprFunc

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclFunc

func MakeDeclFunc(name Identifier, impl *ExprFunc, source *Source) *DeclFunc

func (DeclFunc) DeclName

func (e DeclFunc) DeclName() Identifier

func (DeclFunc) DeclOverview added in v0.0.16

func (e DeclFunc) DeclOverview() string

func (DeclFunc) EnumerateNestedDecls added in v0.0.16

func (decl DeclFunc) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclFunc) IsExportedDecl

func (e DeclFunc) IsExportedDecl() bool

func (DeclFunc) Meta

func (e DeclFunc) Meta() *MetaDecl

func (DeclFunc) ProvidedDocs

func (decl DeclFunc) ProvidedDocs() *Docs

type DeclImport

type DeclImport struct {
	Alias      Identifier
	ModuleName ModuleName
	Members    []DeclImportMember

	MetaInfo *MetaDecl
}

func MakeDeclAliasImport added in v0.0.17

func MakeDeclAliasImport(alias Identifier, name ModuleName, source *Source) *DeclImport

func MakeDeclImport

func MakeDeclImport(name ModuleName, source *Source) *DeclImport

func (*DeclImport) AddMember

func (e *DeclImport) AddMember(member DeclImportMember)

func (DeclImport) DeclName

func (e DeclImport) DeclName() Identifier

func (DeclImport) DeclOverview added in v0.0.16

func (e DeclImport) DeclOverview() string

func (DeclImport) EnumerateNestedDecls added in v0.0.16

func (DeclImport) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclImport) IsExportedDecl

func (e DeclImport) IsExportedDecl() bool

func (DeclImport) Meta

func (e DeclImport) Meta() *MetaDecl

type DeclImportMember

type DeclImportMember struct {
	Name       Identifier
	ModuleName ModuleName

	MetaInfo *MetaDecl
}

func MakeDeclImportMember

func MakeDeclImportMember(moduleName ModuleName, name Identifier, source *Source) DeclImportMember

func (DeclImportMember) DeclName

func (e DeclImportMember) DeclName() Identifier

func (DeclImportMember) DeclOverview added in v0.0.16

func (e DeclImportMember) DeclOverview() string

func (DeclImportMember) EnumerateNestedDecls added in v0.0.16

func (DeclImportMember) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclImportMember) IsExportedDecl

func (e DeclImportMember) IsExportedDecl() bool

func (DeclImportMember) Meta

func (e DeclImportMember) Meta() *MetaDecl

type DeclModule

type DeclModule struct {
	Name Identifier

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclModule

func MakeDeclModule(internalName Identifier, source *Source) *DeclModule

func (DeclModule) DeclName

func (e DeclModule) DeclName() Identifier

func (DeclModule) DeclOverview added in v0.0.16

func (e DeclModule) DeclOverview() string

func (DeclModule) EnumerateNestedDecls added in v0.0.16

func (DeclModule) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclModule) IsExportedDecl

func (e DeclModule) IsExportedDecl() bool

func (DeclModule) Meta

func (e DeclModule) Meta() *MetaDecl

func (DeclModule) ProvidedDocs

func (decl DeclModule) ProvidedDocs() *Docs

type DeclParameter

type DeclParameter struct {
	Name Identifier

	Docs     *Docs
	MetaInfo *MetaDecl
}

func MakeDeclParameter

func MakeDeclParameter(name Identifier, source *Source) *DeclParameter

func (DeclParameter) DeclName

func (e DeclParameter) DeclName() Identifier

func (DeclParameter) EnumerateNestedDecls added in v0.0.16

func (DeclParameter) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (DeclParameter) IsExportedDecl

func (e DeclParameter) IsExportedDecl() bool

func (DeclParameter) Meta

func (e DeclParameter) Meta() *MetaDecl

func (DeclParameter) ProvidedDocs

func (decl DeclParameter) ProvidedDocs() *Docs

type Docs

type Docs struct {
	// not only text, but also parsing @type and @param, ...
	// or more general?
	Content string
}

func MakeDocs

func MakeDocs(comments []string) *Docs

type Documented

type Documented interface {
	ProvidedDocs() *Docs
}

type Expr

type Expr interface {
	Meta() *MetaExpr
	EnumerateNestedDecls(enumerate func(interface{}, []Decl))
}

type ExprArray

type ExprArray struct {
	Elements []Expr

	MetaInfo *MetaExpr
}

func MakeExprArray

func MakeExprArray(elements []Expr, source *Source) *ExprArray

func (ExprArray) EnumerateNestedDecls added in v0.0.16

func (e ExprArray) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprArray) Meta

func (e ExprArray) Meta() *MetaExpr

type ExprDict added in v0.0.17

type ExprDict struct {
	Entries []ExprDictEntry

	MetaInfo *MetaExpr
}

func MakeExprDict added in v0.0.17

func MakeExprDict(entries []ExprDictEntry, source *Source) *ExprDict

func (ExprDict) EnumerateNestedDecls added in v0.0.17

func (e ExprDict) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprDict) Meta added in v0.0.17

func (e ExprDict) Meta() *MetaExpr

type ExprDictEntry added in v0.0.17

type ExprDictEntry struct {
	Key      Expr
	Value    Expr
	MetaInfo *MetaExpr
}

func MakeExprDictEntry added in v0.0.17

func MakeExprDictEntry(key Expr, value Expr, source *Source) *ExprDictEntry

type ExprFloat

type ExprFloat struct {
	Literal float64

	MetaInfo *MetaExpr
}

func MakeExprFloat added in v0.0.17

func MakeExprFloat(literal float64, source *Source) *ExprFloat

func (ExprFloat) EnumerateNestedDecls added in v0.0.16

func (e ExprFloat) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprFloat) Meta

func (e ExprFloat) Meta() *MetaExpr

type ExprFunc

type ExprFunc struct {
	Name         string
	Parameters   []DeclParameter
	Declarations []Decl
	Expressions  []Expr

	MetaInfo *MetaExpr
}

func MakeExprFunc

func MakeExprFunc(name string, parameters []DeclParameter, source *Source) *ExprFunc

func (*ExprFunc) AddDecl

func (e *ExprFunc) AddDecl(decl Decl)

func (*ExprFunc) AddExpr

func (e *ExprFunc) AddExpr(expr Expr)

func (ExprFunc) EnumerateNestedDecls added in v0.0.16

func (e ExprFunc) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprFunc) Meta

func (e ExprFunc) Meta() *MetaExpr

type ExprGroup

type ExprGroup struct {
	Expr Expr

	MetaInfo *MetaExpr
}

func MakeExprGroup

func MakeExprGroup(expr Expr, source *Source) *ExprGroup

func (ExprGroup) EnumerateNestedDecls added in v0.0.16

func (e ExprGroup) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprGroup) Meta

func (e ExprGroup) Meta() *MetaExpr

type ExprIdentifier

type ExprIdentifier struct {
	Name Identifier

	MetaInfo *MetaExpr
}

func MakeExprIdentifier

func MakeExprIdentifier(name Identifier, source *Source) *ExprIdentifier

func (ExprIdentifier) EnumerateNestedDecls added in v0.0.16

func (e ExprIdentifier) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprIdentifier) Meta

func (e ExprIdentifier) Meta() *MetaExpr

type ExprInt

type ExprInt struct {
	Literal int64

	MetaInfo *MetaExpr
}

func MakeExprInt

func MakeExprInt(literal int64, source *Source) *ExprInt

func (ExprInt) EnumerateNestedDecls added in v0.0.16

func (e ExprInt) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprInt) Meta

func (e ExprInt) Meta() *MetaExpr

type ExprInvocation

type ExprInvocation struct {
	Function  Expr
	Arguments []*Expr

	MetaInfo *MetaExpr
}

func MakeExprInvocation

func MakeExprInvocation(function Expr, source *Source) *ExprInvocation

func (*ExprInvocation) AddArgument

func (e *ExprInvocation) AddArgument(argument Expr)

func (ExprInvocation) EnumerateNestedDecls added in v0.0.16

func (e ExprInvocation) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprInvocation) Meta

func (e ExprInvocation) Meta() *MetaExpr

type ExprMemberAccess

type ExprMemberAccess struct {
	Target     Expr
	AccessPath []Identifier

	MetaInfo *MetaExpr
}

func MakeExprMemberAccess

func MakeExprMemberAccess(target Expr, accessPath []Identifier, source *Source) *ExprMemberAccess

func (ExprMemberAccess) EnumerateNestedDecls added in v0.0.16

func (e ExprMemberAccess) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprMemberAccess) Meta

func (e ExprMemberAccess) Meta() *MetaExpr

type ExprOperatorBinary

type ExprOperatorBinary struct {
	Operator OperatorBinary
	Left     Expr
	Right    Expr

	MetaInfo *MetaExpr
}

func MakeExprOperatorBinary

func MakeExprOperatorBinary(operator OperatorBinary, left, right Expr, source *Source) *ExprOperatorBinary

func (ExprOperatorBinary) EnumerateNestedDecls added in v0.0.16

func (e ExprOperatorBinary) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprOperatorBinary) Meta

func (e ExprOperatorBinary) Meta() *MetaExpr

type ExprOperatorUnary

type ExprOperatorUnary struct {
	Operator OperatorUnary
	Expr     Expr

	MetaInfo *MetaExpr
}

func MakeExprOperatorUnary added in v0.0.17

func MakeExprOperatorUnary(operator OperatorUnary, expr Expr, source *Source) *ExprOperatorUnary

func (ExprOperatorUnary) EnumerateNestedDecls added in v0.0.16

func (e ExprOperatorUnary) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprOperatorUnary) Meta

func (e ExprOperatorUnary) Meta() *MetaExpr

type ExprString

type ExprString struct {
	Literal string

	MetaInfo *MetaExpr
}

func MakeExprString

func MakeExprString(literal string, source *Source) *ExprString

func (ExprString) EnumerateNestedDecls added in v0.0.16

func (e ExprString) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprString) Meta

func (e ExprString) Meta() *MetaExpr

type ExprTypeSwitch

type ExprTypeSwitch struct {
	Type      Expr
	CaseOrder []Identifier
	Cases     map[Identifier]Expr

	MetaInfo *MetaExpr
}

func MakeExprTypeSwitch

func MakeExprTypeSwitch(type_ Expr, source *Source) *ExprTypeSwitch

func (*ExprTypeSwitch) AddCase

func (e *ExprTypeSwitch) AddCase(key Identifier, value Expr)

func (ExprTypeSwitch) EnumerateNestedDecls added in v0.0.16

func (e ExprTypeSwitch) EnumerateNestedDecls(enumerate func(interface{}, []Decl))

func (ExprTypeSwitch) Meta

func (e ExprTypeSwitch) Meta() *MetaExpr

type Identifier

type Identifier string

type Meta added in v0.0.16

type Meta interface {
	SourceLocation() *Source
}

type MetaDecl

type MetaDecl struct {
	*Source
}

func (MetaDecl) SourceLocation added in v0.0.16

func (m MetaDecl) SourceLocation() *Source

type MetaExpr

type MetaExpr struct {
	Source *Source
}

func (MetaExpr) SourceLocation added in v0.0.16

func (m MetaExpr) SourceLocation() *Source

type ModuleName

type ModuleName string

type OperatorBinary

type OperatorBinary string

type OperatorUnary

type OperatorUnary string

type Overviewable added in v0.0.16

type Overviewable interface {
	DeclOverview() string
}

type Position

type Position struct {
	Line   int
	Column int
}

func MakePosition

func MakePosition(
	line int,
	column int,
) Position

type Source

type Source struct {
	ModuleName ModuleName
	FileName   string
	Start      Position
	End        Position
}

func MakeSource

func MakeSource(
	moduleName ModuleName,
	fileName string,
	start Position,
	end Position,
) *Source

type SourceFile

type SourceFile struct {
	Path         string
	Imports      []ModuleName
	Declarations []Decl
	Statements   []Expr

	*Source
}

func MakeSourceFile

func MakeSourceFile(
	Path string,
	Source *Source,
) *SourceFile

func (*SourceFile) AddDecl

func (sf *SourceFile) AddDecl(decl Decl)

func (*SourceFile) AddExpr

func (sf *SourceFile) AddExpr(expr Expr)

func (SourceFile) EnumerateNestedDecls added in v0.0.16

func (sf SourceFile) EnumerateNestedDecls(enumerate func(declaredAt any, decl []Decl))

Enumerate all declarations in this source file.

func (*SourceFile) ExportedDeclarations added in v0.0.16

func (sf *SourceFile) ExportedDeclarations() []Decl

Jump to

Keyboard shortcuts

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