当前位置: 首页>>代码示例>>Golang>>正文


Golang Object.FindByQualident方法代码示例

本文整理汇总了Golang中github.com/kpmy/ot/otm.Object.FindByQualident方法的典型用法代码示例。如果您正苦于以下问题:Golang Object.FindByQualident方法的具体用法?Golang Object.FindByQualident怎么用?Golang Object.FindByQualident使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/kpmy/ot/otm.Object的用法示例。


在下文中一共展示了Object.FindByQualident方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: traverse

func (w *Walker) traverse(o otm.Object) {
	var (
		this    schema.Guide
		skip    *bool
		skipped = func() {
			s := true
			skip = &s
		}
		important = func() {
			s := false
			skip = &s
		}
	)

	switch o.Qualident().Class {
	//structure elements
	case "grammar":
		skipped()
		if start := o.FindByQualident(otm.Qualident{Template: "ng", Class: "start"}); start != nil {
			w.forEach(start[0], traverseWrap())
		}
	case "ref":
		skipped()
		panic(0)
		/*		if ref := w.root.FindByName(n.Name); ref != nil {
					if cached := w.cache[n.Name]; cached == nil {
						this = Construct(n.XMLName)
						{
							std.NameAttr(this, n.Name)
							//std.RefAttr(this, cached.root)
						}
						w.cache[n.Name] = &Cached{node: ref, root: this}
						w.GrowDown(this)
						w.forEach(ref, traverseWrap())
						w.Up()
					} else {
						w.Grow(cached.root)
					}
				} else {
					halt.As(100, "ref not found", n.Name)
				}
		*/
	//content elements
	case "element", "attribute", "data", "text", "value", "name", "param":
		fallthrough
	//constraint elements
	case "choice", "interleave", "optional", "zeroOrMore", "oneOrMore", "group", "list", "mixed", "except", "anyName", "nsName", "empty", "externalRef":
		important()
		this = Construct(o.Qualident())
		{
			std.NameAttr(this, NameOf(o))
			/*std.CharDataAttr(this, n.Data())
			std.TypeAttr(this, n.Type)
			std.NSAttr(this, n.NS)
			std.DataTypeAttr(this, n.DataType)
			std.CombineAttr(this, n.Combine)
			std.HrefAttr(this, n.Href)
			*/
		}
		w.GrowDown(this)
		w.forEach(o, traverseWrap())
		w.Up()
	//skipped elements
	case "description": //descriprion do nothing
	default:
		halt.As(100, o.Qualident())
	}
	if skip != nil {
		assert.For(*skip || this != nil, 60, "no result for ", o.Qualident())
	} else if this == nil {
		log.Println("unhandled", o.Qualident())
	}
}
开发者ID:kpmy,项目名称:ot,代码行数:73,代码来源:load.go


注:本文中的github.com/kpmy/ot/otm.Object.FindByQualident方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。