comparison 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
comparison
equal deleted inserted replaced
4222:b0f3e267bb1e 4223:ac0403686959
1 #!../ploki
2 REM regular expression tester
3 NEXT main:
4
5 FOR trymatch
6 LEET txt \@ . 0
7 LEET pat \@ . 1
8 LEET ms txt ~ pat
9 IF ms
10 LET me \_
11 "matched at pos \Vms [\V(txt ] ms)\033[1m\V(txt [ ms ] (me - ms))\033[m\V(txt [ me ] 255)]
12 IF @DEF-P \0
13 WUNT "\\0<\V@-0, \V@+0>: \V\0
14 FI
15 IF @DEF-P \1
16 WUNT "\\1<\V@-1, \V@+1>: \V\1
17 FI
18 IF @DEF-P \2
19 WUNT "\\2<\V@-2, \V@+2>: \V\2
20 FI
21 ELSE
22 WUNT "no match
23 FI
24 KTHX
25
26 FOR main:
27 IF \ARG < 2
28 WUNT "Usage: \V\ARG:0 PATTERN [FILE]
29 END @NEG1
30 FI
31 LET pat \ARG:1
32 IF \ARG > 2
33 LET fh @LAPERS \ARG:2
34 IF @NOT fh
35 WUNT \AUSG \ARG:0_": "_\ARG:2_": "_\!_"
36 END @NEG1
37 FI
38 FOR buf LET s fh . 4096
39 IF s ; ""
40 #! "appending [\V@TYPE OFs:\V@LENGTHs]\Vs to \Vtxt
41 LET txt _= s
42 NEXT buf
43 FI
44 #! "matching /\Vpat/ against \Vtxt
45 trymatch #<txt pat#>
46 ELSE
47 "pattern: /\Vpat/
48 FOR line LET line @LEGS \EING
49 IF line ; ""
50 IF line [ -1 : "
51 LET line line ] -1
52 FI
53 trymatch #<line pat#>
54 NEXT line
55 FI
56 FI