irgen

package
v0.0.0-...-b5df184 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2017 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ProcessDeclarations

func ProcessDeclarations(decls []*Declarations, output_dir string, fsys fs.FileSystem)

func WriteIndex

func WriteIndex(decl *EnumDecl, idx *EnumIndex, pos int, enums []*EnumInstance, out *writer.TabbedWriter)

Types

type CountedRelationshipDecl

type CountedRelationshipDecl struct {
	Src     string
	SrcName string

	Dst     string
	DstName string
}

type CountedRelationshipInfo

type CountedRelationshipInfo struct {
	Src     *NodeInfo
	SrcName string

	Dst     *NodeInfo
	DstName string

	CountedField *LLField

	Creator  *LLStruct
	Iterator *LLStruct
}

type Declarations

type Declarations struct {
	DataSource string
	Package    string
	File       string
	Enums      []*EnumDecl
	Trees      []*TreeDecl
	Nodes      []*NodeDecl
	Parents    []*ParentRelationshipDecl
	Counted    []*CountedRelationshipDecl
}

type EnumDecl

type EnumDecl struct {
	Name           string
	Prefix         string
	GenerateParser string
	Fields         []*EnumDeclField
	Indexes        []*EnumIndex
	Enums          []*EnumInstance
}

type EnumDeclField

type EnumDeclField struct {
	Name string
	Type string
}

type EnumIndex

type EnumIndex struct {
	Name string
	Path []string
}

type EnumInstance

type EnumInstance struct {
	Name   string
	Fields []*EnumInstanceField
}

type EnumInstanceField

type EnumInstanceField struct {
	Name  string
	Value interface{}
}

type FieldDecl

type FieldDecl struct {
	Name string
	Type string
	Ref  bool
	List bool
	Weak bool
}

type GroupDecl

type GroupDecl struct {
	Name    string
	Structs []*StructDecl
}

type LLDecl

type LLDecl interface {
	// contains filtered or unexported methods
}

type LLField

type LLField struct {
	Name   string
	Type   LLType
	Export bool
}

type LLIntrinsicType

type LLIntrinsicType struct {
	Element string
}

type LLProgram

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

func (*LLProgram) CreateLLStruct

func (prog *LLProgram) CreateLLStruct(name string, export bool) *LLStruct

type LLStruct

type LLStruct struct {
	Name      string
	Fields    []*LLField
	Export    bool
	PtrCache  *PointerType
	ListCache *ListType
}

type LLType

type LLType interface {
	// contains filtered or unexported methods
}

type ListType

type ListType struct {
	Element LLType
}

type NodeDecl

type NodeDecl struct {
	Name   string
	Region string
}

type NodeInfo

type NodeInfo struct {
	Decl *NodeDecl
	Impl *LLStruct

	Region               *NodeInfo
	Allocated            []*NodeInfo
	ForwardRelationships []Relationship
	ReverseRelationships []Relationship
}

type ParentRelationshipDecl

type ParentRelationshipDecl struct {
	Src     string
	SrcName string

	Dst     string
	DstName string

	Required bool
}

type ParentRelationshipInfo

type ParentRelationshipInfo struct {
	Src     *NodeInfo
	SrcName string

	Dst     *NodeInfo
	DstName string

	HeadField *LLField
	TailField *LLField

	NextField *LLField
	PrevField *LLField

	Iterator *LLStruct

	Required bool
}

type PointerType

type PointerType struct {
	Element LLType
}

type ProcessEnumContext

type ProcessEnumContext struct {
	Input  fs.DataInput
	Output fs.DataOutput
}

type Relationship

type Relationship interface {
	// contains filtered or unexported methods
}

type StructDecl

type StructDecl struct {
	Name   string
	Fields []*FieldDecl
}

type TreeDecl

type TreeDecl struct {
	Dump    bool
	Structs []*StructDecl
	Groups  []*GroupDecl
}

Jump to

Keyboard shortcuts

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