add forward function analyzer (wip)
remove forward function analyzer

because scope tree is not created correctly
check semantics of do-end blocks and emit IR for them

lambdas can't be dealt with other functions because it may have captured
symbols.  Captured symbols are resolved in its scope at first and
resolved as lambda function object's data member later.  So, all lambda
functions' semantics should be checked in the place it is just defined
for symbol resolution.