reader

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 21, 2021 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var StandardTable = &Table{
	macroRunes: map[rune]Macro{
		'(':  listMacro,
		')':  ErrorMacro,
		'\'': quoteMacro,
		';':  lineCommentMacro,
		'"':  stringMacro,
		'`':  quasiquoteMacro,
		',':  unquoteMacro,
	},
	dispatchMacroRunes: map[rune]map[rune]DispatchMacro{
		'#': map[rune]DispatchMacro{
			'`':  rawStringMacro,
			'\\': runeMacro,
			';':  formCommentMacro,
			'|':  blockCommentMacro,
		},
	},
	terminating: map[rune]bool{'"': true, '\'': true, '(': true, ')': true, ',': true, ';': true, '`': true},
}

Functions

func ErrorMacro

func ErrorMacro(rd *Reader) interface{}

Types

type BadForm

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

func (*BadForm) End

func (b *BadForm) End() token.Pos

func (*BadForm) Pos

func (b *BadForm) Pos() token.Pos

type DispatchMacro

type DispatchMacro func(rd *Reader, dispatchRune rune, dispatchRuneOffset int) interface{}

type Macro

type Macro func(*Reader) interface{}

type PackageResolver

type PackageResolver struct {
	PackageToPath, PathToPackage map[string]string
}

func NewPackageResolver

func NewPackageResolver() *PackageResolver

func (*PackageResolver) EncloseSymbol

func (r *PackageResolver) EncloseSymbol(sym *lib.Symbol) (*lib.Symbol, bool)

func (PackageResolver) ResolveSymbol

func (r PackageResolver) ResolveSymbol(pkg, ident string) (*lib.Symbol, error)

type Reader

type Reader struct {
	*PackageResolver

	Errors scanner.ErrorList
	// contains filtered or unexported fields
}

func NewReader

func NewReader(fset *token.FileSet, filename string, src interface{}, table *Table) (*Reader, error)

func (*Reader) AddForm

func (rd *Reader) AddForm(form *list.Pair, from, to int)

func (*Reader) BadForm

func (rd *Reader) BadForm(fromOffset, toOffset int) *BadForm

func (*Reader) Bytes

func (rd *Reader) Bytes() []byte

func (*Reader) Error

func (rd *Reader) Error(offset int, msg string)

func (*Reader) File

func (rd *Reader) File() *token.File

func (*Reader) FormPos

func (rd *Reader) FormPos(form *list.Pair) (pos, end token.Pos)

func (*Reader) NextRune

func (rd *Reader) NextRune() rune

func (*Reader) Offset

func (rd *Reader) Offset() int

func (*Reader) Read

func (rd *Reader) Read() interface{}

func (*Reader) ReadDelimitedList

func (rd *Reader) ReadDelimitedList(delimiter rune) interface{}

func (*Reader) ReadSourceFile

func (rd *Reader) ReadSourceFile() *SourceFile

func (*Reader) Rune

func (rd *Reader) Rune() rune

func (*Reader) SkipSpace

func (rd *Reader) SkipSpace()

func (*Reader) Table

func (rd *Reader) Table() *Table

type SourceFile

type SourceFile struct {
	PackageClause        *list.Pair
	ImportDeclarations   []*list.Pair
	UseDeclarations      []*list.Pair
	TopLevelDeclarations []*list.Pair
}

type Table

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

func CopyTable

func CopyTable(rt *Table) *Table

func MakeTable

func MakeTable(macroRunes map[rune]Macro, dispatchMacroRunes map[rune]map[rune]DispatchMacro, terminating map[rune]bool) *Table

func NewTable

func NewTable() *Table

func (*Table) GetDispatchMacroRune

func (rt *Table) GetDispatchMacroRune(dispRune, subRune rune) DispatchMacro

func (*Table) GetMacroRune

func (rt *Table) GetMacroRune(r rune) (f Macro, terminating bool)

func (*Table) MakeDisptachMacroRune

func (rt *Table) MakeDisptachMacroRune(r rune, terminating bool)

func (*Table) SetDispatchMacroRune

func (rt *Table) SetDispatchMacroRune(dispRune, subRune rune, f DispatchMacro)

func (*Table) SetMacroRune

func (rt *Table) SetMacroRune(r rune, f Macro, terminating bool)

Jump to

Keyboard shortcuts

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