Soapcall3.ecl 918 B

1234567891011121314151617181920212223242526272829
  1. //
  2. // Example code - use without restriction.
  3. //
  4. ParseWords(STRING LineIn) := FUNCTION
  5. PATTERN Ltrs := PATTERN('[A-Za-z]');
  6. PATTERN Char := Ltrs | '-' | '\'';
  7. TOKEN Word := Char+;
  8. ds := DATASET([{LineIn}],{STRING line});
  9. RETURN PARSE(ds,line,Word,{STRING Pword := MATCHTEXT(Word)});
  10. END;
  11. EXPORT Soapcall3() := FUNCTION
  12. STRING UID := '' : STORED('UIDstr');
  13. STRING LeftIn := '' : STORED('LeftInStr');
  14. STRING RightIn := '' : STORED('RightInStr');
  15. BOOLEAN TokenMatch := FUNCTION
  16. P1 := ParseWords(LeftIn);
  17. P2 := ParseWords(RightIn);
  18. SetSrch := SET(P1,Pword);
  19. ProjRes := PROJECT(P2,
  20. TRANSFORM({BOOLEAN Fnd},
  21. SELF.Fnd := LEFT.Pword IN SetSrch));
  22. AllRes := DEDUP(SORT(ProjRes,Fnd));
  23. RETURN COUNT(AllRes) = 1 AND AllRes[1].Fnd = TRUE;
  24. END;
  25. RETURN OUTPUT(DATASET([{UID,TokenMatch}],{STRING UID,BOOLEAN res}));
  26. END;