aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/ast/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ast/parser.go')
-rw-r--r--pkg/ast/parser.go14
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,