Fix pattern name scoping.
Fix pattern name scoping.

Patterns in boolean membership tests do not bind named free
variables in the containing scope, fix parser to reflect this naming
rule.

* da/compiler/parser.py:

 -(PatternParser): take an optional argument 'scope', if None, use
  it as the current scope instead of the current_scope from the
  'parser' instance.

 -(PattenParser.namescope): new property, returns the 'scope'
  parameter if None, else 'parser.current_scope'.

 -(Parser.parse_pattern_expr, Parser.parse_event_expr): new argument
  'use_dummy_scope', when True, pass a dummy scope to PattenParser.

 -(Parser.visit_Call, Parser.visit_Compare): set 'use_dummy_scope'
  to True for expressions 'PAT in ITER' and 'received/sent(EVTPAT)'.

sghosh1991/distalgo,mayli/DistAlgo,mayli/DistAlgo,sghosh1991/distalgo