コード例 #1
0
ファイル: parser.go プロジェクト: vube/gocov
func (p *parser) parseEnterLeave(fn *gocov.Function, entered bool) {
	p.expectNext(token.LPAREN)
	p.expectNext(token.RPAREN)
	if entered {
		fn.Enter()
	} else {
		fn.Leave()
	}
}
コード例 #2
0
ファイル: parser.go プロジェクト: vube/gocov
func (p *parser) parseRegisterStatement(fn *gocov.Function) {
	p.expectNext(token.LPAREN)
	p.expectNext(token.INT)
	startOffset, _ := strconv.Atoi(p.lit)
	p.expectNext(token.COMMA)
	p.expectNext(token.INT)
	endOffset, _ := strconv.Atoi(p.lit)
	p.expectNext(token.RPAREN)
	p.expectNext(token.COLON)
	p.expectNext(token.IDENT)
	uid := objnameToUid(p.lit)
	stmt := fn.RegisterStatement(startOffset, endOffset)
	if stmt.Uid() != uid {
		panic(fmt.Errorf("uid differs: source must have changed"))
	}
	p.objects[uid] = stmt
}