summaryrefslogtreecommitdiff
path: root/support/lsedit/review/pattern.tpu
blob: 434f3bcfcd759874167210cbdd4e581792280de9 (plain)
ofshex dumpascii
0000 03 00 21 2b 2b 00 43 00 21 20 20 20 42 75 69 6c 64 20 61 20 70 61 74 74 65 72 6e 20 66 6f 72 20 ..!++.C.!...Build.a.pattern.for.
0020 70 61 74 74 65 72 6e 20 73 65 61 72 63 68 69 6e 67 2e 20 20 50 61 74 74 65 72 6e 20 63 68 61 72 pattern.searching...Pattern.char
0040 61 63 74 65 72 73 20 61 72 65 3a 00 01 00 21 00 20 00 21 20 20 20 25 09 09 73 69 6e 67 6c 65 2d acters.are:...!...!...%..single-
0060 63 68 61 72 61 63 74 65 72 20 77 69 6c 64 63 61 72 64 3f 00 21 20 20 20 2a 09 09 6d 75 6c 74 69 character.wildcard?.!...*..multi
0080 2d 63 68 61 72 61 63 74 65 72 20 77 69 6c 64 63 61 72 64 2c 20 64 6f 20 6e 6f 74 20 63 72 6f 73 -character.wildcard,.do.not.cros
00a0 73 20 72 65 63 6f 72 64 20 62 6f 75 6e 64 61 72 69 65 73 00 39 00 21 20 20 20 2a 2a 09 09 6d 75 s.record.boundaries.9.!...**..mu
00c0 6c 74 69 2d 63 68 61 72 61 63 74 65 72 20 77 69 6c 64 63 61 72 64 2c 20 63 72 6f 73 73 20 72 65 lti-character.wildcard,.cross.re
00e0 63 6f 72 64 20 62 6f 75 6e 64 61 72 69 65 73 00 14 00 21 20 20 20 5c 2a 09 09 6c 69 74 65 72 61 cord.boundaries...!...\*..litera
0100 6c 20 73 74 61 72 17 00 21 20 20 20 5c 25 09 09 6c 69 74 65 72 61 6c 20 70 65 72 63 65 6e 74 00 l.star..!...\%..literal.percent.
0120 1a 00 21 20 20 20 5c 5c 09 09 6c 69 74 65 72 61 6c 20 62 61 63 6b 2d 73 6c 61 73 68 19 00 21 20 ..!...\\..literal.back-slash..!.
0140 20 20 5c 3c 09 09 42 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 00 13 00 21 20 20 20 5c 3e ..\<..Beginning.of.line...!...\>
0160 09 09 45 6e 64 20 6f 66 20 6c 69 6e 65 00 33 00 21 20 20 20 5c 57 09 09 77 68 69 74 65 73 70 61 ..End.of.line.3.!...\W..whitespa
0180 63 65 20 28 69 6e 63 6c 75 64 69 6e 67 20 75 70 20 74 6f 20 6f 6e 65 20 6c 69 6e 65 2d 62 72 65 ce.(including.up.to.one.line-bre
01a0 61 6b 29 00 01 00 21 00 46 00 21 09 41 6e 64 20 6e 6f 77 20 6d 61 6e 79 20 6f 74 68 65 72 73 2c ak)...!.F.!.And.now.many.others,
01c0 20 6c 69 73 74 65 64 20 69 6e 20 74 68 65 20 74 61 62 6c 65 20 62 65 6c 6f 77 20 28 69 6e 20 74 .listed.in.the.table.below.(in.t
01e0 68 65 20 70 61 63 6b 61 67 65 20 69 6e 69 74 29 04 00 21 20 20 20 4e 00 21 20 20 20 4c 53 49 5f he.package.init)..!...N.!...LSI_
0200 42 55 49 4c 44 5f 50 41 54 54 45 52 4e 20 74 61 6b 65 73 20 61 20 73 65 61 72 63 68 20 73 74 72 BUILD_PATTERN.takes.a.search.str
0220 69 6e 67 20 69 6e 20 49 4e 50 55 54 5f 53 54 52 49 4e 47 20 61 6e 64 20 72 65 74 75 72 6e 73 20 ing.in.INPUT_STRING.and.returns.
0240 65 69 74 68 65 72 4b 00 21 20 20 20 61 20 73 65 61 72 63 68 20 73 74 72 69 6e 67 20 6f 72 20 61 eitherK.!...a.search.string.or.a
0260 20 70 61 74 74 65 72 6e 20 73 74 72 69 6e 67 20 69 6e 20 52 45 53 55 4c 54 5f 53 54 52 49 4e 47 .pattern.string.in.RESULT_STRING
0280 2e 20 20 49 66 20 52 45 53 55 4c 54 5f 53 54 52 49 4e 47 00 4c 00 21 20 20 20 69 73 20 61 20 73 ...If.RESULT_STRING.L.!...is.a.s
02a0 65 61 72 63 68 20 73 74 72 69 6e 67 2c 20 4c 53 49 5f 42 55 49 4c 44 5f 50 41 54 54 45 52 4e 20 earch.string,.LSI_BUILD_PATTERN.
02c0 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 77 6f 72 64 20 53 54 52 49 4e 47 2e 20 20 49 66 20 returns.the.keyword.STRING...If.
02e0 69 74 47 00 21 20 20 20 69 73 20 61 20 70 61 74 74 65 72 6e 20 73 74 72 69 6e 67 2c 20 4c 53 49 itG.!...is.a.pattern.string,.LSI
0300 5f 42 55 49 4c 44 5f 50 41 54 54 45 52 4e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 77 6f _BUILD_PATTERN.returns.the.keywo
0320 72 64 20 50 41 54 54 45 52 4e 2e 00 02 00 21 2d 3b 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f rd.PATTERN....!-;.procedure.lsi_
0340 62 75 69 6c 64 5f 70 61 74 74 65 72 6e 09 09 21 20 42 75 69 6c 64 20 61 20 70 61 74 74 65 72 6e build_pattern..!.Build.a.pattern
0360 20 66 6f 72 20 77 69 6c 64 63 61 72 64 00 37 00 20 20 20 20 28 69 6e 70 75 74 5f 73 74 72 69 6e .for.wildcard.7.....(input_strin
0380 67 2c 20 72 65 73 75 6c 74 5f 73 74 72 69 6e 67 29 21 2c 20 6c 65 61 64 69 6e 67 5f 77 68 69 74 g,.result_string)!,.leading_whit
03a0 65 73 70 61 63 65 29 00 00 00 17 00 6c 6f 63 61 6c 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 espace).....local...pattern_stri
03c0 6e 67 2c 00 0c 00 09 74 68 65 5f 73 74 72 69 6e 67 2c 03 00 09 69 2c 00 03 00 09 6a 2c 00 0a 00 ng,....the_string,...i,....j,...
03e0 09 74 68 65 5f 63 68 61 72 2c 0c 00 09 73 74 61 72 74 5f 63 68 61 72 2c 0a 00 09 65 6e 64 5f 63 .the_char,...start_char,...end_c
0400 68 61 72 2c 0a 00 09 74 68 65 5f 63 6f 64 65 2c 0b 00 09 70 75 73 68 5f 62 61 63 6b 2c 00 0e 00 har,...the_code,...push_back,...
0420 09 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 0d 00 09 74 68 65 5f 70 61 74 74 65 72 6e 2c 00 0d 00 .the_function,...the_pattern,...
0440 09 73 75 62 5f 70 61 74 74 65 72 6e 2c 00 0b 00 09 69 73 5f 64 6f 75 62 6c 65 2c 00 06 00 09 74 .sub_pattern,....is_double,....t
0460 65 6d 70 2c 08 00 09 73 74 61 74 75 73 2c 0c 00 09 63 6f 64 65 5f 71 75 6f 74 65 2c 0c 00 09 63 emp,...status,...code_quote,...c
0480 6f 64 65 5f 63 6c 6f 73 65 3b 00 00 1d 00 21 6c 65 61 64 69 6e 67 5f 77 68 69 74 65 73 70 61 63 ode_close;....!leading_whitespac
04a0 65 20 3a 3d 20 46 41 4c 53 45 3b 00 34 00 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 4c 53 49 5f 58 e.:=.FALSE;.4.IF.GET_INFO.(LSI_X
04c0 5f 57 49 4c 44 5f 46 55 4e 43 54 49 4f 4e 53 2c 20 27 74 79 70 65 27 29 20 3c 3e 20 53 54 52 49 _WILD_FUNCTIONS,.'type').<>.STRI
04e0 4e 47 04 00 54 48 45 4e 1c 00 20 20 20 6c 73 69 5f 77 69 6c 64 63 61 72 64 5f 6d 6f 64 75 6c 65 NG..THEN.....lsi_wildcard_module
0500 5f 69 6e 69 74 3b 0d 00 20 20 20 54 52 55 45 20 3a 3d 20 31 3b 00 0d 00 20 20 20 46 41 4c 53 45 _init;.....TRUE.:=.1;......FALSE
0520 20 3a 3d 20 30 00 06 00 45 4e 44 49 46 3b 20 00 63 6f 64 65 5f 71 75 6f 74 65 20 3a 3d 20 6c 73 .:=.0...ENDIF;..code_quote.:=.ls
0540 69 5f 77 69 6c 64 5f 63 6f 64 65 20 28 31 29 3b 20 00 63 6f 64 65 5f 63 6c 6f 73 65 20 3a 3d 20 i_wild_code.(1);..code_close.:=.
0560 6c 73 69 5f 77 69 6c 64 5f 63 6f 64 65 20 28 38 29 3b 00 00 15 00 70 61 74 74 65 72 6e 5f 73 74 lsi_wild_code.(8);....pattern_st
0580 72 69 6e 67 20 3a 3d 20 22 22 3b 00 11 00 74 68 65 5f 73 74 72 69 6e 67 20 3a 3d 20 22 22 3b 00 ring.:=."";...the_string.:=."";.
05a0 07 00 69 20 3a 3d 20 31 3b 00 13 00 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 22 22 3b 00 ..i.:=.1;...the_function.:=."";.
05c0 12 00 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 22 3b 12 00 73 75 62 5f 70 61 74 74 65 72 ..the_pattern.:=."";..sub_patter
05e0 6e 20 3a 3d 20 22 22 3b 02 00 21 2b 2e 00 21 20 20 20 50 72 6f 63 65 73 73 20 65 61 63 68 20 63 n.:=."";..!+..!...Process.each.c
0600 68 61 72 61 63 74 65 72 20 69 6e 20 74 68 65 20 69 6e 70 75 74 20 73 74 72 69 6e 67 02 00 21 2d haracter.in.the.input.string..!-
0620 04 00 6c 6f 6f 70 14 00 20 20 20 20 69 66 20 70 75 73 68 5f 62 61 63 6b 20 3e 20 31 08 00 20 20 ..loop......if.push_back.>.1....
0640 20 20 74 68 65 6e 17 00 09 74 68 65 5f 63 6f 64 65 20 3a 3d 20 70 75 73 68 5f 62 61 63 6b 3b 00 ..then...the_code.:=.push_back;.
0660 10 00 09 70 75 73 68 5f 62 61 63 6b 20 3a 3d 20 30 3b 08 00 20 20 20 20 65 6c 73 65 3c 00 09 74 ...push_back.:=.0;......else<..t
0680 68 65 5f 63 6f 64 65 20 3a 3d 20 6c 73 69 5f 67 65 74 5f 77 69 6c 64 5f 74 6f 6b 65 6e 20 28 74 he_code.:=.lsi_get_wild_token.(t
06a0 68 65 5f 63 68 61 72 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 3b 0a 00 20 20 20 20 he_char,.input_string,.i);......
06c0 65 6e 64 69 66 3b 18 00 20 20 20 20 65 78 69 74 69 66 20 74 68 65 5f 63 6f 64 65 20 3c 20 30 3b endif;......exitif.the_code.<.0;
06e0 1e 00 20 20 20 20 63 61 73 65 20 74 68 65 5f 63 6f 64 65 20 66 72 6f 6d 20 30 20 54 4f 20 32 39 ......case.the_code.from.0.TO.29
0700 1e 00 09 5b 30 5d 3a 09 09 09 09 09 21 20 4f 72 64 69 6e 61 72 79 20 63 68 61 72 61 63 74 65 72 ...[0]:.....!.Ordinary.character
0720 16 00 09 20 20 20 20 69 66 20 74 68 65 5f 63 68 61 72 20 3d 20 22 27 22 09 00 09 20 20 20 20 74 .......if.the_char.=."'".......t
0740 68 65 6e 00 29 00 09 09 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 hen.)...pattern_string.:=.patter
0760 6e 5f 73 74 72 69 6e 67 20 2b 20 22 27 22 3b 00 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 31 00 n_string.+."'";........endif;.1.
0780 09 20 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 6e 5f 73 .....pattern_string.:=.pattern_s
07a0 74 72 69 6e 67 20 2b 20 74 68 65 5f 63 68 61 72 3b 00 29 00 09 20 20 20 20 74 68 65 5f 73 74 72 tring.+.the_char;.)......the_str
07c0 69 6e 67 20 3a 3d 20 74 68 65 5f 73 74 72 69 6e 67 20 2b 20 74 68 65 5f 63 68 61 72 3b 00 1e 00 ing.:=.the_string.+.the_char;...
07e0 09 5b 31 5d 3a 09 09 09 09 09 21 20 45 73 63 61 70 65 20 28 61 6e 64 20 71 75 6f 74 65 29 3d 00 .[1]:.....!.Escape.(and.quote)=.
0800 09 20 20 20 20 6d 65 73 73 61 67 65 20 28 66 61 6f 20 28 22 55 6e 72 65 63 6f 67 6e 69 7a 65 64 .....message.(fao.("Unrecognized
0820 20 77 69 6c 64 2d 63 61 72 64 20 66 75 6e 63 74 69 6f 6e 3a 20 21 41 53 21 41 53 22 2c 00 1f 00 .wild-card.function:.!AS!AS",...
0840 09 20 20 20 20 20 20 20 63 6f 64 65 5f 71 75 6f 74 65 2c 20 74 68 65 5f 63 68 61 72 29 29 3b 00 ........code_quote,.the_char));.
0860 12 00 09 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 1b 00 09 5b 32 5d 3a 09 09 09 09 09 .......return.FALSE;...[2]:.....
0880 21 20 53 74 61 72 20 2d 20 57 69 6c 64 63 61 72 64 00 04 00 09 09 21 2b 36 00 09 09 21 20 20 20 !.Star.-.Wildcard.....!+6...!...
08a0 47 65 6e 65 72 61 6c 20 77 69 6c 64 63 61 72 64 2c 20 6e 6f 74 20 63 72 6f 73 73 69 6e 67 20 72 General.wildcard,.not.crossing.r
08c0 65 63 6f 72 64 20 62 6f 75 6e 64 61 72 69 65 73 03 00 09 09 21 00 1b 00 09 09 21 20 20 20 45 61 ecord.boundaries....!.....!...Ea
08e0 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 2a 20 61 6e 64 20 25 00 04 00 09 09 21 2d 3d 00 09 20 20 20 t.following.*.and.%.....!-=.....
0900 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 .status.:=.lsi_do_sub_pattern.(s
0920 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 ub_pattern,.the_function,.......
0940 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 ....pattern_string,...........th
0960 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 e_code);+......if.get_info.(stat
0980 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 us,."type").=.KEYWORD........the
09a0 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 n.....return.status;.......endif
09c0 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 ;..........the_pattern.:=.the_pa
09e0 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 17 00 09 20 20 20 20 73 75 62 5f 70 ttern.+.sub_pattern;.......sub_p
0a00 61 74 74 65 72 6e 20 3a 3d 20 22 22 3b 00 39 00 09 20 20 20 20 69 73 5f 64 6f 75 62 6c 65 20 3a attern.:=."";.9......is_double.:
0a20 3d 20 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f 64 65 20 28 32 2c 20 69 6e 70 75 74 5f 73 74 =.lsi_eat_wild_code.(2,.input_st
0a40 72 69 6e 67 2c 20 69 29 3b 00 04 00 09 09 21 2b 2a 00 09 09 21 20 20 20 55 73 65 20 52 45 4d 41 ring,.i);.....!+*...!...Use.REMA
0a60 49 4e 20 69 66 20 61 74 20 65 6e 64 20 6f 66 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 04 00 09 09 IN.if.at.end.of.input_string....
0a80 21 2d 21 00 09 20 20 20 20 69 66 20 69 20 3e 20 6c 65 6e 67 74 68 20 28 69 6e 70 75 74 5f 73 74 !-!......if.i.>.length.(input_st
0aa0 72 69 6e 67 29 00 09 00 09 20 20 20 20 74 68 65 6e 00 29 00 09 09 74 68 65 5f 70 61 74 74 65 72 ring)........then.)...the_patter
0ac0 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 22 26 20 72 65 6d 61 69 6e 22 00 09 00 n.:=.the_pattern.+."&.remain"...
0ae0 09 20 20 20 20 65 6c 73 65 00 2e 00 09 09 69 66 20 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f .....else.....if.lsi_eat_wild_co
0b00 64 65 20 28 35 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 20 6f 72 2c 00 09 09 20 20 de.(5,.input_string,.i).or,.....
0b20 20 20 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f 64 65 20 28 36 2c 20 69 6e 70 75 74 5f 73 74 ..lsi_eat_wild_code.(6,.input_st
0b40 72 69 6e 67 2c 20 69 29 06 00 09 09 74 68 65 6e 2c 00 09 09 20 20 20 74 68 65 5f 70 61 74 74 65 ring,.i)....then,......the_patte
0b60 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 22 26 20 72 65 6d 61 69 6e 22 06 00 rn.:=.the_pattern.+."&.remain"..
0b80 09 09 65 6c 73 65 09 00 09 09 09 20 20 20 20 21 2b 00 36 00 09 09 09 20 20 20 20 21 20 20 20 55 ..else.........!+.6........!...U
0ba0 73 65 20 74 68 65 20 4d 41 54 43 48 20 62 75 69 6c 74 2d 69 6e 2e 20 20 57 65 20 77 69 6c 6c 20 se.the.MATCH.built-in...We.will.
0bc0 61 63 63 75 6d 75 6c 61 74 65 38 00 09 09 09 20 20 20 20 21 20 20 20 4d 41 54 43 48 20 63 68 61 accumulate8........!...MATCH.cha
0be0 72 61 63 74 65 72 73 20 75 6e 74 69 6c 20 61 6e 6f 74 68 65 72 20 73 70 65 63 69 61 6c 20 6d 61 racters.until.another.special.ma
0c00 72 6b 65 72 1a 00 09 09 09 20 20 20 20 21 20 20 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e rker.........!...is.encountered.
0c20 09 00 09 09 09 20 20 20 20 21 2d 00 12 00 09 09 20 20 20 20 69 66 20 69 73 5f 64 6f 75 62 6c 65 .........!-.........if.is_double
0c40 0a 00 09 09 20 20 20 20 74 68 65 6e 1c 00 09 09 09 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d ........then.....the_function.:=
0c60 20 22 6d 61 74 63 68 6c 22 3b 0a 00 09 09 20 20 20 20 65 6c 73 65 1b 00 09 09 09 74 68 65 5f 66 ."matchl";........else.....the_f
0c80 75 6e 63 74 69 6f 6e 20 3a 3d 20 22 6d 61 74 63 68 22 3b 00 0c 00 09 09 20 20 20 20 65 6e 64 69 unction.:=."match";.........endi
0ca0 66 3b 08 00 09 09 65 6e 64 69 66 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 19 00 09 5b 33 5d f;....endif;.......endif;....[3]
0cc0 3a 09 09 09 09 21 20 50 65 72 63 65 6e 74 20 2d 2d 20 61 72 62 00 04 00 09 09 21 2b 20 00 09 09 :....!.Percent.--.arb.....!+....
0ce0 21 20 20 20 53 69 6e 67 6c 65 2d 63 68 61 72 61 63 74 65 72 20 77 69 6c 64 63 61 72 64 2e 03 00 !...Single-character.wildcard...
0d00 09 09 21 00 26 00 09 09 21 20 20 20 53 74 61 72 74 20 62 79 20 63 6f 75 6e 74 69 6e 67 20 63 6f ..!.&...!...Start.by.counting.co
0d20 6e 73 65 63 75 74 69 76 65 20 25 73 04 00 09 09 21 2d 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 nsecutive.%s....!-=......status.
0d40 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 :=.lsi_do_sub_pattern.(sub_patte
0d60 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 rn,.the_function,...........patt
0d80 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b ern_string,...........the_code);
0da0 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 +......if.get_info.(status,."typ
0dc0 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 e").=.KEYWORD........then.....re
0de0 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 turn.status;.......endif;.......
0e00 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 ...the_pattern.:=.the_pattern.+.
0e20 73 75 62 5f 70 61 74 74 65 72 6e 3b 0c 00 09 20 20 20 20 6a 20 3a 3d 20 31 3b 09 00 09 20 20 20 sub_pattern;.......j.:=.1;......
0e40 20 6c 6f 6f 70 00 34 00 09 09 65 78 69 74 69 66 20 6e 6f 74 20 6c 73 69 5f 65 61 74 5f 77 69 6c .loop.4...exitif.not.lsi_eat_wil
0e60 64 5f 63 6f 64 65 20 28 33 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 3b 0d 00 09 09 d_code.(3,.input_string,.i);....
0e80 6a 20 3a 3d 20 6a 20 2b 20 31 3b 00 0d 00 09 20 20 20 20 65 6e 64 6c 6f 6f 70 3b 00 04 00 09 09 j.:=.j.+.1;........endloop;.....
0ea0 21 2b 1b 00 09 09 21 20 20 20 50 75 74 20 69 74 20 69 6e 20 74 68 65 20 70 61 74 74 65 72 6e 00 !+....!...Put.it.in.the.pattern.
0ec0 04 00 09 09 21 2d 2d 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 ....!--......sub_pattern.:=."&.a
0ee0 72 62 28 22 20 2b 20 73 74 72 20 28 6a 29 20 2b 20 22 29 22 3b 00 11 00 09 5b 34 5d 3a 09 09 09 rb(".+.str.(j).+.")";....[4]:...
0f00 09 09 21 20 53 70 61 63 65 00 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 ..!.Space.=......status.:=.lsi_d
0f20 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f o_sub_pattern.(sub_pattern,.the_
0f40 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 function,...........pattern_stri
0f60 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 ng,...........the_code);+......i
0f80 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 f.get_info.(status,."type").=.KE
0fa0 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 YWORD........then.....return.sta
0fc0 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 tus;.......endif;..........the_p
0fe0 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 attern.:=.the_pattern.+.sub_patt
1000 65 72 6e 3b 20 00 09 20 20 20 20 6c 65 61 64 69 6e 67 5f 77 68 69 74 65 73 70 61 63 65 20 3a 3d ern;.......leading_whitespace.:=
1020 20 54 52 55 45 3b 25 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 6c .TRUE;%......sub_pattern.:=."&.l
1040 73 69 5f 78 5f 77 73 5f 70 61 74 22 3b 00 09 00 09 20 20 20 20 6c 6f 6f 70 00 34 00 09 09 65 78 si_x_ws_pat";........loop.4...ex
1060 69 74 69 66 20 6e 6f 74 20 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f 64 65 20 28 34 2c 20 69 itif.not.lsi_eat_wild_code.(4,.i
1080 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 3b 0d 00 09 20 20 20 20 65 6e 64 6c 6f 6f 70 3b 00 nput_string,.i);.......endloop;.
10a0 1e 00 09 5b 35 5d 3a 09 09 09 21 20 5c 3c 20 42 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 ...[5]:...!.\<.Beginning.of.line
10c0 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 =......status.:=.lsi_do_sub_patt
10e0 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 ern.(sub_pattern,.the_function,.
1100 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 ..........pattern_string,.......
1120 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f ....the_code);+......if.get_info
1140 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 .(status,."type").=.KEYWORD.....
1160 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 ...then.....return.status;......
1180 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 .endif;..........the_pattern.:=.
11a0 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 23 00 09 20 20 20 the_pattern.+.sub_pattern;#.....
11c0 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 6c 69 6e 65 5f 62 65 67 69 6e 22 3b 00 .sub_pattern.:=."&.line_begin";.
11e0 18 00 09 5b 36 5d 3a 09 09 09 21 20 5c 3e 20 45 6e 64 20 6f 66 20 6c 69 6e 65 3d 00 09 20 20 20 ...[6]:...!.\>.End.of.line=.....
1200 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 .status.:=.lsi_do_sub_pattern.(s
1220 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 ub_pattern,.the_function,.......
1240 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 ....pattern_string,...........th
1260 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 e_code);+......if.get_info.(stat
1280 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 us,."type").=.KEYWORD........the
12a0 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 n.....return.status;.......endif
12c0 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 ;..........the_pattern.:=.the_pa
12e0 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 21 00 09 20 20 20 20 73 75 62 5f 70 ttern.+.sub_pattern;!......sub_p
1300 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 6c 69 6e 65 5f 65 6e 64 22 3b 00 19 00 09 5b 37 5d 3a 09 attern.:=."&.line_end";....[7]:.
1320 09 09 21 20 5c 5b 20 53 74 61 72 74 20 6f 66 20 61 6e 79 00 3d 00 09 20 20 20 20 73 74 61 74 75 ..!.\[.Start.of.any.=......statu
1340 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 s.:=.lsi_do_sub_pattern.(sub_pat
1360 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 tern,.the_function,...........pa
1380 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 ttern_string,...........the_code
13a0 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 );+......if.get_info.(status,."t
13c0 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 ype").=.KEYWORD........then.....
13e0 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 return.status;.......endif;.....
1400 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 .....the_pattern.:=.the_pattern.
1420 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 17 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e +.sub_pattern;.......sub_pattern
1440 20 3a 3d 20 22 22 3b 00 1b 00 09 20 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 22 .:=."";........the_function.:=."
1460 61 6e 79 22 3b 00 2f 00 09 20 20 20 20 69 66 20 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f 64 any";./......if.lsi_eat_wild_cod
1480 65 20 28 32 39 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 00 09 00 09 20 20 20 20 74 e.(29,.input_string,.i)........t
14a0 68 65 6e 00 1b 00 09 09 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 22 6e 6f 74 61 6e 79 22 hen.....the_function.:=."notany"
14c0 3b 00 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 0c 00 09 20 20 20 20 6a 20 3a 3d 20 30 3b 09 00 ;........endif;........j.:=.0;..
14e0 09 20 20 20 20 6c 6f 6f 70 00 23 00 09 09 65 78 69 74 69 66 20 69 20 3e 20 6c 65 6e 67 74 68 20 .....loop.#...exitif.i.>.length.
1500 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 29 3b 00 30 00 09 09 65 78 69 74 69 66 20 6c 73 69 5f 65 (input_string);.0...exitif.lsi_e
1520 61 74 5f 77 69 6c 64 5f 63 6f 64 65 20 28 38 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 at_wild_code.(8,.input_string,.i
1540 29 3b 2a 00 09 09 74 68 65 5f 63 68 61 72 20 3a 3d 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f );*...the_char.:=.substr.(input_
1560 73 74 72 69 6e 67 2c 20 69 2c 20 31 29 3b 0d 00 09 09 69 20 3a 3d 20 69 20 2b 20 31 3b 00 0d 00 string,.i,.1);....i.:=.i.+.1;...
1580 09 09 6a 20 3a 3d 20 6a 20 2b 20 31 3b 00 1a 00 09 09 69 66 20 74 68 65 5f 63 68 61 72 20 3d 20 ..j.:=.j.+.1;.....if.the_char.=.
15a0 63 6f 64 65 5f 71 75 6f 74 65 06 00 09 09 74 68 65 6e 2e 00 09 09 20 20 20 20 74 68 65 5f 63 68 code_quote....then........the_ch
15c0 61 72 20 3a 3d 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 2c 20 31 ar.:=.substr.(input_string,.i,.1
15e0 29 3b 11 00 09 09 20 20 20 20 69 20 3a 3d 20 69 20 2b 20 31 3b 00 08 00 09 09 65 6e 64 69 66 3b );........i.:=.i.+.1;.....endif;
1600 21 00 09 09 69 66 20 28 74 68 65 5f 63 68 61 72 20 3d 20 22 2d 22 29 20 61 6e 64 20 28 6a 20 3e !...if.(the_char.=."-").and.(j.>
1620 20 31 29 00 06 00 09 09 74 68 65 6e 2f 00 09 09 20 20 20 20 69 66 20 6c 73 69 5f 65 61 74 5f 77 .1).....then/.......if.lsi_eat_w
1640 69 6c 64 5f 63 6f 64 65 20 28 38 2c 20 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 00 0a 00 ild_code.(8,.input_string,.i)...
1660 09 09 20 20 20 20 74 68 65 6e 2f 00 09 09 09 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d ......then/....pattern_string.:=
1680 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 2b 20 74 68 65 5f 63 68 61 72 3b 00 0c 00 09 09 .pattern_string.+.the_char;.....
16a0 09 65 78 69 74 69 66 20 31 3b 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 2d 00 09 09 20 20 20 20 .exitif.1;........endif;-.......
16c0 6c 73 69 5f 65 61 74 5f 77 69 6c 64 5f 63 6f 64 65 20 28 31 2c 20 69 6e 70 75 74 5f 73 74 72 69 lsi_eat_wild_code.(1,.input_stri
16e0 6e 67 2c 20 69 29 3b 00 2b 00 09 09 20 20 20 20 73 74 61 72 74 5f 63 68 61 72 20 3a 3d 20 73 75 ng,.i);.+.......start_char.:=.su
1700 62 73 74 72 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 23 00 09 09 09 09 09 20 20 6c bstr.(pattern_string,.#........l
1720 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 2c 20 31 29 3b 00 32 00 09 09 ength.(pattern_string),.1);.2...
1740 20 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 ....pattern_string.:=.substr.(pa
1760 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 31 2c 28 00 09 09 09 09 09 20 20 20 20 20 20 6c 65 6e ttern_string,.1,(............len
1780 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 2d 20 31 29 3b 2e 00 09 09 20 20 gth.(pattern_string).-.1);......
17a0 20 20 65 6e 64 5f 63 68 61 72 20 3a 3d 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f 73 74 72 69 ..end_char.:=.substr.(input_stri
17c0 6e 67 2c 20 69 2c 20 31 29 3b 11 00 09 09 20 20 20 20 69 20 3a 3d 20 69 20 2b 20 31 3b 00 1e 00 ng,.i,.1);........i.:=.i.+.1;...
17e0 09 09 20 20 20 20 69 66 20 65 6e 64 5f 63 68 61 72 20 3d 20 63 6f 64 65 5f 71 75 6f 74 65 0a 00 ......if.end_char.=.code_quote..
1800 09 09 20 20 20 20 74 68 65 6e 2b 00 09 09 09 65 6e 64 5f 63 68 61 72 20 3a 3d 20 73 75 62 73 74 ......then+....end_char.:=.subst
1820 72 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 2c 20 31 29 3b 00 0e 00 09 09 09 69 20 3a r.(input_string,.i,.1);......i.:
1840 3d 20 69 20 2b 20 31 3b 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 00 00 3d 00 09 09 20 20 20 20 =.i.+.1;........endif;..=.......
1860 73 74 61 72 74 5f 63 68 61 72 20 3a 3d 20 69 6e 64 65 78 20 28 6c 73 69 5f 78 5f 61 6c 6c 5f 63 start_char.:=.index.(lsi_x_all_c
1880 68 61 72 61 63 74 65 72 73 2c 20 73 74 61 72 74 5f 63 68 61 72 29 3b 00 39 00 09 09 20 20 20 20 haracters,.start_char);.9.......
18a0 65 6e 64 5f 63 68 61 72 20 3a 3d 20 69 6e 64 65 78 20 28 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 end_char.:=.index.(lsi_x_all_cha
18c0 72 61 63 74 65 72 73 2c 20 65 6e 64 5f 63 68 61 72 29 3b 00 1e 00 09 09 20 20 20 20 69 66 20 73 racters,.end_char);.........if.s
18e0 74 61 72 74 5f 63 68 61 72 20 3c 20 65 6e 64 5f 63 68 61 72 0a 00 09 09 20 20 20 20 74 68 65 6e tart_char.<.end_char........then
1900 25 00 09 09 09 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 6e 5f 73 %....pattern_string.:=.pattern_s
1920 74 72 69 6e 67 20 2b 00 24 00 09 09 09 09 09 20 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 61 tring.+.$........substr.(lsi_x_a
1940 6c 6c 5f 63 68 61 72 61 63 74 65 72 73 2c 13 00 09 09 09 09 09 09 20 20 73 74 61 72 74 5f 63 68 ll_characters,..........start_ch
1960 61 72 2c 00 25 00 09 09 09 09 09 09 20 20 28 65 6e 64 5f 63 68 61 72 20 2d 20 73 74 61 72 74 5f ar,.%.........(end_char.-.start_
1980 63 68 61 72 29 20 2b 20 31 29 3b 00 0a 00 09 09 20 20 20 20 65 6c 73 65 25 00 09 09 09 70 61 74 char).+.1);.........else%....pat
19a0 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 2b 00 tern_string.:=.pattern_string.+.
19c0 24 00 09 09 09 09 09 20 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 72 61 $........substr.(lsi_x_all_chara
19e0 63 74 65 72 73 2c 11 00 09 09 09 09 09 09 20 20 65 6e 64 5f 63 68 61 72 2c 00 25 00 09 09 09 09 cters,..........end_char,.%.....
1a00 09 09 20 20 28 73 74 61 72 74 5f 63 68 61 72 20 2d 20 65 6e 64 5f 63 68 61 72 29 20 2b 20 31 29 ....(start_char.-.end_char).+.1)
1a20 3b 00 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 0d 00 09 09 20 20 20 20 6a 20 3a 3d 20 30 3b 00 ;.........endif;........j.:=.0;.
1a40 06 00 09 09 65 6c 73 65 32 00 09 09 20 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a ....else2.......pattern_string.:
1a60 3d 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 2b 20 74 68 65 5f 63 68 61 72 3b 08 00 09 09 =.pattern_string.+.the_char;....
1a80 65 6e 64 69 66 3b 0d 00 09 20 20 20 20 65 6e 64 6c 6f 6f 70 3b 00 3d 00 09 20 20 20 20 73 74 61 endif;.......endloop;.=......sta
1aa0 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 tus.:=.lsi_do_sub_pattern.(sub_p
1ac0 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 attern,.the_function,...........
1ae0 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 0b 00 09 09 09 09 09 20 20 20 38 29 3b 00 2b 00 pattern_string,...........8);.+.
1b00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 .....if.get_info.(status,."type"
1b20 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 ).=.KEYWORD........then.....retu
1b40 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 19 00 09 5b 38 5d rn.status;.......endif;......[8]
1b60 3a 09 09 09 21 20 5c 5d 20 63 6c 6f 73 65 20 6f 66 20 61 6e 79 00 33 00 09 20 20 20 20 70 61 74 :...!.\].close.of.any.3......pat
1b80 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 2b 20 tern_string.:=.pattern_string.+.
1ba0 63 6f 64 65 5f 63 6c 6f 73 65 3b 00 2b 00 09 20 20 20 20 74 68 65 5f 73 74 72 69 6e 67 20 3a 3d code_close;.+......the_string.:=
1bc0 20 74 68 65 5f 73 74 72 69 6e 67 20 2b 20 63 6f 64 65 5f 63 6c 6f 73 65 3b 00 22 00 09 5b 39 5d .the_string.+.code_close;."..[9]
1be0 3a 09 09 09 21 20 5c 3a 20 52 65 70 65 61 74 20 28 6d 69 6e 69 6d 75 6d 20 6f 66 20 31 29 19 00 :...!.\:.Repeat.(minimum.of.1)..
1c00 09 20 20 20 20 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 22 22 00 09 00 09 20 20 20 .....if.the_function.=."".......
1c20 20 74 68 65 6e 00 19 00 09 09 69 66 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3c 3e 20 22 .then.....if.pattern_string.<>."
1c40 22 00 06 00 09 09 74 68 65 6e 25 00 09 09 20 20 20 20 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 ".....then%.......temp.:=.substr
1c60 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 24 00 09 09 09 09 20 20 20 20 6c 65 6e 67 .(pattern_string,.$.........leng
1c80 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 2c 20 31 29 3b 32 00 09 09 20 20 20 20 th.(pattern_string),.1);2.......
1ca0 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 pattern_string.:=.substr.(patter
1cc0 6e 5f 73 74 72 69 6e 67 2c 20 31 2c 28 00 09 09 09 09 09 20 20 20 20 20 20 6c 65 6e 67 74 68 20 n_string,.1,(............length.
1ce0 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 2d 20 31 29 3b 3e 00 09 09 20 20 20 20 73 74 (pattern_string).-.1);>.......st
1d00 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f atus.:=.lsi_do_sub_pattern.(sub_
1d20 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 23 00 09 09 09 09 09 09 20 20 pattern,.the_function,#.........
1d40 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 74 68 65 5f 63 6f 64 65 29 3b 00 2c 00 09 09 .pattern_string,.the_code);.,...
1d60 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 ....if.get_info.(status,."type")
1d80 20 3d 20 4b 45 59 57 4f 52 44 0a 00 09 09 20 20 20 20 74 68 65 6e 11 00 09 09 09 72 65 74 75 72 .=.KEYWORD........then.....retur
1da0 6e 20 73 74 61 74 75 73 3b 00 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 00 00 2f 00 09 09 20 20 n.status;.........endif;../.....
1dc0 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 ..the_pattern.:=.the_pattern.+.s
1de0 75 62 5f 70 61 74 74 65 72 6e 3b 00 2e 00 09 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 ub_pattern;.........sub_pattern.
1e00 3a 3d 20 22 26 20 73 70 61 6e 28 27 22 20 2b 20 74 65 6d 70 20 2b 20 22 27 29 22 3b 06 00 09 09 :=."&.span('".+.temp.+."')";....
1e20 65 6c 73 65 2c 00 09 09 20 20 20 20 69 66 20 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 74 65 else,.......if.substr.(sub_patte
1e40 72 6e 2c 20 33 2c 20 34 29 20 3d 20 22 61 6e 79 28 22 0a 00 09 09 20 20 20 20 74 68 65 6e 2e 00 rn,.3,.4).=."any("........then..
1e60 09 09 09 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 ...sub_pattern.:=.substr.(sub_pa
1e80 74 74 65 72 6e 2c 20 31 2c 20 32 29 20 2b 14 00 09 09 09 09 20 20 20 20 20 20 20 22 73 70 61 6e ttern,.1,.2).+............."span
1ea0 28 22 20 2b 22 00 09 09 09 09 20 20 20 20 20 20 20 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 (".+"............substr.(sub_pat
1ec0 74 65 72 6e 2c 20 37 2c 22 00 09 09 09 09 09 20 20 20 20 20 20 20 6c 65 6e 67 74 68 20 28 73 75 tern,.7,".............length.(su
1ee0 62 5f 70 61 74 74 65 72 6e 29 29 3b 0a 00 09 09 20 20 20 20 65 6c 73 65 29 00 09 09 09 69 66 20 b_pattern));........else)....if.
1f00 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 33 2c 20 34 29 20 3d 20 22 61 72 substr.(sub_pattern,.3,.4).=."ar
1f20 62 28 22 00 07 00 09 09 09 74 68 65 6e 00 16 00 09 09 09 20 20 20 20 70 75 73 68 5f 62 61 63 6b b("......then..........push_back
1f40 20 3a 3d 20 32 3b 12 00 09 09 09 20 20 20 20 69 20 3a 3d 20 69 20 2d 20 31 3b 07 00 09 09 09 65 .:=.2;.........i.:=.i.-.1;.....e
1f60 6c 73 65 00 30 00 09 09 09 20 20 20 20 69 66 20 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 74 lse.0........if.substr.(sub_patt
1f80 65 72 6e 2c 20 33 2c 20 37 29 20 3d 20 22 6e 6f 74 61 6e 79 28 22 0b 00 09 09 09 20 20 20 20 74 ern,.3,.7).=."notany(".........t
1fa0 68 65 6e 00 2f 00 09 09 09 09 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 62 73 74 72 20 hen./.....sub_pattern.:=.substr.
1fc0 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 31 2c 20 32 29 20 2b 00 15 00 09 09 09 09 09 20 20 20 (sub_pattern,.1,.2).+...........
1fe0 20 20 20 20 22 73 63 61 6e 28 22 20 2b 00 24 00 09 09 09 09 09 20 20 20 20 20 20 20 73 75 62 73 ...."scan(".+.$.............subs
2000 74 72 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 31 30 2c 23 00 09 09 09 09 09 09 20 20 20 20 tr.(sub_pattern,.10,#...........
2020 20 20 20 6c 65 6e 67 74 68 20 28 73 75 62 5f 70 61 74 74 65 72 6e 29 29 3b 00 0b 00 09 09 09 20 ...length.(sub_pattern));.......
2040 20 20 20 65 6c 73 65 00 2e 00 09 09 09 09 6d 65 73 73 61 67 65 20 28 22 49 6d 70 72 6f 70 65 72 ...else.......message.("Improper
2060 20 72 65 70 65 61 74 20 70 61 74 74 65 72 6e 20 75 73 61 67 65 22 29 3b 11 00 09 09 09 09 72 65 .repeat.pattern.usage");......re
2080 74 75 72 6e 20 46 41 4c 53 45 3b 00 0d 00 09 09 09 20 20 20 20 65 6e 64 69 66 3b 00 09 00 09 09 turn.FALSE;..........endif;.....
20a0 09 65 6e 64 69 66 3b 00 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 08 00 09 09 65 6e 64 69 66 3b .endif;.........endif;....endif;
20c0 09 00 09 20 20 20 20 65 6c 73 65 00 1b 00 09 09 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 .......else.....if.the_function.
20e0 3d 20 22 6d 61 74 63 68 22 00 06 00 09 09 74 68 65 6e 24 00 09 09 20 20 20 20 69 66 20 6c 65 6e =."match".....then$.......if.len
2100 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 3e 20 31 0a 00 09 09 20 20 20 20 gth.(pattern_string).>.1........
2120 74 68 65 6e 22 00 09 09 09 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 6e then"....temp.:=.substr.(pattern
2140 5f 73 74 72 69 6e 67 2c 21 00 09 09 09 09 09 6c 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 _string,!......length.(pattern_s
2160 74 72 69 6e 67 29 2c 20 31 29 3b 00 2f 00 09 09 09 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 tring),.1);./....pattern_string.
2180 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 31 2c 00 25 00 :=.substr.(pattern_string,.1,.%.
21a0 09 09 09 09 09 09 20 20 6c 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 ........length.(pattern_string).
21c0 2d 20 31 29 3b 00 2d 00 09 09 09 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f -.1);.-....status.:=.lsi_do_sub_
21e0 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 00 1a 00 09 09 09 09 09 09 20 20 pattern.(sub_pattern,...........
2200 20 20 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 1c 00 09 09 09 09 09 09 20 20 20 20 20 20 .....the_function,..............
2220 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 17 00 09 09 09 09 09 09 20 20 20 20 20 20 20 74 .pattern_string,...............t
2240 68 65 5f 63 6f 64 65 29 3b 00 29 00 09 09 09 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 he_code);.)....if.get_info.(stat
2260 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 07 00 09 09 09 74 68 65 6e 00 us,."type").=.KEYWORD......then.
2280 15 00 09 09 09 20 20 20 20 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 00 09 00 09 09 09 65 6e 64 .........return.status;......end
22a0 69 66 3b 00 00 00 2c 00 09 09 09 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 if;...,....the_pattern.:=.the_pa
22c0 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2b 00 09 09 09 73 75 62 5f 70 61 74 ttern.+.sub_pattern;+....sub_pat
22e0 74 65 72 6e 20 3a 3d 20 22 26 20 73 70 61 6e 28 27 22 20 2b 20 74 65 6d 70 20 2b 20 22 27 29 22 tern.:=."&.span('".+.temp.+."')"
2300 3b 00 0a 00 09 09 20 20 20 20 65 6c 73 65 21 00 09 09 09 69 66 20 6c 65 6e 67 74 68 20 28 70 61 ;.........else!....if.length.(pa
2320 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 3d 20 31 00 07 00 09 09 09 74 68 65 6e 00 26 00 09 09 ttern_string).=.1......then.&...
2340 09 20 20 20 20 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 6e 5f 73 74 72 .....temp.:=.substr.(pattern_str
2360 69 6e 67 2c 25 00 09 09 09 09 09 20 20 20 20 6c 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 ing,%..........length.(pattern_s
2380 74 72 69 6e 67 29 2c 20 31 29 3b 00 31 00 09 09 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c tring),.1);.1........status.:=.l
23a0 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 00 si_do_sub_pattern.(sub_pattern,.
23c0 17 00 09 09 09 09 09 09 09 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 19 00 09 09 09 09 ............the_function,.......
23e0 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 14 00 09 09 09 09 09 09 09 20 ......pattern_string,...........
2400 20 20 74 68 65 5f 63 6f 64 65 29 3b 2d 00 09 09 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f ..the_code);-........if.get_info
2420 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 0b 00 09 09 .(status,."type").=.KEYWORD.....
2440 09 20 20 20 20 74 68 65 6e 00 12 00 09 09 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0d 00 .....then.......return.status;..
2460 09 09 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 30 00 09 09 09 20 20 20 20 74 68 65 5f 70 61 74 .......endif;...0........the_pat
2480 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 tern.:=.the_pattern.+.sub_patter
24a0 6e 3b 36 00 09 09 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 28 73 70 n;6........sub_pattern.:=."&.(sp
24c0 61 6e 28 27 22 20 2b 20 74 65 6d 70 20 2b 20 22 27 29 20 7c 20 27 27 29 22 3b 07 00 09 09 09 65 an('".+.temp.+."').|.'')";.....e
24e0 6c 73 65 00 34 00 09 09 09 20 20 20 20 6d 65 73 73 61 67 65 20 28 22 43 61 6e 6e 6f 74 20 72 65 lse.4........message.("Cannot.re
2500 70 65 61 74 20 61 20 77 69 6c 64 63 61 72 64 20 70 61 74 74 65 72 6e 22 29 3b 14 00 09 09 09 20 peat.a.wildcard.pattern");......
2520 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 09 00 09 09 09 65 6e 64 69 66 3b 00 0c 00 09 09 ...return.FALSE;.....endif;.....
2540 20 20 20 20 65 6e 64 69 66 3b 06 00 09 09 65 6c 73 65 33 00 09 09 20 20 20 20 6d 65 73 73 61 67 ....endif;....else3.......messag
2560 65 20 28 22 43 61 6e 6e 6f 74 20 72 65 70 65 61 74 20 61 20 77 69 6c 64 63 61 72 64 20 70 61 74 e.("Cannot.repeat.a.wildcard.pat
2580 74 65 72 6e 22 29 3b 00 13 00 09 09 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 00 08 00 tern");.........return.FALSE;...
25a0 09 09 65 6e 64 69 66 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 23 00 09 5b 31 30 5d 3a 09 09 ..endif;.......endif;.#..[10]:..
25c0 09 21 20 5c 2e 20 52 65 70 65 61 74 20 28 6d 69 6e 69 6d 75 6d 20 6f 66 20 30 29 00 19 00 09 20 .!.\..Repeat.(minimum.of.0).....
25e0 20 20 20 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 22 22 00 09 00 09 20 20 20 20 74 ...if.the_function.=.""........t
2600 68 65 6e 00 19 00 09 09 69 66 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3c 3e 20 22 22 00 hen.....if.pattern_string.<>."".
2620 06 00 09 09 74 68 65 6e 25 00 09 09 20 20 20 20 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 20 28 ....then%.......temp.:=.substr.(
2640 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 24 00 09 09 09 09 20 20 20 20 6c 65 6e 67 74 68 pattern_string,.$.........length
2660 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 2c 20 31 29 3b 32 00 09 09 20 20 20 20 70 61 .(pattern_string),.1);2.......pa
2680 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 6e 5f ttern_string.:=.substr.(pattern_
26a0 73 74 72 69 6e 67 2c 20 31 2c 28 00 09 09 09 09 09 20 20 20 20 20 20 6c 65 6e 67 74 68 20 28 70 string,.1,(............length.(p
26c0 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 2d 20 31 29 3b 3e 00 09 09 20 20 20 20 73 74 61 74 attern_string).-.1);>.......stat
26e0 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 us.:=.lsi_do_sub_pattern.(sub_pa
2700 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 23 00 09 09 09 09 09 09 20 20 20 70 ttern,.the_function,#..........p
2720 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 74 68 65 5f 63 6f 64 65 29 3b 00 2c 00 09 09 20 20 attern_string,.the_code);.,.....
2740 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d ..if.get_info.(status,."type").=
2760 20 4b 45 59 57 4f 52 44 0a 00 09 09 20 20 20 20 74 68 65 6e 11 00 09 09 09 72 65 74 75 72 6e 20 .KEYWORD........then.....return.
2780 73 74 61 74 75 73 3b 00 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 00 00 2f 00 09 09 20 20 20 20 status;.........endif;../.......
27a0 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 the_pattern.:=.the_pattern.+.sub
27c0 5f 70 61 74 74 65 72 6e 3b 00 35 00 09 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d _pattern;.5.......sub_pattern.:=
27e0 20 22 26 20 28 73 70 61 6e 28 27 22 20 2b 20 74 65 6d 70 20 2b 20 22 27 29 20 7c 20 27 27 29 22 ."&.(span('".+.temp.+."').|.'')"
2800 3b 00 06 00 09 09 65 6c 73 65 2c 00 09 09 20 20 20 20 69 66 20 73 75 62 73 74 72 20 28 73 75 62 ;.....else,.......if.substr.(sub
2820 5f 70 61 74 74 65 72 6e 2c 20 33 2c 20 34 29 20 3d 20 22 61 6e 79 28 22 0a 00 09 09 20 20 20 20 _pattern,.3,.4).=."any("........
2840 74 68 65 6e 2e 00 09 09 09 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 62 73 74 72 20 28 then.....sub_pattern.:=.substr.(
2860 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 31 2c 20 32 29 20 2b 15 00 09 09 09 09 20 20 20 20 20 20 sub_pattern,.1,.2).+............
2880 20 22 28 73 70 61 6e 28 22 20 2b 00 22 00 09 09 09 09 20 20 20 20 20 20 20 73 75 62 73 74 72 20 ."(span(".+."............substr.
28a0 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 37 2c 23 00 09 09 09 09 09 20 20 20 20 20 20 20 6c 65 (sub_pattern,.7,#.............le
28c0 6e 67 74 68 20 28 73 75 62 5f 70 61 74 74 65 72 6e 29 29 20 2b 00 14 00 09 09 09 09 20 20 20 20 ngth.(sub_pattern)).+...........
28e0 20 20 20 22 20 7c 20 27 27 29 22 3b 0a 00 09 09 20 20 20 20 65 6c 73 65 29 00 09 09 09 69 66 20 ...".|.'')";........else)....if.
2900 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 33 2c 20 34 29 20 3d 20 22 61 72 substr.(sub_pattern,.3,.4).=."ar
2920 62 28 22 00 07 00 09 09 09 74 68 65 6e 00 19 00 09 09 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 b("......then..........sub_patte
2940 72 6e 20 3a 3d 20 22 22 3b 00 16 00 09 09 09 20 20 20 20 70 75 73 68 5f 62 61 63 6b 20 3a 3d 20 rn.:=."";..........push_back.:=.
2960 32 3b 12 00 09 09 09 20 20 20 20 69 20 3a 3d 20 69 20 2d 20 31 3b 07 00 09 09 09 65 6c 73 65 00 2;.........i.:=.i.-.1;.....else.
2980 30 00 09 09 09 20 20 20 20 69 66 20 73 75 62 73 74 72 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 0........if.substr.(sub_pattern,
29a0 20 33 2c 20 37 29 20 3d 20 22 6e 6f 74 61 6e 79 28 22 0b 00 09 09 09 20 20 20 20 74 68 65 6e 00 .3,.7).=."notany(".........then.
29c0 2f 00 09 09 09 09 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 62 73 74 72 20 28 73 75 62 /.....sub_pattern.:=.substr.(sub
29e0 5f 70 61 74 74 65 72 6e 2c 20 31 2c 20 32 29 20 2b 00 16 00 09 09 09 09 09 20 20 20 20 20 20 20 _pattern,.1,.2).+...............
2a00 22 28 73 63 61 6e 28 22 20 2b 24 00 09 09 09 09 09 20 20 20 20 20 20 20 73 75 62 73 74 72 20 28 "(scan(".+$.............substr.(
2a20 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 31 30 2c 24 00 09 09 09 09 09 09 20 20 20 20 20 20 20 6c sub_pattern,.10,$..............l
2a40 65 6e 67 74 68 20 28 73 75 62 5f 70 61 74 74 65 72 6e 29 29 20 2b 15 00 09 09 09 09 09 20 20 20 ength.(sub_pattern)).+..........
2a60 20 20 20 20 22 20 7c 20 27 27 29 22 3b 00 0b 00 09 09 09 20 20 20 20 65 6c 73 65 00 31 00 09 09 ....".|.'')";..........else.1...
2a80 09 09 6d 65 73 73 61 67 65 20 28 22 43 61 6e 6e 6f 74 20 72 65 70 65 61 74 20 61 20 77 69 6c 64 ..message.("Cannot.repeat.a.wild
2aa0 63 61 72 64 20 70 61 74 74 65 72 6e 22 29 3b 00 11 00 09 09 09 09 72 65 74 75 72 6e 20 46 41 4c card.pattern");.......return.FAL
2ac0 53 45 3b 00 0d 00 09 09 09 20 20 20 20 65 6e 64 69 66 3b 00 09 00 09 09 09 65 6e 64 69 66 3b 00 SE;..........endif;......endif;.
2ae0 0c 00 09 09 20 20 20 20 65 6e 64 69 66 3b 08 00 09 09 65 6e 64 69 66 3b 09 00 09 20 20 20 20 65 ........endif;....endif;.......e
2b00 6c 73 65 00 1b 00 09 09 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 22 6d 61 74 63 68 lse.....if.the_function.=."match
2b20 22 00 06 00 09 09 74 68 65 6e 24 00 09 09 20 20 20 20 69 66 20 6c 65 6e 67 74 68 20 28 70 61 74 ".....then$.......if.length.(pat
2b40 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 3e 20 31 0a 00 09 09 20 20 20 20 74 68 65 6e 22 00 09 09 tern_string).>.1........then"...
2b60 09 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c .temp.:=.substr.(pattern_string,
2b80 21 00 09 09 09 09 09 6c 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 2c 20 !......length.(pattern_string),.
2ba0 31 29 3b 00 2f 00 09 09 09 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 73 75 62 73 74 1);./....pattern_string.:=.subst
2bc0 72 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 31 2c 00 25 00 09 09 09 09 09 09 20 20 r.(pattern_string,.1,.%.........
2be0 6c 65 6e 67 74 68 20 28 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 29 20 2d 20 31 29 3b 00 2d 00 length.(pattern_string).-.1);.-.
2c00 09 09 09 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 ...status.:=.lsi_do_sub_pattern.
2c20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 00 1a 00 09 09 09 09 09 09 20 20 20 20 20 20 20 74 68 65 (sub_pattern,................the
2c40 5f 66 75 6e 63 74 69 6f 6e 2c 1c 00 09 09 09 09 09 09 20 20 20 20 20 20 20 70 61 74 74 65 72 6e _function,...............pattern
2c60 5f 73 74 72 69 6e 67 2c 17 00 09 09 09 09 09 09 20 20 20 20 20 20 20 74 68 65 5f 63 6f 64 65 29 _string,...............the_code)
2c80 3b 00 29 00 09 09 09 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 ;.)....if.get_info.(status,."typ
2ca0 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 07 00 09 09 09 74 68 65 6e 00 15 00 09 09 09 20 20 20 e").=.KEYWORD......then.........
2cc0 20 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 00 09 00 09 09 09 65 6e 64 69 66 3b 00 00 00 2c 00 .return.status;......endif;...,.
2ce0 09 09 09 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 ...the_pattern.:=.the_pattern.+.
2d00 73 75 62 5f 70 61 74 74 65 72 6e 3b 32 00 09 09 09 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 sub_pattern;2....sub_pattern.:=.
2d20 22 26 20 28 73 70 61 6e 28 27 22 20 2b 20 74 65 6d 70 20 2b 20 22 27 29 20 7c 20 27 27 29 22 3b "&.(span('".+.temp.+."').|.'')";
2d40 0a 00 09 09 20 20 20 20 65 6c 73 65 21 00 09 09 09 69 66 20 6c 65 6e 67 74 68 20 28 70 61 74 74 ........else!....if.length.(patt
2d60 65 72 6e 5f 73 74 72 69 6e 67 29 20 3d 20 31 00 07 00 09 09 09 74 68 65 6e 00 2a 00 09 09 09 20 ern_string).=.1......then.*.....
2d80 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 22 28 22 20 2b 20 74 68 65 5f 66 75 6e ...the_function.:=."(".+.the_fun
2da0 63 74 69 6f 6e 3b 31 00 09 09 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f ction;1........status.:=.lsi_do_
2dc0 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 00 17 00 09 09 09 09 sub_pattern.(sub_pattern,.......
2de0 09 09 09 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 19 00 09 09 09 09 09 09 09 20 20 20 ......the_function,.............
2e00 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 14 00 09 09 09 09 09 09 09 20 20 20 74 68 65 5f pattern_string,.............the_
2e20 63 6f 64 65 29 3b 2d 00 09 09 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 code);-........if.get_info.(stat
2e40 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 0b 00 09 09 09 20 20 20 20 74 us,."type").=.KEYWORD..........t
2e60 68 65 6e 00 12 00 09 09 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0d 00 09 09 09 20 20 20 hen.......return.status;........
2e80 20 65 6e 64 69 66 3b 00 00 00 30 00 09 09 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a .endif;...0........sub_pattern.:
2ea0 3d 20 73 75 62 5f 70 61 74 74 65 72 6e 20 2b 20 22 7c 20 72 65 6d 61 69 6e 29 22 3b 07 00 09 09 =.sub_pattern.+."|.remain)";....
2ec0 09 65 6c 73 65 00 34 00 09 09 09 20 20 20 20 6d 65 73 73 61 67 65 20 28 22 43 61 6e 6e 6f 74 20 .else.4........message.("Cannot.
2ee0 72 65 70 65 61 74 20 61 20 77 69 6c 64 63 61 72 64 20 70 61 74 74 65 72 6e 22 29 3b 14 00 09 09 repeat.a.wildcard.pattern");....
2f00 09 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 09 00 09 09 09 65 6e 64 69 66 3b 00 0c 00 .....return.FALSE;.....endif;...
2f20 09 09 20 20 20 20 65 6e 64 69 66 3b 06 00 09 09 65 6c 73 65 30 00 09 09 20 20 20 20 6d 65 73 73 ......endif;....else0.......mess
2f40 61 67 65 20 28 22 49 6d 70 72 6f 70 65 72 20 72 65 70 65 61 74 20 70 61 74 74 65 72 6e 20 75 73 age.("Improper.repeat.pattern.us
2f60 61 67 65 22 29 3b 13 00 09 09 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 45 3b 00 08 00 09 09 age");........return.FALSE;.....
2f80 65 6e 64 69 66 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 1c 00 09 5b 31 31 5d 3a 09 09 09 09 endif;.......endif;....[11]:....
2fa0 21 20 5c 64 20 44 65 63 69 6d 61 6c 20 64 69 67 69 74 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 !.\d.Decimal.digit=......status.
2fc0 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 :=.lsi_do_sub_pattern.(sub_patte
2fe0 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 rn,.the_function,...........patt
3000 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b ern_string,...........the_code);
3020 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 +......if.get_info.(status,."typ
3040 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 e").=.KEYWORD........then.....re
3060 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 turn.status;.......endif;.......
3080 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 ...the_pattern.:=.the_pattern.+.
30a0 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a sub_pattern;*......sub_pattern.:
30c0 3d 20 22 26 20 61 6e 79 28 27 31 32 33 34 35 36 37 38 39 30 27 29 22 3b 1a 00 09 5b 31 32 5d 3a =."&.any('1234567890')";...[12]:
30e0 09 09 09 09 21 20 5c 6f 20 4f 63 74 61 6c 20 64 69 67 69 74 3d 00 09 20 20 20 20 73 74 61 74 75 ....!.\o.Octal.digit=......statu
3100 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 s.:=.lsi_do_sub_pattern.(sub_pat
3120 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 tern,.the_function,...........pa
3140 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 ttern_string,...........the_code
3160 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 );+......if.get_info.(status,."t
3180 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 ype").=.KEYWORD........then.....
31a0 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 return.status;.......endif;.....
31c0 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 .....the_pattern.:=.the_pattern.
31e0 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 28 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e +.sub_pattern;(......sub_pattern
3200 20 3a 3d 20 22 26 20 61 6e 79 28 27 30 31 32 33 34 35 36 37 27 29 22 3b 18 00 09 5b 31 33 5d 3a .:=."&.any('01234567')";...[13]:
3220 09 09 09 09 21 20 5c 78 20 48 65 78 20 64 69 67 69 74 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 ....!.\x.Hex.digit=......status.
3240 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 :=.lsi_do_sub_pattern.(sub_patte
3260 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 rn,.the_function,...........patt
3280 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b ern_string,...........the_code);
32a0 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 +......if.get_info.(status,."typ
32c0 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 e").=.KEYWORD........then.....re
32e0 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 turn.status;.......endif;.......
3300 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 ...the_pattern.:=.the_pattern.+.
3320 73 75 62 5f 70 61 74 74 65 72 6e 3b 36 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a sub_pattern;6......sub_pattern.:
3340 3d 20 22 26 20 61 6e 79 28 27 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66 41 42 43 44 45 46 =."&.any('1234567890abcdefABCDEF
3360 27 29 22 3b 1e 00 09 5b 31 34 5d 3a 09 09 09 09 21 20 5c 61 20 41 6c 70 68 61 62 65 74 69 63 20 ')";...[14]:....!.\a.Alphabetic.
3380 63 68 61 72 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f char=......status.:=.lsi_do_sub_
33a0 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 pattern.(sub_pattern,.the_functi
33c0 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 on,...........pattern_string,...
33e0 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f ........the_code);+......if.get_
3400 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 info.(status,."type").=.KEYWORD.
3420 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 .......then.....return.status;..
3440 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e .....endif;..........the_pattern
3460 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 .:=.the_pattern.+.sub_pattern;*.
3480 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 78 .....sub_pattern.:=."&.any(lsi_x
34a0 5f 77 69 6c 64 5f 61 29 22 3b 1b 00 09 5b 31 35 5d 3a 09 09 09 09 21 20 5c 6e 20 41 6c 70 68 61 _wild_a)";...[15]:....!.\n.Alpha
34c0 6e 75 6d 65 72 69 63 00 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f numeric.=......status.:=.lsi_do_
34e0 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 sub_pattern.(sub_pattern,.the_fu
3500 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 nction,...........pattern_string
3520 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 ,...........the_code);+......if.
3540 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 get_info.(status,."type").=.KEYW
3560 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 ORD........then.....return.statu
3580 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 s;.......endif;..........the_pat
35a0 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 tern.:=.the_pattern.+.sub_patter
35c0 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c n;*......sub_pattern.:=."&.any(l
35e0 73 69 5f 78 5f 77 69 6c 64 5f 6e 29 22 3b 21 00 09 5b 31 36 5d 3a 09 09 09 09 21 20 5c 73 20 53 si_x_wild_n)";!..[16]:....!.\s.S
3600 79 6d 62 6f 6c 20 63 6f 6e 73 74 69 74 75 65 6e 74 00 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 ymbol.constituent.=......status.
3620 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 :=.lsi_do_sub_pattern.(sub_patte
3640 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 rn,.the_function,...........patt
3660 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b ern_string,...........the_code);
3680 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 +......if.get_info.(status,."typ
36a0 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 e").=.KEYWORD........then.....re
36c0 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 turn.status;.......endif;.......
36e0 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 ...the_pattern.:=.the_pattern.+.
3700 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a sub_pattern;*......sub_pattern.:
3720 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 73 29 22 3b 20 00 09 5b 31 37 5d 3a =."&.any(lsi_x_wild_s)";...[17]:
3740 09 09 09 09 21 20 5c 6c 20 4c 6f 77 65 72 20 63 61 73 65 20 6c 65 74 74 65 72 3d 00 09 20 20 20 ....!.\l.Lower.case.letter=.....
3760 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 .status.:=.lsi_do_sub_pattern.(s
3780 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 ub_pattern,.the_function,.......
37a0 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 ....pattern_string,...........th
37c0 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 e_code);+......if.get_info.(stat
37e0 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 us,."type").=.KEYWORD........the
3800 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 n.....return.status;.......endif
3820 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 ;..........the_pattern.:=.the_pa
3840 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 ttern.+.sub_pattern;*......sub_p
3860 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 58 5f 57 49 4c 44 5f 4c 29 22 3b attern.:=."&.any(lsi_X_WILD_L)";
3880 20 00 09 5b 31 38 5d 3a 09 09 09 09 21 20 5c 75 20 55 70 70 65 72 20 63 61 73 65 20 6c 65 74 74 ...[18]:....!.\u.Upper.case.lett
38a0 65 72 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 er=......status.:=.lsi_do_sub_pa
38c0 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e ttern.(sub_pattern,.the_function
38e0 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 ,...........pattern_string,.....
3900 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e ......the_code);+......if.get_in
3920 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 fo.(status,."type").=.KEYWORD...
3940 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 .....then.....return.status;....
3960 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a ...endif;..........the_pattern.:
3980 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 09 20 =.the_pattern.+.sub_pattern;*...
39a0 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 58 5f 57 ...sub_pattern.:=."&.any(lsi_X_W
39c0 49 4c 44 5f 55 29 22 3b 1f 00 09 5b 31 39 5d 3a 09 09 09 09 21 20 5c 70 20 50 75 6e 63 74 75 61 ILD_U)";...[19]:....!.\p.Punctua
39e0 74 69 6f 6e 20 6d 61 72 6b 00 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 tion.mark.=......status.:=.lsi_d
3a00 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f o_sub_pattern.(sub_pattern,.the_
3a20 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 function,...........pattern_stri
3a40 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 ng,...........the_code);+......i
3a60 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 f.get_info.(status,."type").=.KE
3a80 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 YWORD........then.....return.sta
3aa0 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 tus;.......endif;..........the_p
3ac0 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 attern.:=.the_pattern.+.sub_patt
3ae0 65 72 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 ern;*......sub_pattern.:=."&.any
3b00 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 70 29 22 3b 23 00 09 5b 32 30 5d 3a 09 09 09 09 21 20 5c 66 (lsi_x_wild_p)";#..[20]:....!.\f
3b20 20 46 6f 72 6d 61 74 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 00 3d 00 09 20 20 20 20 73 74 61 .Formatting.character.=......sta
3b40 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 tus.:=.lsi_do_sub_pattern.(sub_p
3b60 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 attern,.the_function,...........
3b80 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f pattern_string,...........the_co
3ba0 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 de);+......if.get_info.(status,.
3bc0 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 "type").=.KEYWORD........then...
3be0 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 ..return.status;.......endif;...
3c00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 .......the_pattern.:=.the_patter
3c20 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2a 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 n.+.sub_pattern;*......sub_patte
3c40 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 29 22 3b 16 00 09 5b rn.:=."&.any(lsi_x_wild_f)";...[
3c60 32 31 5d 3a 09 09 09 09 21 20 5c 5e 20 63 6f 6e 74 72 6f 6c 3d 00 09 20 20 20 20 73 74 61 74 75 21]:....!.\^.control=......statu
3c80 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 s.:=.lsi_do_sub_pattern.(sub_pat
3ca0 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 tern,.the_function,...........pa
3cc0 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 ttern_string,...........the_code
3ce0 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 );+......if.get_info.(status,."t
3d00 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 ype").=.KEYWORD........then.....
3d20 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 return.status;.......endif;.....
3d40 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 .....the_pattern.:=.the_pattern.
3d60 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 30 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e +.sub_pattern;0......sub_pattern
3d80 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 63 6f 6e 74 72 6f 6c 29 22 3b .:=."&.any(lsi_x_wild_control)";
3da0 21 00 09 5b 32 32 5d 3a 09 09 09 09 21 20 5c 2b 20 43 68 61 72 61 63 74 65 72 73 20 31 32 38 2d !..[22]:....!.\+.Characters.128-
3dc0 32 35 35 00 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 255.=......status.:=.lsi_do_sub_
3de0 70 61 74 74 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 pattern.(sub_pattern,.the_functi
3e00 6f 6e 2c 00 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 on,...........pattern_string,...
3e20 09 09 09 09 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f ........the_code);+......if.get_
3e40 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 info.(status,."type").=.KEYWORD.
3e60 09 00 09 20 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 .......then.....return.status;..
3e80 09 20 20 20 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e .....endif;..........the_pattern
3ea0 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 2e 00 .:=.the_pattern.+.sub_pattern;..
3ec0 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 26 20 61 6e 79 28 6c 73 69 5f 78 .....sub_pattern.:=."&.any(lsi_x
3ee0 5f 77 69 6c 64 5f 62 69 74 5f 37 29 22 3b 2f 00 09 5b 32 36 5d 3a 09 09 09 09 21 20 5c 7c 20 50 _wild_bit_7)";/..[26]:....!.\|.P
3f00 72 65 76 69 6f 75 73 20 70 61 74 74 65 72 6e 20 6f 72 20 6e 65 78 74 20 70 61 74 74 65 72 6e 00 revious.pattern.or.next.pattern.
3f20 3d 00 09 20 20 20 20 73 74 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 =......status.:=.lsi_do_sub_patt
3f40 65 72 6e 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 00 ern.(sub_pattern,.the_function,.
3f60 17 00 09 09 09 09 09 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 00 12 00 09 09 09 09 ..........pattern_string,.......
3f80 09 20 20 20 74 68 65 5f 63 6f 64 65 29 3b 2b 00 09 20 20 20 20 69 66 20 67 65 74 5f 69 6e 66 6f ....the_code);+......if.get_info
3fa0 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 57 4f 52 44 00 09 00 09 20 .(status,."type").=.KEYWORD.....
3fc0 20 20 20 74 68 65 6e 00 10 00 09 09 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 0b 00 09 20 20 20 ...then.....return.status;......
3fe0 20 65 6e 64 69 66 3b 00 00 00 2e 00 09 20 20 20 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 .endif;..........the_pattern.:=.
4000 74 68 65 5f 70 61 74 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 17 00 09 20 20 20 the_pattern.+.sub_pattern;......
4020 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 22 7c 22 20 1d 00 09 5b 32 39 5d 3a 09 09 09 09 .sub_pattern.:=."|"....[29]:....
4040 21 20 7e 20 4e 6f 74 20 75 73 65 64 20 69 6e 20 5c 5b 5d 20 33 00 09 20 20 20 20 70 61 74 74 65 !.~.Not.used.in.\[].3......patte
4060 72 6e 5f 73 74 72 69 6e 67 20 3a 3d 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 20 2b 20 63 6f rn_string.:=.pattern_string.+.co
4080 64 65 5f 63 6c 6f 73 65 3b 72 2b 00 09 20 20 20 20 74 68 65 5f 73 74 72 69 6e 67 20 3a 3d 20 74 de_close;r+......the_string.:=.t
40a0 68 65 5f 73 74 72 69 6e 67 20 2b 20 63 6f 64 65 5f 63 6c 6f 73 65 3b 20 0c 00 09 5b 6f 75 74 72 he_string.+.code_close;....[outr
40c0 61 6e 67 65 5d 3a 45 00 09 20 20 20 20 6d 65 73 73 61 67 65 20 28 66 61 6f 28 22 55 6e 72 65 63 ange]:E......message.(fao("Unrec
40e0 6f 67 6e 69 7a 65 64 20 77 69 6c 64 2d 63 61 72 64 20 66 75 6e 63 74 69 6f 6e 3a 20 21 41 53 22 ognized.wild-card.function:.!AS"
4100 2c 20 74 68 65 5f 63 68 61 72 29 29 3b 25 12 00 09 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 53 ,.the_char));%.......return.FALS
4120 45 3b 0b 00 09 5b 69 6e 72 61 6e 67 65 5d 3a 61 46 00 09 20 20 20 20 6d 65 73 73 61 67 65 20 28 E;...[inrange]:aF......message.(
4140 66 61 6f 28 22 55 6e 69 6d 70 6c 69 6d 65 6e 74 65 64 20 77 69 6c 64 2d 63 61 72 64 20 66 75 6e fao("Unimplimented.wild-card.fun
4160 63 74 69 6f 6e 3a 20 21 41 53 22 2c 20 74 68 65 5f 63 68 61 72 29 29 3b 12 00 09 20 20 20 20 72 ction:.!AS",.the_char));.......r
4180 65 74 75 72 6e 20 46 41 4c 53 45 3b 0c 00 20 20 20 20 65 6e 64 63 61 73 65 3b 08 00 65 6e 64 6c eturn.FALSE;......endcase;..endl
41a0 6f 6f 70 3b 02 00 21 2b 2d 00 21 20 20 20 45 6d 70 74 79 20 6f 75 74 20 70 61 74 74 65 72 6e 5f oop;..!+-.!...Empty.out.pattern_
41c0 73 74 72 69 6e 67 20 69 6e 74 6f 20 74 68 65 5f 70 61 74 74 65 72 6e 6c 02 00 21 2d 38 00 73 74 string.into.the_patternl..!-8.st
41e0 61 74 75 73 20 3a 3d 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e 20 28 73 75 62 5f atus.:=.lsi_do_sub_pattern.(sub_
4200 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 2c 24 00 09 09 09 20 20 20 20 20 pattern,.the_function,$.........
4220 20 20 70 61 74 74 65 72 6e 5f 73 74 72 69 6e 67 2c 20 74 68 65 5f 63 6f 64 65 29 3b 26 00 69 66 ..pattern_string,.the_code);&.if
4240 20 67 65 74 5f 69 6e 66 6f 20 28 73 74 61 74 75 73 2c 20 22 74 79 70 65 22 29 20 3d 20 4b 45 59 .get_info.(status,."type").=.KEY
4260 57 4f 52 44 04 00 74 68 65 6e 12 00 20 20 20 20 72 65 74 75 72 6e 20 73 74 61 74 75 73 3b 06 00 WORD..then......return.status;..
4280 65 6e 64 69 66 3b 00 00 29 00 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 74 68 65 5f 70 61 74 endif;..).the_pattern.:=.the_pat
42a0 74 65 72 6e 20 2b 20 73 75 62 5f 70 61 74 74 65 72 6e 3b 55 12 00 73 75 62 5f 70 61 74 74 65 72 tern.+.sub_pattern;U..sub_patter
42c0 6e 20 3a 3d 20 22 22 3b 41 00 74 68 65 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 62 73 74 72 20 n.:=."";A.the_pattern.:=.substr.
42e0 28 74 68 65 5f 70 61 74 74 65 72 6e 2c 20 33 2c 20 6c 65 6e 67 74 68 20 28 74 68 65 5f 70 61 74 (the_pattern,.3,.length.(the_pat
4300 74 65 72 6e 29 20 2d 20 32 29 3b 45 02 00 21 2b 2e 00 21 20 20 20 52 65 74 75 72 6e 20 65 69 74 tern).-.2);E..!+..!...Return.eit
4320 68 65 72 20 61 20 73 74 72 69 6e 67 20 6f 72 20 61 20 70 61 74 74 65 72 6e 20 73 74 72 69 6e 67 her.a.string.or.a.pattern.string
4340 02 00 21 2d 2d 00 21 6d 65 73 73 61 67 65 20 28 66 61 6f 20 28 22 50 61 74 74 65 72 6e 3a 20 21 ..!--.!message.(fao.("Pattern:.!
4360 41 53 22 2c 20 74 68 65 5f 70 61 74 74 65 72 6e 29 29 3b 20 07 00 21 61 62 6f 72 74 3b 72 28 00 AS",.the_pattern));...!abort;r(.
4380 69 66 20 74 68 65 5f 70 61 74 74 65 72 6e 20 3c 3e 20 22 27 22 20 2b 20 74 68 65 5f 73 74 72 69 if.the_pattern.<>."'".+.the_stri
43a0 6e 67 20 2b 20 22 27 22 04 00 74 68 65 6e 21 00 20 20 20 20 72 65 73 75 6c 74 5f 73 74 72 69 6e ng.+."'"..then!.....result_strin
43c0 67 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 72 6e 3b 2c 13 00 20 20 20 20 72 65 74 75 72 6e 20 50 g.:=.the_pattern;,......return.P
43e0 41 54 54 45 52 4e 3b 61 04 00 65 6c 73 65 20 00 20 20 20 20 72 65 73 75 6c 74 5f 73 74 72 69 6e ATTERN;a..else......result_strin
4400 67 20 3a 3d 20 74 68 65 5f 73 74 72 69 6e 67 3b 12 00 20 20 20 20 72 65 74 75 72 6e 20 53 54 52 g.:=.the_string;......return.STR
4420 49 4e 47 3b 06 00 65 6e 64 69 66 3b 00 00 20 00 65 6e 64 70 72 6f 63 65 64 75 72 65 20 21 20 6c ING;..endif;....endprocedure.!.l
4440 73 69 5f 62 75 69 6c 64 5f 70 61 74 74 65 72 6e 01 00 0c 5f 30 00 70 72 6f 63 65 64 75 72 65 20 si_build_pattern..._0.procedure.
4460 6c 73 69 5f 77 69 6c 64 63 61 72 64 5f 6d 6f 64 75 6c 65 5f 69 6e 69 74 09 21 20 4d 6f 64 75 6c lsi_wildcard_module_init.!.Modul
4480 65 20 49 6e 69 74 00 00 0d 00 6c 6f 63 61 6c 20 20 20 74 65 6d 70 3b 77 00 00 1e 00 77 68 69 74 e.Init....local...temp;w....whit
44a0 65 73 70 61 63 65 20 3a 3d 20 27 20 27 20 2b 20 41 53 43 49 49 20 28 39 29 3b 3d 00 6c 73 69 5f espace.:=.'.'.+.ASCII.(9);=.lsi_
44c0 78 5f 77 73 5f 70 61 74 20 3a 3d 20 73 70 61 6e 20 28 77 68 69 74 65 73 70 61 63 65 29 20 7c 20 x_ws_pat.:=.span.(whitespace).|.
44e0 28 28 73 70 61 6e 20 28 77 68 69 74 65 73 70 61 63 65 29 20 7c 20 22 22 29 5f 14 00 09 09 09 09 ((span.(whitespace).|."")_......
4500 09 20 20 20 20 20 26 20 6c 69 6e 65 5f 65 6e 64 26 00 09 09 09 09 09 20 20 20 20 20 26 20 28 73 ......&.line_end&...........&.(s
4520 70 61 6e 20 28 77 68 69 74 65 73 70 61 63 65 29 20 7c 20 22 22 29 29 3b 00 00 43 00 6c 73 69 5f pan.(whitespace).|.""));..C.lsi_
4540 78 5f 77 69 6c 64 5f 66 75 6e 63 74 69 6f 6e 73 20 20 20 20 20 20 20 20 20 20 20 20 3a 3d 20 22 x_wild_functions............:=."
4560 5c 2a 25 5c 5c 5c 5c 5d 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 7e 22 3b 74 \*%\\\\]\\\\\\\\\\\\\\\\\\\\~";t
4580 43 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 73 75 62 5f 66 75 6e 63 74 69 6f 6e 73 20 20 20 20 20 20 C.lsi_x_wild_sub_functions......
45a0 20 20 3a 3d 20 22 5c 5c 5c 77 3c 3e 5b 5c 3a 2e 64 6f 78 61 6e 73 6c 75 70 66 5e 2b 3f 5c 5c 7c ..:=."\\\w<>[\:.doxanslupf^+?\\|
45c0 5c 5c 5c 22 3b 5f 26 00 21 09 09 09 09 20 20 20 20 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e \\\";_&.!........^^^^^^^^^^^^^^^
45e0 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 5e 41 00 21 20 20 31 20 22 5c 22 20 20 49 6e 74 72 6f 64 ^^^^^^^^^^^^^^A.!..1."\"..Introd
4600 75 63 65 72 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c ucer.---------------+|||||||||||
4620 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 73 41 00 21 20 20 32 20 22 2a 22 20 20 57 69 |||||||||||||||||sA.!..2."*"..Wi
4640 6c 64 63 61 72 64 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c ldcard.------------------+||||||
4660 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 20 41 00 21 20 20 33 20 22 25 22 |||||||||||||||||||||.A.!..3."%"
4680 20 20 41 52 42 20 28 70 6c 61 63 65 20 68 6f 6c 64 65 72 29 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c ..ARB.(place.holder)----------+|
46a0 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 3b 41 00 21 20 20 34 |||||||||||||||||||||||||;A.!..4
46c0 20 22 5c 77 22 20 57 68 69 74 65 73 70 61 63 65 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ."\w".Whitespace.---------------
46e0 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 20 41 00 ---+|||||||||||||||||||||||||.A.
4700 21 20 20 35 20 22 5c 3c 22 20 42 4f 4c 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d !..5."\<".BOL.------------------
4720 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c --------+|||||||||||||||||||||||
4740 7c 65 41 00 21 20 20 36 20 22 5c 3e 22 20 45 4f 4c 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |eA.!..6."\>".EOL.--------------
4760 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c -------------+||||||||||||||||||
4780 7c 7c 7c 7c 7c 70 41 00 21 20 20 37 20 22 5c 5b 22 20 41 4e 59 20 28 73 65 74 20 6f 66 20 63 68 |||||pA.!..7."\[".ANY.(set.of.ch
47a0 61 72 61 63 74 65 72 73 29 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c aracters)---------+|||||||||||||
47c0 7c 7c 7c 7c 7c 7c 7c 7c 7c 65 41 00 21 20 20 38 20 22 5d 22 20 20 43 6c 6f 73 65 20 41 4e 59 20 |||||||||eA.!..8."]"..Close.ANY.
47e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c -----------------------+||||||||
4800 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 28 41 00 21 20 20 39 20 22 5c 3a 22 20 52 45 50 45 41 54 |||||||||||||(A.!..9."\:".REPEAT
4820 20 28 61 74 20 6c 65 61 73 74 20 31 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c .(at.least.1).--------------+|||
4840 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 65 41 00 21 20 31 30 20 22 5c 2e 22 20 52 45 |||||||||||||||||eA.!.10."\.".RE
4860 50 45 41 54 20 28 7a 65 72 6f 20 6f 72 20 6d 6f 72 65 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d PEAT.(zero.or.more).------------
4880 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 09 41 00 21 20 31 31 20 22 5c 64 -+|||||||||||||||||||.A.!.11."\d
48a0 22 20 44 65 63 69 6d 61 6c 20 64 69 67 69 74 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ".Decimal.digit.----------------
48c0 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 09 41 00 21 20 31 32 ------+||||||||||||||||||.A.!.12
48e0 20 22 5c 6f 22 20 4f 63 74 61 6c 20 64 69 67 69 74 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ."\o".Octal.digit.--------------
4900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 20 41 00 -----------+|||||||||||||||||.A.
4920 21 20 31 33 20 22 5c 68 22 20 48 65 78 20 64 69 67 69 74 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d !.13."\h".Hex.digit.------------
4940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c ----------------+|||||||||||||||
4960 7c 5f 41 00 21 20 31 34 20 22 5c 61 22 20 41 6c 70 68 61 62 65 74 69 63 20 2d 2d 2d 2d 2d 2d 2d |_A.!.14."\a".Alphabetic.-------
4980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c ---------------------+||||||||||
49a0 7c 7c 7c 7c 7c 09 41 00 21 20 31 35 20 22 5c 6e 22 20 41 6c 70 68 61 6e 75 6d 65 72 69 63 20 2d |||||.A.!.15."\n".Alphanumeric.-
49c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c --------------------------+|||||
49e0 7c 7c 7c 7c 7c 7c 7c 7c 7c 75 41 00 21 20 31 36 20 22 5c 73 22 20 53 79 6d 62 6f 6c 20 63 6f 6e |||||||||uA.!.16."\s".Symbol.con
4a00 73 74 69 74 75 65 6e 74 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b stituent.----------------------+
4a20 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 64 41 00 21 20 31 37 20 22 5c 6c 22 20 4c 6f 77 65 72 20 |||||||||||||dA.!.17."\l".Lower.
4a40 63 61 73 65 20 6c 65 74 74 65 72 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d case.letter.--------------------
4a60 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 6e 41 00 21 20 31 38 20 22 5c 75 22 20 55 70 ----+||||||||||||nA.!.18."\u".Up
4a80 70 65 72 20 63 61 73 65 20 6c 65 74 74 65 72 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d per.case.letter.----------------
4aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 09 41 00 21 20 31 39 20 22 5c 70 ---------+|||||||||||.A.!.19."\p
4ac0 22 20 50 75 6e 63 74 75 61 74 69 6f 6e 20 63 68 61 72 61 63 74 65 72 2d 2d 2d 2d 2d 2d 2d 2d 2d ".Punctuation.character---------
4ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 7c 77 41 00 21 20 32 30 --------------+||||||||||wA.!.20
4b00 20 22 5c 66 22 20 46 6f 72 6d 61 74 74 69 6e 67 20 63 68 61 72 61 63 74 65 72 2d 2d 2d 2d 2d 2d ."\f".Formatting.character------
4b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c 7c 7c 5f 41 00 -------------------+|||||||||_A.
4b40 21 20 32 31 20 22 5c 5e 22 20 43 6f 6e 74 72 6f 6c 20 28 43 30 20 6f 72 20 43 31 29 20 63 68 61 !.21."\^".Control.(C0.or.C1).cha
4b60 72 61 63 74 65 72 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 7c 7c racter------------------+|||||||
4b80 7c 09 41 00 21 20 32 32 20 22 5c 2b 22 20 41 6e 79 20 63 68 61 72 61 63 74 65 72 20 77 69 74 68 |.A.!.22."\+".Any.character.with
4ba0 20 62 69 74 20 37 20 73 65 74 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c .bit.7.set-------------------+||
4bc0 7c 7c 7c 7c 7c 75 41 00 21 20 32 33 20 22 5c 3f 22 20 41 6e 79 20 63 68 61 72 61 63 74 65 72 20 |||||uA.!.23."\?".Any.character.
4be0 6f 72 20 42 4f 4c 2c 20 45 4f 4c 20 28 42 4f 46 2c 20 26 20 45 4f 46 29 2d 2d 2d 2d 2d 2d 2d 2d or.BOL,.EOL.(BOF,.&.EOF)--------
4c00 2d 2d 2b 7c 7c 7c 7c 7c 7c 20 41 00 21 20 32 34 20 22 5c 28 22 20 4f 70 65 6e 20 50 61 72 65 6e --+||||||.A.!.24."\(".Open.Paren
4c20 74 68 65 73 69 73 20 66 6f 72 20 67 72 6f 75 70 69 6e 67 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d thesis.for.grouping.------------
4c40 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 7c 00 41 00 21 20 32 35 20 22 5c 29 22 20 43 6c 6f 73 65 20 -------+|||||.A.!.25."\)".Close.
4c60 50 61 72 65 6e 74 65 73 69 73 20 66 6f 72 20 67 72 6f 75 70 69 6e 67 20 2d 2d 2d 2d 2d 2d 2d 2d Parentesis.for.grouping.--------
4c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 7c 22 41 00 21 20 32 36 20 22 5c 7c 22 20 50 72 ------------+||||"A.!.26."\|".Pr
4ca0 65 76 69 6f 75 73 20 70 61 74 74 65 72 6e 20 6f 72 20 6e 65 78 74 20 70 61 74 74 65 72 6e 20 2d evious.pattern.or.next.pattern.-
4cc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 7c 00 41 00 21 20 32 37 20 22 5c 62 -----------------+|||.A.!.27."\b
4ce0 22 20 42 6f 74 74 6f 6d 20 6f 66 20 66 69 6c 65 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ".Bottom.of.file.---------------
4d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 7c 74 41 00 21 20 32 38 ----------------------+||tA.!.28
4d20 20 22 5c 74 22 20 54 6f 70 20 6f 66 20 66 69 6c 65 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ."\t".Top.of.file.--------------
4d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 7c 74 41 00 ---------------------------+|tA.
4d60 21 20 32 39 20 22 7e 22 20 20 4e 6f 74 20 28 75 73 65 64 20 69 6e 20 5c 5b 2e 2e 2e 5d 29 20 2d !.29."~"..Not.(used.in.\[...]).-
4d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
4da0 2b 00 00 00 2c 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 61 20 3a 3d 20 22 61 62 63 64 65 66 67 68 69 +...,.lsi_x_wild_a.:=."abcdefghi
4dc0 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22 21 00 09 09 20 2b 20 22 41 42 43 44 45 46 jklmnopqrstuvwxyz"!....+."ABCDEF
4de0 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 22 64 1b 00 21 25 49 46 20 6e 6f 74 GHIJKLMNOPQRSTUVWXYZ"d..!%IF.not
4e00 20 65 76 65 24 78 5f 6f 70 74 69 6f 6e 5f 32 62 79 74 65 68 06 00 21 25 54 48 45 4e 24 00 09 09 .eve$x_option_2byteh..!%THEN$...
4e20 20 2b 20 22 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc .+."............................
4e40 fd 22 25 00 09 09 20 2b 20 22 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d1 d2 d3 d4 d5 d6 ."%....+."......................
4e60 d7 d8 d9 da db dc dd df 22 2c 07 00 21 25 45 4e 44 49 46 72 04 00 09 09 20 3b 2c 00 6c 73 69 5f ........",..!%ENDIFr.....;,.lsi_
4e80 78 5f 77 69 6c 64 5f 6c 20 3a 3d 20 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 x_wild_l.:=."abcdefghijklmnopqrs
4ea0 74 75 76 77 78 79 7a 22 1b 00 21 25 49 46 20 6e 6f 74 20 65 76 65 24 78 5f 6f 70 74 69 6f 6e 5f tuvwxyz"..!%IF.not.eve$x_option_
4ec0 32 62 79 74 65 2d 06 00 21 25 54 48 45 4e 25 00 09 09 20 2b 20 22 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 2byte-..!%THEN%....+."..........
4ee0 ea eb ec ed ee ef f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd df 22 00 07 00 21 25 45 4e 44 49 46 09 ...................."...!%ENDIF.
4f00 04 00 09 09 20 3b 2c 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 75 20 3a 3d 20 22 41 42 43 44 45 46 47 .....;,.lsi_x_wild_u.:=."ABCDEFG
4f20 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 22 1b 00 21 25 49 46 20 6e 6f 74 20 65 HIJKLMNOPQRSTUVWXYZ"..!%IF.not.e
4f40 76 65 24 78 5f 6f 70 74 69 6f 6e 5f 32 62 79 74 65 20 06 00 21 25 54 48 45 4e 24 00 09 09 20 2b ve$x_option_2byte...!%THEN$....+
4f60 20 22 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd 22 ."............................."
4f80 07 00 21 25 45 4e 44 49 46 6f 04 00 09 09 20 3b 2c 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 73 20 3a ..!%ENDIFo.....;,.lsi_x_wild_s.:
4fa0 3d 20 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22 2d 00 =."abcdefghijklmnopqrstuvwxyz"-.
4fc0 09 09 2b 20 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 31 ..+."ABCDEFGHIJKLMNOPQRSTUVWXYZ1
4fe0 32 33 34 35 36 37 38 39 30 24 5f 22 3b 5f 2c 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 6e 20 3a 3d 20 234567890$_";_,.lsi_x_wild_n.:=.
5000 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22 2b 00 09 09 "abcdefghijklmnopqrstuvwxyz"+...
5020 2b 20 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 31 32 33 +."ABCDEFGHIJKLMNOPQRSTUVWXYZ123
5040 34 35 36 37 38 39 30 22 3b 61 34 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 70 20 3a 3d 20 22 20 21 22 4567890";a4.lsi_x_wild_p.:=.".!"
5060 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 22 "#$%&'()*+,-./0123456789:;<=>?@"
5080 11 00 09 09 20 2b 20 22 5b 5c 5d 5e 5f 60 7b 7c 7d 7e 22 20 1b 00 21 25 49 46 20 6e 6f 74 20 65 .....+."[\]^_`{|}~"...!%IF.not.e
50a0 76 65 24 78 5f 6f 70 74 69 6f 6e 5f 32 62 79 74 65 67 06 00 21 25 54 48 45 4e 1d 00 09 09 20 2b ve$x_option_2byteg..!%THEN.....+
50c0 20 22 a1 a2 a3 a5 a7 a8 a9 aa ab b0 b1 b2 b3 b5 b6 b7 b9 ba bb bc bd bf 22 75 07 00 21 25 45 4e ."......................"u..!%EN
50e0 44 49 46 20 04 00 09 09 20 3b 34 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 20 3a 3d 20 61 73 63 69 DIF......;4.lsi_x_wild_f.:=.asci
5100 69 20 28 38 29 20 2b 20 61 73 63 69 69 20 28 39 29 20 2b 20 61 73 63 69 69 20 28 31 30 29 20 2b i.(8).+.ascii.(9).+.ascii.(10).+
5120 28 00 09 09 20 61 73 63 69 69 20 28 31 31 29 20 2b 20 61 73 63 69 69 20 28 31 32 29 20 2b 20 61 (....ascii.(11).+.ascii.(12).+.a
5140 73 63 69 69 20 28 31 33 29 3b 00 00 1b 00 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 72 61 63 74 65 scii.(13);....lsi_x_all_characte
5160 72 73 20 3a 3d 20 22 22 3b 00 04 00 6c 6f 6f 70 1b 00 21 25 49 46 20 6e 6f 74 20 65 76 65 24 78 rs.:=."";...loop..!%IF.not.eve$x
5180 5f 6f 70 74 69 6f 6e 5f 32 62 79 74 65 20 06 00 21 25 54 48 45 4e 16 00 20 20 20 20 65 78 69 74 _option_2byte...!%THEN......exit
51a0 69 66 20 74 65 6d 70 20 3e 20 32 35 35 3b 06 00 21 25 45 4c 53 45 18 00 21 25 20 20 20 20 65 78 if.temp.>.255;..!%ELSE..!%....ex
51c0 69 74 69 66 20 74 65 6d 70 20 3e 20 31 36 30 3b 07 00 21 25 45 4e 44 49 46 65 40 00 20 20 20 20 itif.temp.>.160;..!%ENDIFe@.....
51e0 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 72 61 63 74 65 72 73 20 3a 3d 20 6c 73 69 5f 78 5f 61 6c lsi_x_all_characters.:=.lsi_x_al
5200 6c 5f 63 68 61 72 61 63 74 65 72 73 20 2b 20 61 73 63 69 69 20 28 74 65 6d 70 29 3b 15 00 20 20 l_characters.+.ascii.(temp);....
5220 20 20 74 65 6d 70 20 3a 3d 20 74 65 6d 70 20 2b 20 31 3b 63 08 00 65 6e 64 6c 6f 6f 70 3b 00 00 ..temp.:=.temp.+.1;c..endloop;..
5240 3c 00 6c 73 69 5f 78 5f 77 69 6c 64 5f 63 6f 6e 74 72 6f 6c 20 3a 3d 20 73 75 62 73 74 72 20 28 <.lsi_x_wild_control.:=.substr.(
5260 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 72 61 63 74 65 72 73 2c 20 31 2c 20 33 32 29 20 2b 30 00 lsi_x_all_characters,.1,.32).+0.
5280 09 09 20 20 20 20 20 20 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 61 72 61 .........substr.(lsi_x_all_chara
52a0 63 74 65 72 73 2c 20 31 32 39 2c 20 33 32 29 3b 1b 00 21 25 49 46 20 6e 6f 74 20 65 76 65 24 78 cters,.129,.32);..!%IF.not.eve$x
52c0 5f 6f 70 74 69 6f 6e 5f 32 62 79 74 65 65 06 00 21 25 54 48 45 4e 3c 00 6c 73 69 5f 78 5f 77 69 _option_2bytee..!%THEN<.lsi_x_wi
52e0 6c 64 5f 62 69 74 5f 37 20 3a 3d 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 61 6c 6c 5f 63 68 ld_bit_7.:=.substr.(lsi_x_all_ch
5300 61 72 61 63 74 65 72 73 2c 20 31 32 39 2c 20 31 32 38 29 3b 07 00 21 25 45 4e 44 49 46 5d 00 00 aracters,.129,.128);..!%ENDIF]..
5320 28 00 65 6e 64 70 72 6f 63 65 64 75 72 65 20 20 21 20 6c 73 69 5f 77 69 6c 64 63 61 72 64 5f 6d (.endprocedure..!.lsi_wildcard_m
5340 6f 64 75 6c 65 5f 69 6e 69 74 01 00 0c 75 3d 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f 77 69 odule_init...u=.procedure.lsi_wi
5360 6c 64 5f 63 6f 64 65 20 28 74 68 65 5f 63 6f 64 65 29 09 21 20 49 4e 54 20 3d 3e 20 77 69 6c 64 ld_code.(the_code).!.INT.=>.wild
5380 63 61 72 64 20 66 75 6e 63 74 69 6f 6e 00 00 00 0d 00 6c 6f 63 61 6c 20 20 20 74 65 6d 70 3b 65 card.function.....local...temp;e
53a0 00 00 33 00 74 65 6d 70 20 3a 3d 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 ..3.temp.:=.substr.(lsi_x_wild_f
53c0 75 6e 63 74 69 6f 6e 73 2c 20 74 68 65 5f 63 6f 64 65 2c 20 31 29 3b 74 10 00 69 66 20 74 68 65 unctions,.the_code,.1);t..if.the
53e0 5f 63 6f 64 65 20 3c 3e 20 31 04 00 74 68 65 6e 31 00 20 20 20 20 69 66 20 74 65 6d 70 20 3d 20 _code.<>.1..then1.....if.temp.=.
5400 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 75 6e 63 74 69 6f 6e 73 2c 20 31 2c substr.(lsi_x_wild_functions,.1,
5420 20 31 29 75 08 00 20 20 20 20 74 68 65 6e 3f 00 09 74 65 6d 70 20 3a 3d 20 74 65 6d 70 20 2b 20 .1)u......then?..temp.:=.temp.+.
5440 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 73 75 62 5f 66 75 6e 63 74 69 6f 6e 73 substr.(lsi_x_wild_sub_functions
5460 2c 20 74 68 65 5f 63 6f 64 65 2c 20 31 29 3b 20 0a 00 20 20 20 20 65 6e 64 69 66 3b 06 00 65 6e ,.the_code,.1);.......endif;..en
5480 64 69 66 3b 00 00 2f 00 69 66 20 74 65 6d 70 20 3d 20 73 75 62 73 74 72 20 28 6c 73 69 5f 78 5f dif;../.if.temp.=.substr.(lsi_x_
54a0 77 69 6c 64 5f 66 75 6e 63 74 69 6f 6e 73 2c 20 31 2c 20 31 29 20 2b 20 27 00 20 20 20 20 73 75 wild_functions,.1,.1).+.'.....su
54c0 62 73 74 72 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 75 6e 63 74 69 6f 6e 73 2c 20 31 2c 20 31 bstr.(lsi_x_wild_functions,.1,.1
54e0 29 20 04 00 74 68 65 6e 0f 00 20 20 20 20 74 65 6d 70 20 3a 3d 20 22 22 3b 6c 06 00 65 6e 64 69 )...then......temp.:=."";l..endi
5500 66 3b 00 00 10 00 21 4d 45 53 53 41 47 45 20 28 74 65 6d 70 29 3b 0e 00 72 65 74 75 72 6e 20 28 f;....!MESSAGE.(temp);..return.(
5520 74 65 6d 70 29 3b 00 00 1f 00 65 6e 64 70 72 6f 63 65 64 75 72 65 20 20 20 21 20 6c 73 69 5f 77 temp);....endprocedure...!.lsi_w
5540 69 6c 64 5f 63 6f 64 65 3b 5f 01 00 0c 72 3b 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f 67 65 ild_code;_...r;.procedure.lsi_ge
5560 74 5f 77 69 6c 64 5f 74 6f 6b 65 6e 09 09 21 20 47 65 74 20 74 68 65 20 6e 65 78 74 20 77 69 6c t_wild_token..!.Get.the.next.wil
5580 64 63 61 72 64 20 74 6f 6b 65 6e 31 1f 00 20 20 20 20 28 74 68 65 5f 63 68 61 72 2c 20 69 6e 70 dcard.token1......(the_char,.inp
55a0 75 74 5f 73 74 72 69 6e 67 2c 20 69 29 09 00 00 11 00 6c 6f 63 61 6c 20 20 20 74 68 65 5f 63 6f ut_string,.i).....local...the_co
55c0 64 65 2c 3a 0c 00 09 6c 6f 77 65 72 5f 63 68 61 72 3b 00 00 1c 00 69 66 20 69 20 3e 20 6c 65 6e de,:...lower_char;....if.i.>.len
55e0 67 74 68 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 29 04 00 74 68 65 6e 0f 00 20 20 20 20 72 65 gth.(input_string)..then......re
5600 74 75 72 6e 20 2d 20 31 3b 68 04 00 65 6c 73 65 2c 00 20 20 20 20 74 68 65 5f 63 68 61 72 20 3a turn.-.1;h..else,.....the_char.:
5620 3d 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 2c 20 31 29 3b 16 00 =.substr.(input_string,.i,.1);..
5640 20 20 20 20 69 66 20 74 68 65 5f 63 68 61 72 20 3c 3e 20 22 27 22 08 00 20 20 20 20 74 68 65 6e ....if.the_char.<>."'"......then
5660 18 00 09 6c 6f 77 65 72 5f 63 68 61 72 20 3a 3d 20 74 68 65 5f 63 68 61 72 3b 21 00 09 63 68 61 ...lower_char.:=.the_char;!..cha
5680 6e 67 65 5f 63 61 73 65 20 28 6c 6f 77 65 72 5f 63 68 61 72 2c 20 4c 4f 57 45 52 29 3b 00 36 00 nge_case.(lower_char,.LOWER);.6.
56a0 09 74 68 65 5f 63 6f 64 65 20 3a 3d 20 69 6e 64 65 78 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f 66 .the_code.:=.index.(lsi_x_wild_f
56c0 75 6e 63 74 69 6f 6e 73 2c 20 6c 6f 77 65 72 5f 63 68 61 72 29 3b 1d 00 09 69 66 20 74 68 65 5f unctions,.lower_char);...if.the_
56e0 63 6f 64 65 20 3d 20 31 09 09 09 09 21 20 53 61 77 20 22 5c 22 5f 05 00 09 74 68 65 6e 20 10 00 code.=.1....!.Saw."\"_...then...
5700 09 20 20 20 20 69 20 3a 3d 20 69 20 2b 20 31 3b 2d 00 09 20 20 20 20 74 68 65 5f 63 68 61 72 20 .....i.:=.i.+.1;-......the_char.
5720 3a 3d 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 2c 20 31 29 3b 09 :=.substr.(input_string,.i,.1);.
5740 1c 00 09 20 20 20 20 6c 6f 77 65 72 5f 63 68 61 72 20 3a 3d 20 74 68 65 5f 63 68 61 72 3b 25 00 .......lower_char.:=.the_char;%.
5760 09 20 20 20 20 63 68 61 6e 67 65 5f 63 61 73 65 20 28 6c 6f 77 65 72 5f 63 68 61 72 2c 20 4c 4f .....change_case.(lower_char,.LO
5780 57 45 52 29 3b 70 3e 00 09 20 20 20 20 74 68 65 5f 63 6f 64 65 20 3a 3d 20 69 6e 64 65 78 20 28 WER);p>......the_code.:=.index.(
57a0 6c 73 69 5f 78 5f 77 69 6c 64 5f 73 75 62 5f 66 75 6e 63 74 69 6f 6e 73 2c 20 6c 6f 77 65 72 5f lsi_x_wild_sub_functions,.lower_
57c0 63 68 61 72 29 3b 2a 00 09 20 20 20 20 69 66 20 74 68 65 5f 63 6f 64 65 20 3d 20 30 09 09 09 09 char);*......if.the_code.=.0....
57e0 21 20 4e 6f 74 20 5c 3c 2c 20 5c 3e 20 6f 72 20 5c 5c 09 00 09 20 20 20 20 74 68 65 6e 65 37 00 !.Not.\<,.\>.or.\\.......thene7.
5800 09 09 74 68 65 5f 63 6f 64 65 20 3a 3d 20 69 6e 64 65 78 20 28 6c 73 69 5f 78 5f 77 69 6c 64 5f ..the_code.:=.index.(lsi_x_wild_
5820 66 75 6e 63 74 69 6f 6e 73 2c 20 6c 6f 77 65 72 5f 63 68 61 72 29 3b 00 25 00 09 09 69 66 20 74 functions,.lower_char);.%...if.t
5840 68 65 5f 63 6f 64 65 20 3d 20 30 09 09 09 21 20 4e 6f 74 20 5c 2a 2c 20 5c 25 2c 20 65 74 63 20 he_code.=.0...!.Not.\*,.\%,.etc.
5860 06 00 09 09 74 68 65 6e 14 00 09 09 20 20 20 20 74 68 65 5f 63 6f 64 65 20 3a 3d 20 31 3b 1b 00 ....then........the_code.:=.1;..
5880 09 09 65 6c 73 65 09 09 09 09 21 20 53 61 77 20 5c 2a 2c 20 5c 25 2c 20 65 74 63 09 14 00 09 09 ..else....!.Saw.\*,.\%,.etc.....
58a0 20 20 20 20 74 68 65 5f 63 6f 64 65 20 3a 3d 20 30 3b 08 00 09 09 65 6e 64 69 66 3b 09 00 09 20 ....the_code.:=.0;....endif;....
58c0 20 20 20 65 6c 73 65 2c 1c 00 09 09 69 66 20 74 68 65 5f 63 6f 64 65 20 3d 20 31 09 09 09 21 20 ...else,....if.the_code.=.1...!.
58e0 53 61 77 20 5c 5c 06 00 09 09 74 68 65 6e 14 00 09 09 20 20 20 20 74 68 65 5f 63 6f 64 65 20 3a Saw.\\....then........the_code.:
5900 3d 20 30 3b 08 00 09 09 65 6e 64 69 66 3b 0b 00 09 20 20 20 20 65 6e 64 69 66 3b 65 07 00 09 65 =.0;....endif;.......endif;e...e
5920 6e 64 69 66 3b 20 0a 00 20 20 20 20 65 6e 64 69 66 3b 0f 00 20 20 20 20 69 20 3a 3d 20 69 20 2b ndif;.......endif;......i.:=.i.+
5940 20 31 3b 63 16 00 20 20 20 20 72 65 74 75 72 6e 20 28 74 68 65 5f 63 6f 64 65 29 3b 06 00 65 6e .1;c......return.(the_code);..en
5960 64 69 66 3b 00 00 24 00 65 6e 64 70 72 6f 63 65 64 75 72 65 20 20 20 21 20 6c 73 69 5f 67 65 74 dif;..$.endprocedure...!.lsi_get
5980 5f 77 69 6c 64 5f 74 6f 6b 65 6e 3b 01 00 0c 09 37 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f _wild_token;....7.procedure.lsi_
59a0 65 61 74 5f 77 69 6c 64 5f 63 6f 64 65 09 09 21 20 54 65 73 74 20 66 6f 72 20 61 20 73 70 65 63 eat_wild_code..!.Test.for.a.spec
59c0 69 66 69 63 20 63 6f 64 65 73 1f 00 20 20 20 20 28 74 68 65 5f 63 6f 64 65 2c 20 69 6e 70 75 74 ific.codes......(the_code,.input
59e0 5f 73 74 72 69 6e 67 2c 20 69 29 09 00 00 13 00 6c 6f 63 61 6c 20 20 20 74 68 65 5f 6c 65 6e 67 _string,.i).....local...the_leng
5a00 74 68 2c 20 0c 00 09 74 68 65 5f 73 74 72 69 6e 67 3b 00 00 27 00 74 68 65 5f 73 74 72 69 6e 67 th,....the_string;..'.the_string
5a20 20 3a 3d 20 6c 73 69 5f 77 69 6c 64 5f 63 6f 64 65 20 28 74 68 65 5f 63 6f 64 65 29 3b 30 22 00 .:=.lsi_wild_code.(the_code);0".
5a40 74 68 65 5f 6c 65 6e 67 74 68 20 3a 3d 20 6c 65 6e 67 74 68 20 28 74 68 65 5f 73 74 72 69 6e 67 the_length.:=.length.(the_string
5a60 29 3b 34 00 69 66 20 73 75 62 73 74 72 20 28 69 6e 70 75 74 5f 73 74 72 69 6e 67 2c 20 69 2c 20 );4.if.substr.(input_string,.i,.
5a80 74 68 65 5f 6c 65 6e 67 74 68 29 20 3d 20 74 68 65 5f 73 74 72 69 6e 67 04 00 74 68 65 6e 18 00 the_length).=.the_string..then..
5aa0 20 20 20 20 69 20 3a 3d 20 69 20 2b 20 74 68 65 5f 6c 65 6e 67 74 68 3b 10 00 20 20 20 20 72 65 ....i.:=.i.+.the_length;......re
5ac0 74 75 72 6e 20 54 52 55 45 3b 04 00 65 6c 73 65 11 00 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c turn.TRUE;..else......return.FAL
5ae0 53 45 3b 74 06 00 65 6e 64 69 66 3b 00 00 0d 00 65 6e 64 70 72 6f 63 65 64 75 72 65 3b 00 01 00 SE;t..endif;....endprocedure;...
5b00 0c 20 3f 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f 64 6f 5f 73 75 62 5f 70 61 74 74 65 72 6e ..?.procedure.lsi_do_sub_pattern
5b20 09 09 21 20 43 6f 6c 6c 65 63 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 75 62 2d 70 61 74 74 ..!.Collect.the.current.sub-patt
5b40 65 72 6e 73 35 00 20 20 20 20 28 73 75 62 5f 70 61 74 74 65 72 6e 2c 20 74 68 65 5f 66 75 6e 63 erns5.....(sub_pattern,.the_func
5b60 74 69 6f 6e 2c 20 74 68 65 5f 73 74 72 69 6e 67 2c 20 74 68 65 5f 63 6f 64 65 29 20 00 00 15 00 tion,.the_string,.the_code).....
5b80 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3c 3e 20 22 22 6e 04 00 74 68 65 6e 17 00 20 20 if.the_function.<>.""n..then....
5ba0 20 20 69 66 20 74 68 65 5f 73 74 72 69 6e 67 20 3c 3e 20 22 22 65 08 00 20 20 20 20 74 68 65 6e ..if.the_string.<>.""e......then
5bc0 3d 00 09 69 66 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 22 26 6d 61 74 63 68 6c 22 09 21 =..if.the_function.=."&matchl".!
5be0 2a 2a 2a 20 50 72 6f 70 6f 73 65 64 2c 20 62 75 74 20 75 6e 69 6d 70 6c 69 6d 65 6e 74 65 64 00 ***.Proposed,.but.unimplimented.
5c00 05 00 09 74 68 65 6e 20 2b 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 6c 6f ...then.+......sub_pattern.:=.lo
5c20 63 61 6c 5f 73 75 62 5f 70 61 74 74 20 2b 20 22 26 20 22 20 2b 73 28 00 09 09 09 20 20 20 22 28 cal_sub_patt.+."&.".+s(......."(
5c40 75 6e 61 6e 63 68 6f 72 2b 27 22 20 2b 20 74 68 65 5f 73 74 72 69 6e 67 20 2b 20 22 27 29 22 3b unanchor+'".+.the_string.+."')";
5c60 05 00 09 65 6c 73 65 72 28 00 09 20 20 20 20 73 75 62 5f 70 61 74 74 65 72 6e 20 3a 3d 20 73 75 ...elser(......sub_pattern.:=.su
5c80 62 5f 70 61 74 74 65 72 6e 20 2b 20 22 26 20 22 20 2b 2e 00 09 09 09 20 20 20 74 68 65 5f 66 75 b_pattern.+."&.".+........the_fu
5ca0 6e 63 74 69 6f 6e 20 2b 20 22 28 27 22 20 2b 20 74 68 65 5f 73 74 72 69 6e 67 20 2b 20 22 27 29 nction.+."('".+.the_string.+."')
5cc0 22 3b 07 00 09 65 6e 64 69 66 3b 2c 12 00 09 74 68 65 5f 73 74 72 69 6e 67 20 3a 3d 20 22 22 3b ";...endif;,...the_string.:=."";
5ce0 0a 00 20 20 20 20 65 6c 73 65 20 20 44 00 09 6d 65 73 73 61 67 65 20 28 46 41 4f 20 28 22 4e 6f ......else..D..message.(FAO.("No
5d00 20 74 65 78 74 20 70 72 65 63 65 64 69 6e 67 3a 20 21 41 53 22 2c 20 6c 73 69 5f 77 69 6c 64 5f .text.preceding:.!AS",.lsi_wild_
5d20 63 6f 64 65 20 28 74 68 65 5f 63 6f 64 65 29 29 29 3b 0e 00 09 72 65 74 75 72 6e 20 46 41 4c 53 code.(the_code)));...return.FALS
5d40 45 3b 0a 00 20 20 20 20 65 6e 64 69 66 3b 17 00 20 20 20 20 74 68 65 5f 66 75 6e 63 74 69 6f 6e E;......endif;......the_function
5d60 20 3a 3d 20 22 22 3b 67 04 00 65 6c 73 65 17 00 20 20 20 20 69 66 20 74 68 65 5f 73 74 72 69 6e .:=."";g..else......if.the_strin
5d80 67 20 3c 3e 20 22 22 4f 08 00 20 20 20 20 74 68 65 6e 37 00 09 73 75 62 5f 70 61 74 74 65 72 6e g.<>.""O......then7..sub_pattern
5da0 20 3a 3d 20 73 75 62 5f 70 61 74 74 65 72 6e 20 2b 20 22 26 20 27 22 20 2b 20 74 68 65 5f 73 74 .:=.sub_pattern.+."&.'".+.the_st
5dc0 72 69 6e 67 20 2b 20 22 27 22 3b 72 12 00 09 74 68 65 5f 73 74 72 69 6e 67 20 3a 3d 20 22 22 3b ring.+."'";r...the_string.:=."";
5de0 0a 00 20 20 20 20 65 6e 64 69 66 3b 06 00 65 6e 64 69 66 3b 0d 00 65 6e 64 70 72 6f 63 65 64 75 ......endif;..endif;..endprocedu
5e00 72 65 3b 22 01 00 0c 70 26 00 70 72 6f 63 65 64 75 72 65 20 6c 73 69 5f 73 65 61 72 63 68 20 28 re;"...p&.procedure.lsi_search.(
5e20 74 68 65 5f 70 61 74 74 65 72 6e 5f 73 74 72 29 11 00 4c 4f 43 41 4c 20 73 61 76 65 5f 72 61 6e the_pattern_str)..LOCAL.save_ran
5e40 67 65 2c 20 12 00 20 20 20 20 20 20 66 6f 75 6e 64 5f 72 61 6e 67 65 2c 11 00 20 20 20 20 20 20 ge,.........found_range,........
5e60 73 65 61 72 63 68 5f 73 74 72 2c 65 12 00 20 20 20 20 20 20 70 61 74 74 65 72 6e 5f 73 74 72 2c search_str,e........pattern_str,
5e80 0d 00 20 20 20 20 20 20 72 65 73 75 6c 74 3b 00 00 00 08 00 4f 4e 5f 45 52 52 4f 52 1e 00 20 20 ........result;.....ON_ERROR....
5ea0 20 49 46 20 45 52 52 4f 52 20 3d 20 54 50 55 24 5f 45 58 45 43 55 54 45 46 41 49 4c 07 00 20 20 .IF.ERROR.=.TPU$_EXECUTEFAIL....
5ec0 20 54 48 45 4e 20 25 00 20 20 20 20 20 20 4d 45 53 53 41 47 45 20 28 27 42 61 64 20 70 61 74 74 .THEN.%.......MESSAGE.('Bad.patt
5ee0 65 72 6e 20 73 74 72 69 6e 67 27 29 3b 00 0b 00 20 20 20 20 20 20 41 42 4f 52 54 09 09 00 20 20 ern.string');.........ABORT.....
5f00 20 45 4e 44 49 46 3b 28 0c 00 45 4e 44 4f 4e 5f 45 52 52 4f 52 3b 00 00 03 00 21 2b 2b 22 3f 00 .ENDIF;(..ENDON_ERROR;....!++"?.
5f20 21 20 20 43 68 65 63 6b 20 74 68 65 20 69 6e 70 75 74 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 65 !..Check.the.input.argument.to.e
5f40 6e 73 75 72 65 20 74 68 61 74 20 61 20 73 74 72 69 6e 67 20 77 61 73 20 70 61 73 73 65 64 2e 65 nsure.that.a.string.was.passed.e
5f60 03 00 21 2d 2d 00 2f 00 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 74 68 65 5f 70 61 74 74 65 72 6e ..!--./.IF.GET_INFO.(the_pattern
5f80 5f 73 74 72 2c 20 27 74 79 70 65 27 29 20 3c 3e 20 53 54 52 49 4e 47 00 04 00 54 48 45 4e 06 00 _str,.'type').<>.STRING...THEN..
5fa0 20 20 20 21 2b 2b 27 00 20 20 20 21 20 20 4e 6f 20 73 74 72 69 6e 67 2c 20 73 6f 20 70 72 6f 6d ...!++'....!..No.string,.so.prom
5fc0 70 74 20 66 6f 72 20 61 20 76 61 6c 75 65 2e 2c 06 00 20 20 20 21 2d 2d 2f 00 20 20 20 73 65 61 pt.for.a.value.,.....!--/....sea
5fe0 72 63 68 5f 73 74 72 20 3a 3d 20 52 45 41 44 5f 4c 49 4e 45 20 28 27 5f 45 6e 74 65 72 20 70 61 rch_str.:=.READ_LINE.('_Enter.pa
6000 74 74 65 72 6e 3a 20 27 29 61 04 00 45 4c 53 45 06 00 20 20 20 21 2b 2b 22 00 20 20 20 21 20 20 ttern:.')a..ELSE.....!++"....!..
6020 55 73 65 20 74 68 65 20 70 61 73 73 65 64 20 73 74 72 69 6e 67 20 76 61 6c 75 65 2e 06 00 20 20 Use.the.passed.string.value.....
6040 20 21 2d 2d 20 00 20 20 20 73 65 61 72 63 68 5f 73 74 72 20 3a 3d 20 74 68 65 5f 70 61 74 74 65 .!--.....search_str.:=.the_patte
6060 72 6e 5f 73 74 72 06 00 45 4e 44 49 46 3b 03 00 21 2b 2b 67 25 00 21 20 20 57 61 73 20 6c 61 73 rn_str..ENDIF;..!++g%.!..Was.las
6080 74 20 6b 65 79 20 70 72 65 73 73 65 64 20 74 68 65 20 48 45 4c 50 20 6b 65 79 3f 00 03 00 21 2d t.key.pressed.the.HELP.key?...!-
60a0 2d 65 28 00 49 46 20 28 4c 41 53 54 5f 4b 45 59 20 3d 20 48 45 4c 50 29 20 4f 52 20 28 4c 41 53 -e(.IF.(LAST_KEY.=.HELP).OR.(LAS
60c0 54 5f 4b 45 59 20 3d 20 50 46 32 29 04 00 54 48 45 4e 3b 00 20 20 20 6c 73 65 24 64 6f 5f 63 6f T_KEY.=.PF2)..THEN;....lse$do_co
60e0 6d 6d 61 6e 64 28 22 48 45 4c 50 2f 4c 49 42 52 3d 55 54 4c 5f 3a 5b 54 50 55 5d 48 45 4c 50 4c mmand("HELP/LIBR=UTL_:[TPU]HELPL
6100 49 42 20 57 49 4c 44 43 41 52 44 53 22 29 3b 72 09 00 20 20 20 52 45 54 55 52 4e 09 06 00 45 4e IB.WILDCARDS");r.....RETURN...EN
6120 44 49 46 3b 03 00 21 2b 2b 74 48 00 21 20 20 43 68 65 63 6b 20 66 6f 72 20 6e 75 6c 6c 20 73 65 DIF;..!++tH.!..Check.for.null.se
6140 61 72 63 68 20 73 74 72 69 6e 67 20 61 6e 64 20 75 73 65 20 6c 61 73 74 20 73 65 61 72 63 68 20 arch.string.and.use.last.search.
6160 70 61 74 74 65 72 6e 2c 20 69 66 20 64 65 66 69 6e 65 64 2e 03 00 21 2d 2d 73 12 00 49 46 20 73 pattern,.if.defined...!--s..IF.s
6180 65 61 72 63 68 5f 73 74 72 20 3d 20 27 27 04 00 54 48 45 4e 3e 00 20 20 20 49 46 20 47 45 54 5f earch_str.=.''..THEN>....IF.GET_
61a0 49 4e 46 4f 20 28 6c 73 69 5f 6c 61 73 74 5f 73 65 61 72 63 68 5f 70 61 74 74 65 72 6e 2c 20 27 INFO.(lsi_last_search_pattern,.'
61c0 74 79 70 65 27 29 20 3d 20 55 4e 53 50 45 43 49 46 49 45 44 07 00 20 20 20 54 48 45 4e 75 32 00 type').=.UNSPECIFIED.....THENu2.
61e0 20 20 20 20 20 20 4d 45 53 53 41 47 45 20 28 27 4e 6f 20 6c 61 73 74 20 73 65 61 72 63 68 20 70 ......MESSAGE.('No.last.search.p
6200 61 74 74 65 72 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0b 00 20 20 20 20 20 20 41 42 4f 52 54 20 attern.defined.');........ABORT.
6220 08 00 20 20 20 45 4e 44 49 46 04 00 45 4c 53 45 06 00 20 20 20 21 2b 2b 21 00 20 20 20 21 20 20 .....ENDIF..ELSE.....!++!....!..
6240 42 75 69 6c 64 20 61 20 6e 65 77 20 73 65 61 72 63 68 20 70 61 74 74 65 72 6e 2e 28 06 00 20 20 Build.a.new.search.pattern.(....
6260 20 21 2d 2d 38 00 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 6c 73 69 5f 62 75 69 6c 64 5f 70 61 74 .!--8....result.:=.lsi_build_pat
6280 74 65 72 6e 28 73 65 61 72 63 68 5f 73 74 72 2c 20 70 61 74 74 65 72 6e 5f 73 74 72 29 3b 14 00 tern(search_str,.pattern_str);..
62a0 20 20 20 49 46 20 72 65 73 75 6c 74 20 3d 20 46 41 4c 53 45 07 00 20 20 20 54 48 45 4e 5f 0b 00 ...IF.result.=.FALSE.....THEN_..
62c0 20 20 20 20 20 20 41 42 4f 52 54 5f 09 00 20 20 20 45 4e 44 49 46 3b 09 23 00 20 20 20 6c 73 69 ......ABORT_.....ENDIF;.#....lsi
62e0 5f 6c 61 73 74 5f 73 65 61 72 63 68 5f 70 61 74 74 65 72 6e 20 3a 3d 20 28 27 27 29 3b 27 2d 00 _last_search_pattern.:=.('');'-.
6300 20 20 20 6c 73 69 5f 6c 61 73 74 5f 73 65 61 72 63 68 5f 70 61 74 74 65 72 6e 5f 73 74 72 20 3a ...lsi_last_search_pattern_str.:
6320 3d 20 73 65 61 72 63 68 5f 73 74 72 3b 20 15 00 20 20 20 49 46 20 72 65 73 75 6c 74 20 3d 20 53 =.search_str;......IF.result.=.S
6340 54 52 49 4e 47 74 07 00 20 20 20 54 48 45 4e 62 2c 00 20 20 20 20 20 20 70 61 74 74 65 72 6e 5f TRINGt.....THENb,.......pattern_
6360 73 74 72 20 3a 3d 20 27 22 27 20 2b 20 70 61 74 74 65 72 6e 5f 73 74 72 20 2b 20 27 22 27 09 00 str.:=.'"'.+.pattern_str.+.'"'..
6380 20 20 20 45 4e 44 49 46 3b 29 38 00 21 20 20 20 4d 45 53 53 41 47 45 20 28 27 6c 73 69 5f 6c 61 ...ENDIF;)8.!...MESSAGE.('lsi_la
63a0 73 74 5f 73 65 61 72 63 68 5f 70 61 74 74 65 72 6e 3a 3d 27 20 2b 20 70 61 74 74 65 72 6e 5f 73 st_search_pattern:='.+.pattern_s
63c0 74 72 29 3b 36 00 20 20 20 45 58 45 43 55 54 45 20 28 27 6c 73 69 5f 6c 61 73 74 5f 73 65 61 72 tr);6....EXECUTE.('lsi_last_sear
63e0 63 68 5f 70 61 74 74 65 72 6e 3a 3d 27 20 2b 20 70 61 74 74 65 72 6e 5f 73 74 72 29 06 00 45 4e ch_pattern:='.+.pattern_str)..EN
6400 44 49 46 3b 03 00 21 2b 2b 65 2e 00 21 20 20 48 6f 6c 64 20 74 68 69 73 20 70 6c 61 63 65 20 62 DIF;..!++e..!..Hold.this.place.b
6420 65 66 6f 72 65 20 73 74 61 72 74 69 6e 67 20 74 68 65 20 73 65 61 72 63 68 2e 03 00 21 2d 2d 09 efore.starting.the.search...!--.
6440 1a 00 73 61 76 65 5f 72 61 6e 67 65 20 3a 3d 20 4d 41 52 4b 20 28 4e 4f 4e 45 29 3b 1e 00 49 46 ..save_range.:=.MARK.(NONE);..IF
6460 20 43 55 52 52 45 4e 54 5f 44 49 52 45 43 54 49 4f 4e 20 3d 20 46 4f 52 57 41 52 44 04 00 54 48 .CURRENT_DIRECTION.=.FORWARD..TH
6480 45 4e 17 00 20 20 20 4d 4f 56 45 5f 48 4f 52 49 5a 4f 4e 54 41 4c 20 28 31 29 3b 61 04 00 45 4c EN.....MOVE_HORIZONTAL.(1);a..EL
64a0 53 45 18 00 20 20 20 4d 4f 56 45 5f 48 4f 52 49 5a 4f 4e 54 41 4c 20 28 2d 31 29 3b 06 00 45 4e SE.....MOVE_HORIZONTAL.(-1);..EN
64c0 44 49 46 3b 03 00 21 2b 2b 65 35 00 21 20 20 4c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 6e 65 78 74 DIF;..!++e5.!..Look.for.the.next
64e0 20 6f 63 63 75 72 65 6e 63 65 20 6f 66 20 74 68 65 20 73 65 61 72 63 68 20 70 61 74 74 65 72 6e .occurence.of.the.search.pattern
6500 2e 65 03 00 21 2d 2d 77 11 00 66 6f 75 6e 64 5f 72 61 6e 67 65 20 3a 3d 20 30 3b 00 42 00 66 6f .e..!--w..found_range.:=.0;.B.fo
6520 75 6e 64 5f 72 61 6e 67 65 20 3a 3d 20 53 45 41 52 43 48 20 28 6c 73 69 5f 6c 61 73 74 5f 73 65 und_range.:=.SEARCH.(lsi_last_se
6540 61 72 63 68 5f 70 61 74 74 65 72 6e 2c 20 43 55 52 52 45 4e 54 5f 44 49 52 45 43 54 49 4f 4e 2c arch_pattern,.CURRENT_DIRECTION,
6560 0a 00 20 20 20 45 58 41 43 54 29 3b 12 00 49 46 20 66 6f 75 6e 64 5f 72 61 6e 67 65 20 3d 20 30 .....EXACT);..IF.found_range.=.0
6580 04 00 54 48 45 4e 39 00 20 20 20 4d 45 53 53 41 47 45 20 28 6c 73 69 5f 6c 61 73 74 5f 73 65 61 ..THEN9....MESSAGE.(lsi_last_sea
65a0 72 63 68 5f 70 61 74 74 65 72 6e 5f 73 74 72 20 2b 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 27 29 rch_pattern_str.+.'.not.found.')
65c0 3b 21 18 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 73 61 76 65 5f 72 61 6e 67 65 29 04 00 45 4c ;!.....POSITION.(save_range)..EL
65e0 53 45 1a 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 66 6f 75 6e 64 5f 72 61 6e 67 65 29 3b 05 00 SE.....POSITION.(found_range);..
6600 45 4e 44 49 46 00 19 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 73 65 61 72 63 ENDIF...ENDPROCEDURE.!.lsi_searc
6620 68 00 h.