Mercurial > repo
diff src/ploki/examples/ret.pk @ 4223:ac0403686959
<oerjan> rm -rf src/ploki; mv ploki src
author | HackBot |
---|---|
date | Fri, 20 Dec 2013 22:18:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ploki/examples/ret.pk Fri Dec 20 22:18:50 2013 +0000 @@ -0,0 +1,56 @@ +#!../ploki +REM regular expression tester +NEXT main: + +FOR trymatch + LEET txt \@ . 0 + LEET pat \@ . 1 + LEET ms txt ~ pat + IF ms + LET me \_ + "matched at pos \Vms [\V(txt ] ms)\033[1m\V(txt [ ms ] (me - ms))\033[m\V(txt [ me ] 255)] + IF @DEF-P \0 + WUNT "\\0<\V@-0, \V@+0>: \V\0 + FI + IF @DEF-P \1 + WUNT "\\1<\V@-1, \V@+1>: \V\1 + FI + IF @DEF-P \2 + WUNT "\\2<\V@-2, \V@+2>: \V\2 + FI + ELSE + WUNT "no match + FI +KTHX + +FOR main: + IF \ARG < 2 + WUNT "Usage: \V\ARG:0 PATTERN [FILE] + END @NEG1 + FI + LET pat \ARG:1 + IF \ARG > 2 + LET fh @LAPERS \ARG:2 + IF @NOT fh + WUNT \AUSG \ARG:0_": "_\ARG:2_": "_\!_" + END @NEG1 + FI + FOR buf LET s fh . 4096 + IF s ; "" +#! "appending [\V@TYPE OFs:\V@LENGTHs]\Vs to \Vtxt + LET txt _= s + NEXT buf + FI +#! "matching /\Vpat/ against \Vtxt + trymatch #<txt pat#> + ELSE + "pattern: /\Vpat/ + FOR line LET line @LEGS \EING + IF line ; "" + IF line [ -1 : " + LET line line ] -1 + FI + trymatch #<line pat#> + NEXT line + FI + FI