easy regexp by yt

with text_io;use text_io;procedure a is
s:string:=get_line&'/';procedure f(a:string;p:integer)is
b,q:integer:=p+1;begin
if'/'=s(p)then
put_line(a);elsif'('=s(p)then
for i in b..99 loop
if')'=s(i)then
q:=i+1;if'?'=s(q)then
q:=q+1;f(a,q);end if;exit;end if;end loop;for i in b..q loop
if')'=s(i)or'|'=s(i)then
f(a&s(b..i-1),q);b:=i+1;end if;end loop;elsif'['=s(p)then
for j in q..99 loop
if']'=s(j)then
q:=j+1;if'?'=s(q)then
q:=q+1;f(a,q);end if;for i in p+1..j-1 loop
f(a&s(i),q);end loop;exit;end if;end loop;else
if'?'=s(q)then
q:=q+1;f(a,q);end if;f(a&s(p),q);end if;end;begin
f("",1);end;

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return to the top page