add tests which fail now
update captured symbols in lambda object instantiations
do not capture global variables
fix SEGV on shadowing built-in symbols
fix parser on lambda expression without 'in'
register lambda instantion to the map on lambda expression
parse lambda expression properly when its body is a tuple
remove specilization for do-end block in func_invocation

'do_block' member should be removed.
use lambda for do-end on parsing
add source location to automatically generated nodes

- lambda expression for do-end block
- return statement for {} block
remove do-end block specific processes in func_invocation
remove do-end block specific processes in ufcs_invocation
separate analyze_as_lambda_invocation to 2 function to get captures for lambdas in advance
use generic function type for the key of AST node of lambda receiver

because the function scope of lambda will be updated by instantiation if
the lambda is generic but the generic function type will not be
updated.
do not replace ufcs_invocation on resolve_lambda_captures()
replace captured symbols with proper ufcs_invocation on instantiation

it is done on instantiation because Dachs identifies ufcs_invocation by
its address.  If replacing captured symbols on definition of lambda, the
lambda may be generic and then the replaced ufcs_invocation's address
will change on the instantiation because of copying AST.
fix resolving lambda capture
function template is not visited and its return type is not analyzed
update vim-dachs
add rough implementation for recursive lambdas

realize it with visiting lambda's ASTs after semantic analysis