diff options
Diffstat (limited to 'pkg/ast/parser.go')
| -rw-r--r-- | pkg/ast/parser.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pkg/ast/parser.go b/pkg/ast/parser.go index 9e1ab679e..db211ab2a 100644 --- a/pkg/ast/parser.go +++ b/pkg/ast/parser.go @@ -128,6 +128,9 @@ func (p *parser) parseTop() Node { return p.parseResource() case tokIdent: name := p.parseIdent() + if name.Name == "type" { + return p.parseTypeDef() + } switch p.tok { case tokLParen: return p.parseCall(name) @@ -245,6 +248,17 @@ func (p *parser) parseResource() *Resource { } } +func (p *parser) parseTypeDef() *TypeDef { + pos0 := p.pos + name := p.parseIdent() + typ := p.parseType() + return &TypeDef{ + Pos: pos0, + Name: name, + Type: typ, + } +} + func (p *parser) parseCall(name *Ident) *Call { c := &Call{ Pos: name.Pos, |
