if args.use_synonyms:
        ParallelMWE.load_synonym_dict(args.use_synonyms, args.inverse_synonyms)
    
    for line in inputSource:
        line=line.strip()
        mwe=ParallelMWE()
        mwe.parse(line)
        
        isValid=True
        
        if args.different_sides:
            isValid = isValid and not mwe.is_equal_sides()
        
        if args.contains_lexical:
            isValid = isValid and ( len(mwe.slexpr.get_open_leaf_functions())>0 or len(mwe.tlexpr.get_open_leaf_functions())>0 )
        
        if args.not_contains_lexical:
            isValid = isValid and not ( len(mwe.slexpr.get_open_leaf_functions())>0 or len(mwe.tlexpr.get_open_leaf_functions())>0 )
        
        if args.contains_non_wildcard:
            isValid = isValid and ( len(mwe.slexpr.get_non_wildcard_leaf_functions())>0 and len(mwe.tlexpr.get_non_wildcard_leaf_functions())>0 )
        
        if args.contains_wildcard:
            isValid = isValid and mwe.get_total_wildcards() > 0
        
        if args.not_contains_wildcard:
            isValid = isValid and mwe.get_total_wildcards() == 0
            
        if isValid:
            print line