I'm still learning, but I think its just the distinction between introducing 
the name and performing the name binding. Consider this example,

let (x, y) = (1, 2)

This parses into one PatternBindingDecl and two VarDecls.

Slava

> On Dec 18, 2015, at 8:08 AM, Lee M via swift-dev <swift-dev@swift.org> wrote:
> 
> With the code: var foo = true, swift parses this into the following AST:
> 
> (pattern_binding_decl
>     (pattern_named 'foo')
>     (boolean_literal_expr type='<null>' value=true))
> (var_decl "foo" type='<null type>' storage_kind=stored)))
> 
> I'm wondering why VarDecl and PatternBindingDecl are separate nodes in the 
> tree and not nested somehow, as they both represent similar things..?
> 
> Might be a trivial question as I'm not a compiler guru. I'm porting parts of 
> the AST representation to another language for a project.
> 
> Thanks!
>  _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to