本文整理汇总了Golang中github.com/ark-lang/ark/src/parser.StructType类的典型用法代码示例。如果您正苦于以下问题:Golang StructType类的具体用法?Golang StructType怎么用?Golang StructType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了StructType类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: structTypeToLLVMType
func (v *Codegen) structTypeToLLVMType(typ *parser.StructType) llvm.Type {
if t, ok := v.structLookup_UseHelperFunction[typ]; ok {
return t
}
return llvm.StructType(v.structTypeToLLVMTypeFields(typ), typ.Attrs().Contains("packed"))
}
开发者ID:dansawkins,项目名称:ark,代码行数:7,代码来源:codegen.go
示例2: addStructType
func (v *Codegen) addStructType(typ *parser.StructType) {
if _, ok := v.structLookup_UseHelperFunction[typ]; ok {
return
}
for _, field := range typ.Variables {
if struc, ok := field.Variable.Type.(*parser.StructType); ok {
v.addStructType(struc) // TODO check recursive loop
}
}
numOfFields := len(typ.Variables)
fields := make([]llvm.Type, numOfFields)
packed := false
for i, member := range typ.Variables {
memberType := v.typeToLLVMType(member.Variable.Type)
fields[i] = memberType
}
structure := llvm.StructType(fields, packed)
llvm.AddGlobal(v.curFile.Module, structure, typ.MangledName(parser.MANGLE_ARK_UNSTABLE))
v.structLookup_UseHelperFunction[typ] = structure
}
开发者ID:gitter-badger,项目名称:ark,代码行数:25,代码来源:codegen.go
示例3: CheckStructType
func (v *AttributeCheck) CheckStructType(s *SemanticAnalyzer, n parser.StructType) {
for _, attr := range n.Attrs() {
switch attr.Key {
case "packed":
if attr.Value != "" {
s.Err(attr, "Struct attribute `%s` doesn't expect value", attr.Key)
}
case "deprecated":
// value is optional, nothing to check
default:
s.Err(attr, "Invalid struct attribute key `%s`", attr.Key)
}
}
}
开发者ID:IanMurray,项目名称:ark,代码行数:14,代码来源:attributes.go
示例4: addStructType
func (v *Codegen) addStructType(typ parser.StructType, name string) {
if _, ok := v.namedTypeLookup[name]; ok {
return
}
structure := v.curFile.LlvmModule.Context().StructCreateNamed(name)
v.namedTypeLookup[name] = structure
for _, field := range typ.Variables {
if named, ok := field.Variable.Type.(*parser.NamedType); ok {
v.addNamedType(named)
}
}
structure.StructSetBody(v.structTypeToLLVMTypeFields(typ), typ.Attrs().Contains("packed"))
}
开发者ID:vnev,项目名称:ark,代码行数:17,代码来源:codegen.go
示例5: structTypeToLLVMType
func (v *Codegen) structTypeToLLVMType(typ parser.StructType) llvm.Type {
return llvm.StructType(v.structTypeToLLVMTypeFields(typ), typ.Attrs().Contains("packed"))
}
开发者ID:vnev,项目名称:ark,代码行数:3,代码来源:type.go
注:本文中的github.com/ark-lang/ark/src/parser.StructType类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论