vmwriter

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 25, 2025 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ARGUMENT string = "argument"
	LOCAL    string = "local"
	STATIC   string = "static"
	CONSTANT string = "constant"
	THIS     string = "this"
	THAT     string = "that"
	POINTER  string = "pointer"
	TEMP     string = "temp"
)
View Source
const (
	ADD string = "add"
	SUB string = "sub"
	NEG string = "neg"
	EQ  string = "eq"
	GT  string = "gt"
	LT  string = "lt"
	AND string = "and"
	OR  string = "or"
	NOT string = "not"
	MUL string = "call Math.multiply 2"
	DIV string = "call Math.divide 2"
)

Variables

View Source
var Commands = []string{
	ADD,
	SUB,
	NEG,
	EQ,
	GT,
	LT,
	AND,
	OR,
	NOT,
	MUL,
	DIV,
}
View Source
var SegmentOfKind = map[string]string{
	st.STATIC: STATIC,
	st.FIELD:  THIS,
	st.ARG:    ARGUMENT,
	st.VAR:    LOCAL,
}

Functions

This section is empty.

Types

type VMWriter

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

func New

func New(w io.Writer) *VMWriter

func (*VMWriter) WriteArithmetic

func (vmw *VMWriter) WriteArithmetic(command string) error

func (*VMWriter) WriteCall

func (vmw *VMWriter) WriteCall(name string, nArgs int) error

func (*VMWriter) WriteFunction

func (vmw *VMWriter) WriteFunction(name string, nVars int) error

func (*VMWriter) WriteGoto

func (vmw *VMWriter) WriteGoto(label string) error

func (*VMWriter) WriteIf

func (vmw *VMWriter) WriteIf(label string) error

func (*VMWriter) WriteLabel

func (vmw *VMWriter) WriteLabel(label string) error

func (*VMWriter) WritePop

func (vmw *VMWriter) WritePop(segment string, index int) error

func (*VMWriter) WritePush

func (vmw *VMWriter) WritePush(segment string, index int) error

func (*VMWriter) WriteReturn

func (vmw *VMWriter) WriteReturn() error

Jump to

Keyboard shortcuts

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