libgengo

package
v0.0.0-...-5ec6080 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HeaderType     = "Header"
	TimeType       = "time"
	DurationType   = "duration"
	HeaderFullName = "std_msgs/Header"
	TimeMsg        = "uint32 secs\nuint32 nsecs"
	DurationMsg    = "uint32 secs\nuint32 nsecs"
)
View Source
const (
	Sep    = "/"
	MsgDir = "msg"
	SrvDir = "srv"
	ExtMsg = ".msg"
	ExtSrv = ".msg"

	ConstChar   = "="
	CommentChar = "#"
	IoDelim     = "---"
)

Variables

View Source
var BaseResourceNameLegalCharsPattern = regexp.MustCompile(`"[A-Za-z][\w_]*$`)
View Source
var PrimitiveTypes = []string{
	"int8",
	"uint8", "int16", "uint16", "int32", "uint32", "int64", "uint64", "float32", "float64",
	"string",
	"bool",

	"char", "byte",
}
View Source
var ResourceNameLegalCharsPattern = regexp.MustCompile(`^[A-Za-z][\w_\/]*$`)

Functions

func ConvertConstantValue

func ConvertConstantValue(fieldType string, valueLiteral string) (interface{}, error)

func FindAllActions

func FindAllActions(rosPkgPaths []string) (map[string]string, error)

func FindAllMessages

func FindAllMessages(rosPkgPaths []string) (map[string]string, error)

func FindAllServices

func FindAllServices(rosPkgPaths []string) (map[string]string, error)

func GenerateAction

func GenerateAction(context *PkgContext, spec *ActionSpec) (actionCode string, codeMap map[string]string, err error)

func GenerateMessage

func GenerateMessage(context *PkgContext, spec *MsgSpec, isAction bool) (string, error)

func GenerateService

func GenerateService(context *PkgContext, spec *SrvSpec) (string, string, string, error)

func GetZeroValue

func GetZeroValue(pkg string, typeName string) string

func OptionPackageName

func OptionPackageName(name string) func(*MsgSpec) error

func OptionShortName

func OptionShortName(name string) func(*MsgSpec) error

func PackageResourceName

func PackageResourceName(name string) (string, string, error)

func ToGoName

func ToGoName(name string, constant bool) string

func ToGoType

func ToGoType(pkg string, typeName string) string

Types

type ActionCode

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

type ActionSpec

type ActionSpec struct {
	Package        string
	ShortName      string
	FullName       string
	Text           string
	MD5Sum         string
	Goal           *MsgSpec
	Feedback       *MsgSpec
	Result         *MsgSpec
	ActionGoal     *MsgSpec
	ActionFeedback *MsgSpec
	ActionResult   *MsgSpec
}

type BuiltInType

type BuiltInType int

BuiltInType enumeration represents a standard ros type. See http://wiki.ros.org/msg for specification.

const (
	Invalid BuiltInType = iota
	Bool
	Int8
	Int16
	Int32
	Int64
	Uint8
	Uint16
	Uint32
	Uint64
	Float32
	Float64
	String
	Time
	Duration
)

Enumeration of all ros builtin types. Invalid represents a non-built in type.

func ToBuiltInType

func ToBuiltInType(typeName string) BuiltInType

type Constant

type Constant struct {
	Type      string
	Name      string
	Value     interface{}
	ValueText string
	GoName    string
}

func NewConstant

func NewConstant(fieldType string, name string, value interface{}, valueText string) *Constant

func (*Constant) String

func (c *Constant) String() string

type Field

type Field struct {
	Package     string
	Type        string
	Name        string
	IsBuiltin   bool
	BuiltInType BuiltInType
	IsArray     bool
	ArrayLen    int
	GoName      string
	GoType      string
	ZeroValue   string
}

func NewField

func NewField(pkg string, fieldType string, name string, isArray bool, arrayLen int) *Field

func (*Field) String

func (f *Field) String() string

type MsgGen

type MsgGen struct {
	MsgSpec
	BinaryRequired bool
	IsAction       bool
	Imports        []string
}

type MsgSpec

type MsgSpec struct {
	Fields    []Field
	Constants []Constant
	Text      string
	MD5Sum    string
	FullName  string
	ShortName string
	Package   string
}

func NewMsgSpec

func NewMsgSpec(fields []Field, constants []Constant, text string, fullName string, options ...OptionMsgSpec) (*MsgSpec, error)

func (*MsgSpec) String

func (s *MsgSpec) String() string

Implements Stringer interface

type OptionMsgSpec

type OptionMsgSpec func(*MsgSpec) error

type PkgContext

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

func NewPkgContext

func NewPkgContext(rosPkgPaths []string) (*PkgContext, error)

func (*PkgContext) ComputeActionMD5

func (ctx *PkgContext) ComputeActionMD5(spec *ActionSpec) (string, error)

func (*PkgContext) ComputeMD5Text

func (ctx *PkgContext) ComputeMD5Text(spec *MsgSpec) (string, error)

func (*PkgContext) ComputeMsgMD5

func (ctx *PkgContext) ComputeMsgMD5(spec *MsgSpec) (string, error)

func (*PkgContext) ComputeSrvMD5

func (ctx *PkgContext) ComputeSrvMD5(spec *SrvSpec) (string, error)

func (*PkgContext) GetActions

func (ctx *PkgContext) GetActions() map[string]*ActionSpec

func (*PkgContext) GetMsgs

func (ctx *PkgContext) GetMsgs() map[string]*MsgSpec

func (*PkgContext) GetSrvs

func (ctx *PkgContext) GetSrvs() map[string]*SrvSpec

func (*PkgContext) LoadAction

func (ctx *PkgContext) LoadAction(fullname string) (*ActionSpec, error)

func (*PkgContext) LoadActionFromFile

func (ctx *PkgContext) LoadActionFromFile(filePath string, fullname string) (*ActionSpec, error)

func (*PkgContext) LoadActionFromString

func (ctx *PkgContext) LoadActionFromString(text string, fullname string) (*ActionSpec, error)

func (*PkgContext) LoadMsg

func (ctx *PkgContext) LoadMsg(fullname string) (*MsgSpec, error)

func (*PkgContext) LoadMsgFromFile

func (ctx *PkgContext) LoadMsgFromFile(filePath string, fullname string) (*MsgSpec, error)

func (*PkgContext) LoadMsgFromString

func (ctx *PkgContext) LoadMsgFromString(text string, fullname string) (*MsgSpec, error)

func (*PkgContext) LoadSrv

func (ctx *PkgContext) LoadSrv(fullname string) (*SrvSpec, error)

func (*PkgContext) LoadSrvFromFile

func (ctx *PkgContext) LoadSrvFromFile(filePath string, fullname string) (*SrvSpec, error)

func (*PkgContext) LoadSrvFromString

func (ctx *PkgContext) LoadSrvFromString(text string, fullname string) (*SrvSpec, error)

func (*PkgContext) RegisterAction

func (ctx *PkgContext) RegisterAction(fullname string, spec *ActionSpec)

func (*PkgContext) RegisterMsg

func (ctx *PkgContext) RegisterMsg(fullname string, spec *MsgSpec)

func (*PkgContext) RegisterSrv

func (ctx *PkgContext) RegisterSrv(fullname string, spec *SrvSpec)

type ROSPackage

type ROSPackage struct {
	Name string `xml:"name"`
}

type SrvSpec

type SrvSpec struct {
	Package   string
	ShortName string
	FullName  string
	Text      string
	MD5Sum    string
	Request   *MsgSpec
	Response  *MsgSpec
}

type SyntaxError

type SyntaxError struct {
	FullName string
	Line     int
	Message  string
}

func NewSyntaxError

func NewSyntaxError(fullName string, line int, message string) *SyntaxError

func (*SyntaxError) Error

func (e *SyntaxError) Error() string

Jump to

Keyboard shortcuts

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