Пример #1
0
Файл: decls.go Проект: 8l/leaf
func (p *Parser) parseVarType(v *ast.Var) bool {
	p.push("var-type")
	defer p.pop()

	if p.accept(tt.Lbrack) {
		v.IsArray = true
		if p.accept(tt.Int) {
			v.SizeToken = p.last()
		}

		if !p.expect(tt.Rbrack) {
			return false
		}
	}

	if p.accept(tt.Ident) {
		t := p.last()
		v.TypeToken = t
		v.Type = t.Lit
	} else if v.IsArray {
		return false
	}

	return true
}