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


Golang Node.Rule方法代码示例

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


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

示例1: parseTypeName

func (p *parser) parseTypeName(n *parse.Node) ast.Expr {
	n = n.Child(0)
	if n.Rule() == identifier {
		return p.parseIdent(n)
	}
	return p.parseQualifiedIdent(n)
}
开发者ID:h12w,项目名称:gombi,代码行数:7,代码来源:parser.go

示例2: parseGoExpr

func (p *parser) parseGoExpr(n *parse.Node) ast.Expr {
	n = n.Child(0).Child(0)
	switch n.Rule() {
	case expr:
		return p.parseExpr(n)
	case type_:
		return p.parseType(n)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:10,代码来源:parser.go

示例3: parseResults

func (p *parser) parseResults(n *parse.Node, scope *ast.Scope) *ast.FieldList {
	n = n.Child(0)
	switch n.Rule() {
	case parameters:
		return p.parseParams(n, scope)
	case type_:
		return &ast.FieldList{List: []*ast.Field{{Type: p.parseType(n)}}}
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:10,代码来源:parser.go

示例4: parseType

func (p *parser) parseType(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case typeName:
		return p.parseTypeName(n)
	case typeLit:
		return p.parseTypeLit(n)
	}
	return p.parseType(n.Child(1))
}
开发者ID:h12w,项目名称:gombi,代码行数:10,代码来源:parser.go

示例5: parseValue

func (p *parser) parseValue(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case expr:
		return p.parseExpr(n)
	case literalValue:
	}
	fmt.Println("parseValue", n)
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:10,代码来源:parser.go

示例6: parseSwitchStmt

func (p *parser) parseSwitchStmt(n *parse.Node) ast.Stmt {
	p.openScope()
	n = n.Child(0)
	switch n.Rule() {
	case exprSwitchStmt:
		return p.parseExprSwitchStmt(n)
	case typeSwitchStmt:
		return p.parseTypeSwitchStmt(n)
	}
	p.closeScope()
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:12,代码来源:parser.go

示例7: parseDecl

func (p *parser) parseDecl(n *parse.Node) ast.Decl {
	n = n.Child(0)
	switch n.Rule() {
	case constDecl:
		return p.parseConstDecl(n)
	case typeDecl:
		return p.parseTypeDecl(n)
	case varDecl:
		return p.parseVarDecl(n)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:12,代码来源:parser.go

示例8: parseTopLevelDecl

func (p *parser) parseTopLevelDecl(n *parse.Node) ast.Decl {
	n = n.Child(0)
	switch n.Rule() {
	case decl:
		return p.parseDecl(n)
	case funcDecl:
		return p.parseFuncDecl(n)
	case methodDecl:
		return p.parseMethodDecl(n)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:12,代码来源:parser.go

示例9: parseLiteral

func (p *parser) parseLiteral(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case basicLit:
		return p.parseBasicLit(n.Child(0))
	case compositeLit:
		return p.parseCompositeLit(n)
	case funcLit:
		return p.parseFuncLit(n)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:12,代码来源:parser.go

示例10: parseOperand

func (p *parser) parseOperand(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case literal:
		return p.parseLiteral(n)
	case operandName:
		return p.parseIdent(n)
	default:
		return p.parseExpr(n.Child(1))
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:12,代码来源:parser.go

示例11: parseElse

func (p *parser) parseElse(n *parse.Node) ast.Stmt {
	if n == nil {
		return nil
	}
	n = n.Child(0)
	switch n.Rule() {
	case ifStmt:
		return p.parseIfStmt(n)
	case block:
		return p.parseBlock(n, p.topScope)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:13,代码来源:parser.go

示例12: parseSimpleStmt

func (p *parser) parseSimpleStmt(n *parse.Node) ast.Stmt {
	n = n.Child(0)
	switch n.Rule() {
	case exprStmt:
		return p.parseExprStmt(n)
	case sendStmt:
	case incDecStmt:
	case assignment:
		return p.parseAsignment(n)
	case shortVarDecl:
		return p.parseShortVarDecl(n)
	}
	fmt.Println("simpleStmt", n)
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:15,代码来源:parser.go

示例13: parseLiteralType

func (p *parser) parseLiteralType(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case arrayType:
	case structType:
		return p.parseStructType(n)
	case sliceType:
		return p.parseSliceType(n)
	case mapType:
	case typeName:
	default:
		// array
	}
	fmt.Println(n)
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:16,代码来源:parser.go

示例14: parseTypeLit

func (p *parser) parseTypeLit(n *parse.Node) ast.Expr {
	n = n.Child(0)
	switch n.Rule() {
	case arrayType:
	case structType:
		return p.parseStructType(n)
	case pointerType:
		return p.parsePointerType(n)
	case funcType:
	case interfaceType:
		return p.parseInterfaceType(n)
	case sliceType:
	case mapType:
	case channelType:
	}
	fmt.Println(n)
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:18,代码来源:parser.go

示例15: parseStmt

func (p *parser) parseStmt(n *parse.Node) ast.Stmt {
	n = n.Child(0)
	switch n.Rule() {
	case decl:
		return p.parseDeclStmt(n)
	case labeledStmt:
		return p.parseLabeledStmt(n)
	case simpleStmt:
		return p.parseSimpleStmt(n)
	case goStmt:
		return p.parseGoStmt(n)
	case returnStmt:
		return p.parseReturnStmt(n)
	case breakStmt:
		return p.parseBreakStmt(n)
	case continueStmt:
		return p.parseContinueStmt(n)
	case gotoStmt:
		return p.parseGotoStmt(n)
	case fallthroughStmt:
		return p.parseFallthroughStmt(n)
	case block:
		return p.parseBlockStmt(n)
	case ifStmt:
		return p.parseIfStmt(n)
	case switchStmt:
		return p.parseSwitchStmt(n)
	case selectStmt:
		return p.parseSelectStmt(n)
	case forStmt:
		return p.parseForStmt(n)
	case deferStmt:
		return p.parseDeferStmt(n)
	}
	return nil
}
开发者ID:h12w,项目名称:gombi,代码行数:36,代码来源:parser.go


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