comp

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 18, 2026 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Overview

Package comp implements a byte code generator targeting the vm.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Compiler

type Compiler struct {
	*goparser.Parser
	vm.Code            // produced code, to fill VM with
	Data    []vm.Value // produced data, will be at the bottom of VM stack
	Entry   int        // offset in Code to start execution from

	FuncRanges []vm.FuncRange // bytecode [Start, End) range for every compiled function, in source order
	// contains filtered or unexported fields
}

Compiler represents the state of a compiler.

func NewCompiler

func NewCompiler(spec *lang.Spec) *Compiler

NewCompiler returns a new compiler state for a given scanner.

func (*Compiler) BuildDebugInfo

func (c *Compiler) BuildDebugInfo() *vm.DebugInfo

BuildDebugInfo constructs a DebugInfo from the compiler's symbol table and source registry. The result can be passed to DumpFrame/DumpCallStack.

func (*Compiler) Compile

func (c *Compiler) Compile(name, src string) error

Compile parses src and generates code and data, or returns a non-nil error. Code and data are added incrementally in c.Code and C.Data.

func (*Compiler) MethodFuncTypes added in v0.2.0

func (c *Compiler) MethodFuncTypes() []reflect.Type

MethodFuncTypes returns a slice of bound-method func types (no receiver) indexed by global method ID. Entries are nil when no interface declaration recorded the signature (e.g. methods on native types resolved purely via reflect).

func (*Compiler) MethodNames

func (c *Compiler) MethodNames() []string

MethodNames returns the reverse mapping of global method IDs to names.

func (*Compiler) PrintCode

func (c *Compiler) PrintCode()

PrintCode pretty prints the generated code.

func (*Compiler) PrintData

func (c *Compiler) PrintData()

PrintData pretty prints the generated global data symbols in compiler.

Jump to

Keyboard shortcuts

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