cast

package
v0.0.0-...-a214d60 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2024 License: BSD-3-Clause Imports: 17 Imported by: 0

Documentation

Overview

Package cast 实现了一个C语言的抽象语法树

Index

Constants

This section is empty.

Variables

View Source
var Deferfunc func() = utils.Deferfunc
View Source
var (
	ObjKindSrtMap = [...]string{
		NoOP:      "noop (未定义的类型)",
		INTOBJ:    "intobj (整数)",
		FLOATOBJ:  "floatobj (浮点数)",
		BoolObj:   "boolobj (布尔值)",
		StringObj: "stringobj(字符串)",
		SymbolObj: "symbolobj (符号)",
		LeaObj:    "leaObj (取地址)",
		DerefObj:  "derefObj (解引用)",
		StructPtr: "StructPtr (结构体指针)",
		NilObj:    "NilObj (指针的零值)",
		EnumObj:   "EnumObj (枚举值)",
	}
)

Functions

func PaeserIr2

func PaeserIr2(toc *Ir2ToC, f *ir2.File)

Types

type Ir2ToC

type Ir2ToC struct {
	Nodes []ast.Node
	// contains filtered or unexported fields
}

func NewIr2ToC

func NewIr2ToC(packageName string, isInitFunc bool) *Ir2ToC

func (*Ir2ToC) C

func (c *Ir2ToC) C() string

type ObjKind

type ObjKind int
const (
	NoOP ObjKind = 1 << iota
	INTOBJ
	FLOATOBJ
	BoolObj
	StringObj
	SymbolObj
	LeaObj
	DerefObj
	StructPtr
	NilObj
	TypeObj
	EnumObj
)

func (ObjKind) String

func (o ObjKind) String() string

type OneIr2ToC

type OneIr2ToC ir2.IrNode

func (OneIr2ToC) C

func (ir OneIr2ToC) C(buf *strings.Builder)

func (OneIr2ToC) String

func (ir OneIr2ToC) String() string

type Package

type Package struct {

	//并发
	Thread bool
	// contains filtered or unexported fields
}

func NewPackage

func NewPackage(Thread bool) *Package

func (*Package) AddUastSlice

func (p *Package) AddUastSlice(astp *ast.Package, importPackage map[string]*Package)

func (*Package) C

func (p *Package) C(buf *strings.Builder)

func (*Package) Oupput

func (p *Package) Oupput(w io.StringWriter, header string)

func (*Package) OupputC

func (p *Package) OupputC(dir string) ([]string, error)

OupputC 输出C文件到目录

func (*Package) String

func (p *Package) String() string

func (*Package) WithAutoFree

func (p *Package) WithAutoFree() bool

type UtoC

type UtoC struct {
	PackageName string
	FileName    string

	Nodes []ast.Node

	Thread bool

	InAutoFree bool
	// contains filtered or unexported fields
}

func NewUtoC

func NewUtoC() *UtoC

func (*UtoC) C

func (c *UtoC) C() string

func (*UtoC) Parser

func (c *UtoC) Parser(t *ast.Tree, inPackage bool)

func (*UtoC) String

func (c *UtoC) String() string

Jump to

Keyboard shortcuts

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