summaryrefslogtreecommitdiff
path: root/tests/examplefiles/hexdump_od
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/hexdump_od')
-rw-r--r--tests/examplefiles/hexdump_od310
1 files changed, 0 insertions, 310 deletions
diff --git a/tests/examplefiles/hexdump_od b/tests/examplefiles/hexdump_od
deleted file mode 100644
index a407aef0..00000000
--- a/tests/examplefiles/hexdump_od
+++ /dev/null
@@ -1,310 +0,0 @@
-0000000 2f 2f 20 43 72 65 61 74 65 64 20 62 79 20 4c 69 >// Created by Li<
-0000020 6f 6e 65 6c 6c 6f 20 4c 75 6e 65 73 75 20 61 6e >onello Lunesu an<
-0000040 64 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 >d placed in the <
-0000060 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 0a 2f >public domain../<
-0000100 2f 20 54 68 69 73 20 66 69 6c 65 20 68 61 73 20 >/ This file has <
-0000120 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 66 72 >been modified fr<
-0000140 6f 6d 20 69 74 73 20 6f 72 69 67 69 6e 61 6c 20 >om its original <
-0000160 76 65 72 73 69 6f 6e 2e 0a 2f 2f 20 49 74 20 68 >version..// It h<
-0000200 61 73 20 62 65 65 6e 20 66 6f 72 6d 61 74 74 65 >as been formatte<
-0000220 64 20 74 6f 20 66 69 74 20 79 6f 75 72 20 73 63 >d to fit your sc<
-0000240 72 65 65 6e 2e 0a 6d 6f 64 75 6c 65 20 70 68 6f >reen..module pho<
-0000260 6e 65 6e 6f 3b 20 20 20 20 20 2f 2f 20 6f 70 74 >neno; // opt<
-0000300 69 6f 6e 61 6c 0a 69 6d 70 6f 72 74 20 73 74 64 >ional.import std<
-0000320 2e 73 74 64 69 6f 3b 20 20 20 2f 2f 20 77 72 69 >.stdio; // wri<
-0000340 74 65 66 6c 6e 20 20 20 20 20 0a 69 6d 70 6f 72 >tefln .impor<
-0000360 74 20 73 74 64 2e 63 74 79 70 65 3b 20 20 20 2f >t std.ctype; /<
-0000400 2f 20 69 73 64 69 67 69 74 20 20 20 20 20 0a 69 >/ isdigit .i<
-0000420 6d 70 6f 72 74 20 73 74 64 2e 73 74 72 65 61 6d >mport std.stream<
-0000440 3b 20 20 2f 2f 20 42 75 66 66 65 72 65 64 46 69 >; // BufferedFi<
-0000460 6c 65 0a 0a 2f 2f 20 4a 75 73 74 20 66 6f 72 20 >le..// Just for <
-0000500 72 65 61 64 61 62 69 6c 69 74 79 20 28 69 6d 61 >readability (ima<
-0000520 67 69 6e 65 20 63 68 61 72 5b 5d 5b 5d 5b 63 68 >gine char[][][ch<
-0000540 61 72 5b 5d 5d 29 20 20 20 20 0a 61 6c 69 61 73 >ar[]]) .alias<
-0000560 20 63 68 61 72 5b 5d 20 73 74 72 69 6e 67 3b 0a > char[] string;.<
-0000600 61 6c 69 61 73 20 73 74 72 69 6e 67 5b 5d 20 73 >alias string[] s<
-0000620 74 72 69 6e 67 61 72 72 61 79 3b 0a 0a 2f 2f 2f >tringarray;..///<
-0000640 20 53 74 72 69 70 73 20 6e 6f 6e 2d 64 69 67 69 > Strips non-digi<
-0000660 74 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6f >t characters fro<
-0000700 6d 20 74 68 65 20 73 74 72 69 6e 67 20 28 43 4f >m the string (CO<
-0000720 57 29 0a 73 74 72 69 6e 67 20 73 74 72 69 70 4e >W).string stripN<
-0000740 6f 6e 44 69 67 69 74 28 20 69 6e 20 73 74 72 69 >onDigit( in stri<
-0000760 6e 67 20 6c 69 6e 65 20 29 20 0a 7b 0a 20 20 20 >ng line ) .{. <
-0001000 20 73 74 72 69 6e 67 20 72 65 74 3b 0a 20 20 20 > string ret;. <
-0001020 20 66 6f 72 65 61 63 68 28 75 69 6e 74 20 69 2c > foreach(uint i,<
-0001040 20 63 3b 20 6c 69 6e 65 29 20 7b 0a 20 20 20 20 > c; line) {. <
-0001060 20 20 20 20 2f 2f 20 45 72 72 6f 72 3a 20 73 74 > // Error: st<
-0001100 64 2e 63 74 79 70 65 2e 69 73 64 69 67 69 74 20 >d.ctype.isdigit <
-0001120 61 74 20 43 3a 5c 64 6d 64 5c 73 72 63 5c 70 68 >at C:\dmd\src\ph<
-0001140 6f 62 6f 73 5c 73 74 64 5c 63 74 79 70 65 2e 64 >obos\std\ctype.d<
-0001160 28 33 37 29 20 0a 20 20 20 20 20 20 20 20 2f 2f >(37) . //<
-0001200 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 > conflicts with <
-0001220 73 74 64 2e 73 74 72 65 61 6d 2e 69 73 64 69 67 >std.stream.isdig<
-0001240 69 74 20 61 74 20 43 3a 5c 64 6d 64 5c 73 72 63 >it at C:\dmd\src<
-0001260 5c 70 68 6f 62 6f 73 5c 73 74 64 5c 73 74 72 65 >\phobos\std\stre<
-0001300 61 6d 2e 64 28 32 39 32 34 29 0a 20 20 20 20 20 >am.d(2924). <
-0001320 20 20 20 69 66 20 28 21 73 74 64 2e 63 74 79 70 > if (!std.ctyp<
-0001340 65 2e 69 73 64 69 67 69 74 28 63 29 29 20 7b 0a >e.isdigit(c)) {.<
-0001360 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 > if (<
-0001400 21 72 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 >!ret). <
-0001420 20 20 20 20 20 20 72 65 74 20 3d 20 6c 69 6e 65 > ret = line<
-0001440 5b 30 2e 2e 69 5d 3b 20 20 20 20 0a 20 20 20 20 >[0..i]; . <
-0001460 20 20 20 20 7d 20 20 20 20 0a 20 20 20 20 20 20 > } . <
-0001500 20 20 65 6c 73 65 20 69 66 20 28 72 65 74 29 0a > else if (ret).<
-0001520 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 20 > ret <
-0001540 7e 3d 20 63 3b 20 20 20 20 0a 20 20 20 20 7d 20 >~= c; . } <
-0001560 20 20 20 0a 20 20 20 20 72 65 74 75 72 6e 20 72 > . return r<
-0001600 65 74 3f 72 65 74 3a 6c 69 6e 65 3b 0a 7d 0a 0a >et?ret:line;.}..<
-0001620 75 6e 69 74 74 65 73 74 20 7b 0a 20 20 20 20 61 >unittest {. a<
-0001640 73 73 65 72 74 28 20 73 74 72 69 70 4e 6f 6e 44 >ssert( stripNonD<
-0001660 69 67 69 74 28 22 61 73 64 66 22 29 20 3d 3d 20 >igit("asdf") == <
-0001700 22 22 20 20 29 3b 0a 20 20 20 20 61 73 73 65 72 >"" );. asser<
-0001720 74 28 20 73 74 72 69 70 4e 6f 6e 44 69 67 69 74 >t( stripNonDigit<
-0001740 28 22 5c 27 31 33 2d 3d 32 20 34 6b 6f 70 22 29 >("\'13-=2 4kop")<
-0001760 20 3d 3d 20 20 22 31 33 32 34 22 20 20 29 3b 0a > == "1324" );.<
-0002000 7d 0a 0a 2f 2f 2f 20 43 6f 6e 76 65 72 74 73 20 >}../// Converts <
-0002020 61 20 77 6f 72 64 20 69 6e 74 6f 20 61 20 6e 75 >a word into a nu<
-0002040 6d 62 65 72 2c 20 69 67 6e 6f 72 69 6e 67 20 61 >mber, ignoring a<
-0002060 6c 6c 20 6e 6f 6e 20 61 6c 70 68 61 20 63 68 61 >ll non alpha cha<
-0002100 72 61 63 74 65 72 73 20 20 0a 73 74 72 69 6e 67 >racters .string<
-0002120 20 77 6f 72 64 54 6f 4e 75 6d 28 20 69 6e 20 73 > wordToNum( in s<
-0002140 74 72 69 6e 67 20 77 6f 72 64 20 29 0a 7b 0a 2f >tring word ).{./<
-0002160 2f 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 >/ translation ta<
-0002200 62 6c 65 20 66 6f 72 20 74 68 65 20 74 61 73 6b >ble for the task<
-0002220 20 61 74 20 68 61 6e 64 0a 63 6f 6e 73 74 20 63 > at hand.const c<
-0002240 68 61 72 5b 32 35 36 5d 20 54 52 41 4e 53 4c 41 >har[256] TRANSLA<
-0002260 54 45 20 3d 20 20 20 20 0a 20 20 20 20 22 20 20 >TE = . " <
-0002300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0002320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 > " <
-0002340 20 2f 2f 20 30 20 20 20 0a 20 20 20 20 22 20 20 > // 0 . " <
-0002360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 31 > 01<
-0002400 32 33 34 35 36 37 38 39 20 20 20 20 20 20 22 20 >23456789 " <
-0002420 20 2f 2f 20 33 32 20 20 20 20 20 0a 20 20 20 20 > // 32 . <
-0002440 22 20 35 37 36 33 30 34 39 39 36 31 37 38 35 31 >" 57630499617851<
-0002460 38 38 31 32 33 34 37 36 32 32 33 39 20 20 20 20 >881234762239 <
-0002500 20 22 20 20 2f 2f 20 36 34 20 20 20 0a 20 20 20 > " // 64 . <
-0002520 20 22 20 35 37 36 33 30 34 39 39 36 31 37 38 35 > " 5763049961785<
-0002540 31 38 38 31 32 33 34 37 36 32 32 33 39 20 20 20 >1881234762239 <
-0002560 20 20 22 0a 20 20 20 20 22 20 20 20 20 20 20 20 > ". " <
-0002600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0002620 20 20 20 20 20 20 20 20 20 22 0a 20 20 20 20 22 > ". "<
-0002640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-*
-0002700 22 0a 20 20 20 20 22 20 20 20 20 20 20 20 20 20 >". " <
-0002720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0002740 20 20 20 20 20 20 20 22 20 20 20 20 0a 20 20 20 > " . <
-0002760 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > " <
-0003000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0003020 20 20 22 3b 0a 20 20 20 20 73 74 72 69 6e 67 20 > ";. string <
-0003040 72 65 74 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 >ret;. foreach<
-0003060 28 63 3b 20 63 61 73 74 28 75 62 79 74 65 5b 5d >(c; cast(ubyte[]<
-0003100 29 77 6f 72 64 29 0a 20 20 20 20 20 20 20 20 69 >)word). i<
-0003120 66 20 28 54 52 41 4e 53 4c 41 54 45 5b 63 5d 20 >f (TRANSLATE[c] <
-0003140 21 3d 20 27 20 27 29 0a 20 20 20 20 20 20 20 20 >!= ' '). <
-0003160 20 20 20 20 72 65 74 20 7e 3d 20 54 52 41 4e 53 > ret ~= TRANS<
-0003200 4c 41 54 45 5b 63 5d 3b 0a 20 20 20 20 72 65 74 >LATE[c];. ret<
-0003220 75 72 6e 20 72 65 74 3b 0a 7d 0a 0a 75 6e 69 74 >urn ret;.}..unit<
-0003240 74 65 73 74 20 7b 0a 20 2f 2f 20 54 65 73 74 20 >test {. // Test <
-0003260 77 6f 72 64 54 6f 4e 75 6d 20 75 73 69 6e 67 20 >wordToNum using <
-0003300 74 68 65 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 >the table from t<
-0003320 68 65 20 74 61 73 6b 20 64 65 73 63 72 69 70 74 >he task descript<
-0003340 69 6f 6e 2e 0a 20 61 73 73 65 72 74 28 20 22 30 >ion.. assert( "0<
-0003360 31 31 31 32 32 32 33 33 33 34 34 35 35 36 36 36 >1112223334455666<
-0003400 37 37 37 38 38 38 39 39 39 22 20 3d 3d 0a 20 20 >777888999" ==. <
-0003420 20 77 6f 72 64 54 6f 4e 75 6d 28 22 45 20 7c 20 > wordToNum("E | <
-0003440 4a 20 4e 20 51 20 7c 20 52 20 57 20 58 20 7c 20 >J N Q | R W X | <
-0003460 44 20 53 20 59 20 7c 20 46 20 54 20 7c 20 41 20 >D S Y | F T | A <
-0003500 4d 20 7c 20 43 20 49 20 56 20 7c 20 42 20 4b 20 >M | C I V | B K <
-0003520 55 20 7c 20 4c 20 4f 20 50 20 7c 20 47 20 48 20 >U | L O P | G H <
-0003540 5a 22 29 29 3b 0a 20 61 73 73 65 72 74 28 20 22 >Z"));. assert( "<
-0003560 30 31 31 31 32 32 32 33 33 33 34 34 35 35 36 36 >0111222333445566<
-0003600 36 37 37 37 38 38 38 39 39 39 22 20 3d 3d 20 0a >6777888999" == .<
-0003620 20 20 20 77 6f 72 64 54 6f 4e 75 6d 28 22 65 20 > wordToNum("e <
-0003640 7c 20 6a 20 6e 20 71 20 7c 20 72 20 77 20 78 20 >| j n q | r w x <
-0003660 7c 20 64 20 73 20 79 20 7c 20 66 20 74 20 7c 20 >| d s y | f t | <
-0003700 61 20 6d 20 7c 20 63 20 69 20 76 20 7c 20 62 20 >a m | c i v | b <
-0003720 6b 20 75 20 7c 20 6c 20 6f 20 70 20 7c 20 67 20 >k u | l o p | g <
-0003740 68 20 7a 22 29 29 3b 0a 20 61 73 73 65 72 74 28 >h z"));. assert(<
-0003760 20 22 30 31 32 33 34 35 36 37 38 39 22 20 3d 3d > "0123456789" ==<
-0004000 20 0a 20 20 20 77 6f 72 64 54 6f 4e 75 6d 28 22 > . wordToNum("<
-0004020 30 20 7c 20 20 20 31 20 20 20 7c 20 20 20 32 20 >0 | 1 | 2 <
-0004040 20 20 7c 20 20 20 33 20 20 20 7c 20 20 34 20 20 > | 3 | 4 <
-0004060 7c 20 20 35 20 20 7c 20 20 20 36 20 20 20 7c 20 >| 5 | 6 | <
-0004100 20 20 37 20 20 20 7c 20 20 20 38 20 20 20 7c 20 > 7 | 8 | <
-0004120 20 20 39 22 29 29 3b 0a 7d 0a 0a 76 6f 69 64 20 > 9"));.}..void <
-0004140 6d 61 69 6e 28 20 73 74 72 69 6e 67 5b 5d 20 61 >main( string[] a<
-0004160 72 67 73 20 29 0a 7b 0a 20 20 20 20 2f 2f 20 54 >rgs ).{. // T<
-0004200 68 69 73 20 61 73 73 6f 63 69 61 74 69 76 65 20 >his associative <
-0004220 61 72 72 61 79 20 6d 61 70 73 20 61 20 6e 75 6d >array maps a num<
-0004240 62 65 72 20 74 6f 20 61 6e 20 61 72 72 61 79 20 >ber to an array <
-0004260 6f 66 20 77 6f 72 64 73 2e 20 20 20 20 0a 20 20 >of words. . <
-0004300 20 20 73 74 72 69 6e 67 61 72 72 61 79 5b 73 74 > stringarray[st<
-0004320 72 69 6e 67 5d 20 20 20 20 6e 75 6d 32 77 6f 72 >ring] num2wor<
-0004340 64 73 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 >ds;.. foreach<
-0004360 28 73 74 72 69 6e 67 20 77 6f 72 64 3b 20 6e 65 >(string word; ne<
-0004400 77 20 42 75 66 66 65 72 65 64 46 69 6c 65 28 22 >w BufferedFile("<
-0004420 64 69 63 74 69 6f 6e 61 72 79 2e 74 78 74 22 20 >dictionary.txt" <
-0004440 29 20 29 0a 20 20 20 20 20 20 20 20 6e 75 6d 32 >) ). num2<
-0004460 77 6f 72 64 73 5b 20 77 6f 72 64 54 6f 4e 75 6d >words[ wordToNum<
-0004500 28 77 6f 72 64 29 20 5d 20 7e 3d 20 77 6f 72 64 >(word) ] ~= word<
-0004520 2e 64 75 70 3b 20 20 20 20 20 20 20 20 2f 2f 20 >.dup; // <
-0004540 6d 75 73 74 20 64 75 70 0a 0a 20 20 20 20 2f 2f >must dup.. //<
-0004560 2f 20 46 69 6e 64 73 20 61 6c 6c 20 61 6c 74 65 >/ Finds all alte<
-0004600 72 6e 61 74 69 76 65 73 20 66 6f 72 20 74 68 65 >rnatives for the<
-0004620 20 67 69 76 65 6e 20 6e 75 6d 62 65 72 0a 20 20 > given number. <
-0004640 20 20 2f 2f 2f 20 28 73 68 6f 75 6c 64 20 68 61 > /// (should ha<
-0004660 76 65 20 62 65 65 6e 20 73 74 72 69 70 70 65 64 >ve been stripped<
-0004700 20 66 72 6f 6d 20 6e 6f 6e 2d 64 69 67 69 74 20 > from non-digit <
-0004720 63 68 61 72 61 63 74 65 72 73 29 0a 20 20 20 20 >characters). <
-0004740 73 74 72 69 6e 67 61 72 72 61 79 20 5f 46 69 6e >stringarray _Fin<
-0004760 64 57 6f 72 64 73 28 20 73 74 72 69 6e 67 20 6e >dWords( string n<
-0005000 75 6d 62 65 72 73 2c 20 62 6f 6f 6c 20 64 69 67 >umbers, bool dig<
-0005020 69 74 6f 6b 20 29 0a 20 20 20 20 69 6e 20 7b 0a >itok ). in {.<
-0005040 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 6e > assert(n<
-0005060 75 6d 62 65 72 73 2e 6c 65 6e 67 74 68 20 3e 20 >umbers.length > <
-0005100 20 30 29 3b 20 20 20 20 0a 20 20 20 20 7d 20 20 > 0); . } <
-0005120 20 20 0a 20 20 20 20 6f 75 74 28 72 65 73 75 6c > . out(resul<
-0005140 74 29 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 72 >t) {. for<
-0005160 65 61 63 68 20 28 61 3b 20 72 65 73 75 6c 74 29 >each (a; result)<
-0005200 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 >. ass<
-0005220 65 72 74 28 20 77 6f 72 64 54 6f 4e 75 6d 28 61 >ert( wordToNum(a<
-0005240 29 20 3d 3d 20 6e 75 6d 62 65 72 73 20 29 3b 0a >) == numbers );.<
-0005260 20 20 20 20 7d 20 20 20 20 0a 20 20 20 20 62 6f > } . bo<
-0005300 64 79 20 7b 0a 20 20 20 20 20 20 20 20 73 74 72 >dy {. str<
-0005320 69 6e 67 61 72 72 61 79 20 72 65 74 3b 0a 20 20 >ingarray ret;. <
-0005340 20 20 20 20 20 20 62 6f 6f 6c 20 66 6f 75 6e 64 > bool found<
-0005360 77 6f 72 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 >word = false;. <
-0005400 20 20 20 20 20 20 66 6f 72 20 28 75 69 6e 74 20 > for (uint <
-0005420 74 3d 31 3b 20 74 3c 3d 6e 75 6d 62 65 72 73 2e >t=1; t<=numbers.<
-0005440 6c 65 6e 67 74 68 3b 20 2b 2b 74 29 20 7b 0a 20 >length; ++t) {. <
-0005460 20 20 20 20 20 20 20 20 20 20 20 61 75 74 6f 20 > auto <
-0005500 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 6e >alternatives = n<
-0005520 75 6d 62 65 72 73 5b 30 2e 2e 74 5d 20 69 6e 20 >umbers[0..t] in <
-0005540 6e 75 6d 32 77 6f 72 64 73 3b 0a 20 20 20 20 20 >num2words;. <
-0005560 20 20 20 20 20 20 20 69 66 20 28 21 61 6c 74 65 > if (!alte<
-0005600 72 6e 61 74 69 76 65 73 29 0a 20 20 20 20 20 20 >rnatives). <
-0005620 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e > contin<
-0005640 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 >ue;. <
-0005660 66 6f 75 6e 64 77 6f 72 64 20 3d 20 74 72 75 65 >foundword = true<
-0005700 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 >;. if<
-0005720 20 28 6e 75 6d 62 65 72 73 2e 6c 65 6e 67 74 68 > (numbers.length<
-0005740 20 3e 20 20 74 29 20 7b 0a 20 20 20 20 20 20 20 > > t) {. <
-0005760 20 20 20 20 20 20 20 20 20 2f 2f 20 43 6f 6d 62 > // Comb<
-0006000 69 6e 65 20 61 6c 6c 20 63 75 72 72 65 6e 74 20 >ine all current <
-0006020 61 6c 74 65 72 6e 61 74 69 76 65 73 20 77 69 74 >alternatives wit<
-0006040 68 20 61 6c 6c 20 61 6c 74 65 72 6e 61 74 69 76 >h all alternativ<
-0006060 65 73 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 >es . <
-0006100 20 20 20 20 20 20 20 20 2f 2f 20 6f 66 20 74 68 > // of th<
-0006120 65 20 72 65 73 74 20 28 6e 65 78 74 20 70 69 65 >e rest (next pie<
-0006140 63 65 20 63 61 6e 20 73 74 61 72 74 20 77 69 74 >ce can start wit<
-0006160 68 20 61 20 64 69 67 69 74 29 20 20 20 20 20 20 >h a digit) <
-0006200 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 > . <
-0006220 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 > foreach<
-0006240 20 28 61 32 3b 20 5f 46 69 6e 64 57 6f 72 64 73 > (a2; _FindWords<
-0006260 28 20 6e 75 6d 62 65 72 73 5b 74 2e 2e 24 5d 2c >( numbers[t..$],<
-0006300 20 74 72 75 65 20 20 20 20 20 29 20 29 0a 20 20 > true ) ). <
-0006320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0006340 20 20 66 6f 72 65 61 63 68 28 61 31 3b 20 2a 61 > foreach(a1; *a<
-0006360 6c 74 65 72 6e 61 74 69 76 65 73 29 0a 20 20 20 >lternatives). <
-0006400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0006420 20 20 20 20 72 65 74 20 7e 3d 20 61 31 20 7e 20 > ret ~= a1 ~ <
-0006440 22 20 22 20 7e 20 61 32 3b 0a 20 20 20 20 20 20 >" " ~ a2;. <
-0006460 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 > }. <
-0006500 20 20 20 20 65 6c 73 65 20 20 20 20 0a 20 20 20 > else . <
-0006520 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 > ret<
-0006540 20 7e 3d 20 2a 61 6c 74 65 72 6e 61 74 69 76 65 > ~= *alternative<
-0006560 73 3b 20 20 20 20 2f 2f 20 61 70 70 65 6e 64 20 >s; // append <
-0006600 74 68 65 73 65 20 61 6c 74 65 72 6e 61 74 69 76 >these alternativ<
-0006620 65 73 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 >es. }. <
-0006640 20 20 20 20 20 2f 2f 20 54 72 79 20 74 6f 20 6b > // Try to k<
-0006660 65 65 70 20 31 20 64 69 67 69 74 2c 20 6f 6e 6c >eep 1 digit, onl<
-0006700 79 20 69 66 20 77 65 27 72 65 20 61 6c 6c 6f 77 >y if we're allow<
-0006720 65 64 20 61 6e 64 20 6e 6f 20 6f 74 68 65 72 0a >ed and no other.<
-0006740 20 20 20 20 20 20 20 20 2f 2f 20 61 6c 74 65 72 > // alter<
-0006760 6e 61 74 69 76 65 73 20 77 65 72 65 20 66 6f 75 >natives were fou<
-0007000 6e 64 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 65 >nd. // Te<
-0007020 73 74 69 6e 67 20 22 72 65 74 2e 6c 65 6e 67 74 >sting "ret.lengt<
-0007040 68 22 20 6d 61 6b 65 73 20 6d 6f 72 65 20 73 65 >h" makes more se<
-0007060 6e 73 65 20 74 68 61 6e 20 74 65 73 74 69 6e 67 >nse than testing<
-0007100 20 22 66 6f 75 6e 64 77 6f 72 64 22 2c 0a 20 20 > "foundword",. <
-0007120 20 20 20 20 20 20 2f 2f 20 62 75 74 20 74 68 65 > // but the<
-0007140 20 6f 74 68 65 72 20 69 6d 70 6c 65 6d 65 6e 74 > other implement<
-0007160 61 74 69 6f 6e 73 20 73 65 65 6d 20 74 6f 20 64 >ations seem to d<
-0007200 6f 20 6a 75 73 74 20 74 68 69 73 2e 0a 20 20 20 >o just this.. <
-0007220 20 20 20 20 20 69 66 20 28 64 69 67 69 74 6f 6b > if (digitok<
-0007240 20 26 26 20 21 66 6f 75 6e 64 77 6f 72 64 29 20 > && !foundword) <
-0007260 7b 20 2f 2f 72 65 74 2e 6c 65 6e 67 74 68 20 3d >{ //ret.length =<
-0007300 3d 20 30 20 20 0a 20 20 20 20 20 20 20 20 20 20 >= 0 . <
-0007320 20 20 69 66 28 6e 75 6d 62 65 72 73 2e 6c 65 6e > if(numbers.len<
-0007340 67 74 68 20 3e 20 20 31 29 20 7b 0a 20 20 20 20 >gth > 1) {. <
-0007360 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 > // C<
-0007400 6f 6d 62 69 6e 65 20 31 20 64 69 67 69 74 20 77 >ombine 1 digit w<
-0007420 69 74 68 20 61 6c 6c 20 61 6c 74 65 6e 61 74 69 >ith all altenati<
-0007440 76 65 73 20 66 72 6f 6d 20 74 68 65 20 72 65 73 >ves from the res<
-0007460 74 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 >t . <
-0007500 20 20 20 20 20 20 2f 2f 20 28 6e 65 78 74 20 70 > // (next p<
-0007520 69 65 63 65 20 63 61 6e 20 6e 6f 74 20 73 74 61 >iece can not sta<
-0007540 72 74 20 77 69 74 68 20 61 20 64 69 67 69 74 29 >rt with a digit)<
-0007560 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 > . <
-0007600 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 > forea<
-0007620 63 68 20 28 61 3b 20 5f 46 69 6e 64 57 6f 72 64 >ch (a; _FindWord<
-0007640 73 28 20 6e 75 6d 62 65 72 73 5b 31 2e 2e 24 5d >s( numbers[1..$]<
-0007660 2c 20 66 61 6c 73 65 20 29 20 29 0a 20 20 20 20 >, false ) ). <
-0007700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 > <
-0007720 72 65 74 20 7e 3d 20 6e 75 6d 62 65 72 73 5b 30 >ret ~= numbers[0<
-0007740 2e 2e 31 5d 20 7e 20 22 20 22 20 7e 20 61 3b 0a >..1] ~ " " ~ a;.<
-0007760 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 20 20 > } <
-0010000 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c > . el<
-0010020 73 65 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 >se . <
-0010040 20 20 20 20 20 20 20 72 65 74 20 7e 3d 20 6e 75 > ret ~= nu<
-0010060 6d 62 65 72 73 5b 30 2e 2e 31 5d 3b 20 20 20 20 >mbers[0..1]; <
-0010100 2f 2f 20 6a 75 73 74 20 61 70 70 65 6e 64 20 74 >// just append t<
-0010120 68 69 73 20 64 69 67 69 74 20 20 20 20 20 20 20 >his digit <
-0010140 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 7d > . }<
-0010160 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 > . ret<
-0010200 75 72 6e 20 72 65 74 3b 0a 20 20 20 20 7d 0a 0a >urn ret;. }..<
-0010220 20 20 20 20 2f 2f 2f 20 28 54 68 69 73 20 66 75 > /// (This fu<
-0010240 6e 63 74 69 6f 6e 20 77 61 73 20 69 6e 6c 69 6e >nction was inlin<
-0010260 65 64 20 69 6e 20 74 68 65 20 6f 72 69 67 69 6e >ed in the origin<
-0010300 61 6c 20 70 72 6f 67 72 61 6d 29 20 0a 20 20 20 >al program) . <
-0010320 20 2f 2f 2f 20 46 69 6e 64 73 20 61 6c 6c 20 61 > /// Finds all a<
-0010340 6c 74 65 72 6e 61 74 69 76 65 73 20 66 6f 72 20 >lternatives for <
-0010360 74 68 65 20 67 69 76 65 6e 20 70 68 6f 6e 65 20 >the given phone <
-0010400 6e 75 6d 62 65 72 20 0a 20 20 20 20 2f 2f 2f 20 >number . /// <
-0010420 52 65 74 75 72 6e 73 3a 20 61 72 72 61 79 20 6f >Returns: array o<
-0010440 66 20 73 74 72 69 6e 67 73 20 0a 20 20 20 20 73 >f strings . s<
-0010460 74 72 69 6e 67 61 72 72 61 79 20 46 69 6e 64 57 >tringarray FindW<
-0010500 6f 72 64 73 28 20 73 74 72 69 6e 67 20 70 68 6f >ords( string pho<
-0010520 6e 65 5f 6e 75 6d 62 65 72 20 29 0a 20 20 20 20 >ne_number ). <
-0010540 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 70 >{. if (!p<
-0010560 68 6f 6e 65 5f 6e 75 6d 62 65 72 2e 6c 65 6e 67 >hone_number.leng<
-0010600 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 >th). <
-0010620 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 >return null;. <
-0010640 20 20 20 20 20 2f 2f 20 53 74 72 69 70 20 74 68 > // Strip th<
-0010660 65 20 6e 6f 6e 2d 64 69 67 69 74 20 63 68 61 72 >e non-digit char<
-0010700 61 63 74 65 72 73 20 66 72 6f 6d 20 74 68 65 20 >acters from the <
-0010720 70 68 6f 6e 65 20 6e 75 6d 62 65 72 2c 20 61 6e >phone number, an<
-0010740 64 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 61 73 >d. // pas<
-0010760 73 20 69 74 20 74 6f 20 74 68 65 20 72 65 63 75 >s it to the recu<
-0011000 72 73 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 28 >rsive function (<
-0011020 6c 65 61 64 69 6e 67 20 64 69 67 69 74 20 69 73 >leading digit is<
-0011040 20 61 6c 6c 6f 77 65 64 29 0a 20 20 20 20 20 20 > allowed). <
-0011060 20 20 72 65 74 75 72 6e 20 5f 46 69 6e 64 57 6f > return _FindWo<
-0011100 72 64 73 28 20 73 74 72 69 70 4e 6f 6e 44 69 67 >rds( stripNonDig<
-0011120 69 74 28 70 68 6f 6e 65 5f 6e 75 6d 62 65 72 29 >it(phone_number)<
-0011140 2c 20 74 72 75 65 20 29 3b 20 20 20 20 0a 20 20 >, true ); . <
-0011160 20 20 7d 20 20 20 20 0a 20 20 20 20 0a 20 20 20 > } . . <
-0011200 20 2f 2f 20 52 65 61 64 20 74 68 65 20 70 68 6f > // Read the pho<
-0011220 6e 65 20 6e 75 6d 62 65 72 73 20 20 20 20 20 0a >ne numbers .<
-0011240 20 20 20 20 66 6f 72 65 61 63 68 28 73 74 72 69 > foreach(stri<
-0011260 6e 67 20 70 68 6f 6e 65 3b 20 6e 65 77 20 42 75 >ng phone; new Bu<
-0011300 66 66 65 72 65 64 46 69 6c 65 28 22 69 6e 70 75 >fferedFile("inpu<
-0011320 74 2e 74 78 74 22 20 20 20 29 20 29 0a 20 20 20 >t.txt" ) ). <
-0011340 20 20 20 20 20 66 6f 72 65 61 63 68 28 61 6c 74 > foreach(alt<
-0011360 65 72 6e 61 74 69 76 65 3b 20 46 69 6e 64 57 6f >ernative; FindWo<
-0011400 72 64 73 28 20 70 68 6f 6e 65 20 29 20 29 0a 20 >rds( phone ) ). <
-0011420 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 > write<
-0011440 66 6c 6e 28 70 68 6f 6e 65 2c 20 22 3a 20 22 2c >fln(phone, ": ",<
-0011460 20 61 6c 74 65 72 6e 61 74 69 76 65 20 29 3b 0a > alternative );.<
-0011500 7d 0a 0a >}..<
-0011503