2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00
LaTeX-examples/documents/Programmierparadigmen/scripts/prolog/regex.pl

16 lines
439 B
Perl
Raw Normal View History

2014-09-13 17:26:09 +02:00
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).