Das Projekt sbsregex implementiert regular expressions in gforth.
Unterstützt werden das Matchen auf beliebige Zeichen ("."), Gruppierungen ("()"), Alternativen ("|") und Zeichenklassen ("[]"). Die Implementierung benutzt nichtdeterministische Automaten mit Backtracking (näheres in der Präsentation).
build-nfa ( u-addr u -- a-addr) zur Erstellung eines Automaten aus einem String.
Danach test-nfa ( a-addr u-addr u -- f ) zum Testen eines Strings.
Bsp.:
s" a(bc)*d" build-nfa s" abcd" test-nfa
Zurückgegeben wird -1 falls der String matcht. Andernfalls 0.
Alternative: sbsregex (Kombination von build-nfa und test-nfa)
s" a*" s" aaaa" sbsregex
SBS 07/08 Gruppe 101: