12345678910111213141516 |
- matches(\varepsilon, []).
- matches(C, [C]) :- atom(C), !.
- matches(\cup(A, _), S) :- matches(A, S).
- matches(\cup(_, B), S) :- matches(B, S).
- matches(\cdot(A, B), S) :- append(S1, S2, S),
- matches(A, S1),
- matches(B, S2).
- matches(*(_), []).
- matches(*(A), S) :- append(S1, S2, S),
- not(S1=[]),
- matches(A, S1),
- matches(*(A), S2).
|