0000: 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 66 78 #include "stdafx
0010: 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 69 .h"..#include "i
0020: 70 5f 64 6f 63 2e 68 22 0d 0a 75 73 69 6e 67 20 p_doc.h"..using
0030: 6e 61 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 namespace editwi
0040: 6e 67 3b 0d 0a 75 73 69 6e 67 20 6e 61 6d 65 73 ng;..using names
0050: 70 61 63 65 20 65 64 69 74 77 69 6e 67 3a 3a 64 pace editwing::d
0060: 6f 63 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d oc;........//===
0070: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00b0: 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 2d 2d 2d 2d 20 69 ======..//---- i
00c0: 70 5f 70 61 72 73 65 2e 63 70 70 20 83 4c 81 5b p_parse.cpp .L.[
00d0: 83 8f 81 5b 83 68 89 f0 90 cd 0d 0a 2f 2f 0d 0a ...[.h......//..
00e0: 2f 2f 09 09 83 4c 81 5b 83 8f 81 5b 83 68 92 e8 //...L.[...[.h..
00f0: 8b 60 83 74 83 40 83 43 83 8b 82 c9 8f 5d 82 c1 .`.t.@.C.....]..
0100: 82 c4 81 41 95 db 8e 9d 82 b7 82 e9 95 b6 8e 9a ...A............
0110: 97 f1 82 f0 0d 0a 2f 2f 09 09 93 4b 90 d8 82 c9 ......//...K....
0120: 90 d8 82 e8 95 aa 82 af 82 e9 8d ec 8b c6 82 aa ................
0130: 82 b1 82 b1 81 42 0d 0a 2f 2f 0d 0a 2f 2f 2d 2d .....B..//..//--
0140: 2d 2d 20 69 70 5f 74 65 78 74 2e 63 70 70 20 20 -- ip_text.cpp
0150: 20 95 b6 8e 9a 97 f1 91 80 8d ec 81 45 91 bc 0d ...........E...
0160: 0a 2f 2f 2d 2d 2d 2d 20 69 70 5f 77 72 61 70 2e .//---- ip_wrap.
0170: 63 70 70 20 20 20 90 dc 82 e8 95 d4 82 b5 0d 0a cpp ..........
0180: 2f 2f 2d 2d 2d 2d 20 69 70 5f 73 63 72 6f 6c 6c //---- ip_scroll
0190: 2e 63 70 70 20 83 58 83 4e 83 8d 81 5b 83 8b 0d .cpp .X.N...[...
01a0: 0a 2f 2f 2d 2d 2d 2d 20 69 70 5f 64 72 61 77 2e .//---- ip_draw.
01b0: 63 70 70 20 20 20 95 60 89 e6 81 45 91 bc 0d 0a cpp .`...E....
01c0: 2f 2f 2d 2d 2d 2d 20 69 70 5f 63 75 72 73 6f 72 //---- ip_cursor
01d0: 2e 63 70 70 20 83 4a 81 5b 83 5c 83 8b 83 52 83 .cpp .J.[.\...R.
01e0: 93 83 67 83 8d 81 5b 83 8b 0d 0a 2f 2f 3d 3d 3d ..g...[....//===
01f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0200: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0230: 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f ======........//
0240: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0250: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0270: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 0d 0a 2f =========..//../
0290: 2f 20 89 f0 90 cd 8c 8b 89 ca 83 66 81 5b 83 5e / .........f.[.^
02a0: 8e 64 97 6c 0d 0a 2f 2f 20 82 b1 82 ea 82 be 82 .d.l..// .......
02b0: af 90 46 81 58 8c c6 91 a7 82 c8 8e e8 92 69 82 ..F.X.........i.
02c0: f0 8e 9d 82 bf 8d 9e 82 f1 82 c5 96 7b 93 96 82 ............{...
02d0: c9 0d 0a 2f 2f 20 91 ac 82 ad 82 c8 82 c1 82 c4 ...// ..........
02e0: 82 a2 82 e9 82 cc 82 a9 82 c7 82 a4 82 a9 82 cd ................
02f0: 95 73 96 be 81 63 28 5e 5e 3b 0d 0a 2f 2f 0d 0a .s...c(^^;..//..
0300: 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d // -------------
0310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0330: 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 69 6e 65 3a --..//..// Line:
0340: 3a 69 73 4c 69 6e 65 48 65 61 64 43 6f 6d 6d 65 :isLineHeadComme
0350: 6e 74 65 64 5f 0d 0a 2f 2f 20 20 20 20 30 3a 20 nted_..// 0:
0360: 8d 73 93 aa 82 aa 83 75 83 8d 83 62 83 4e 83 52 .s.....u...b.N.R
0370: 83 81 83 93 83 67 82 cc 93 e0 95 94 82 c5 82 cd .....g..........
0380: 82 c8 82 a2 0d 0a 2f 2f 20 20 20 20 31 3a 20 8d ......// 1: .
0390: 73 93 aa 82 aa 83 75 83 8d 83 62 83 4e 83 52 83 s.....u...b.N.R.
03a0: 81 83 93 83 67 82 cc 93 e0 95 94 0d 0a 2f 2f 0d ....g........//.
03b0: 0a 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .// ------------
03c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
03e0: 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 69 6e 65 ---..//..// Line
03f0: 3a 3a 63 6f 6d 6d 65 6e 74 54 72 61 6e 73 69 74 ::commentTransit
0400: 69 6f 6e 5f 0d 0a 2f 2f 20 20 20 30 30 3a 20 8d ion_..// 00: .
0410: 73 96 96 82 cd 8f ed 82 c9 83 52 83 81 83 93 83 s.........R.....
0420: 67 82 cc 8a 4f 0d 0a 2f 2f 20 20 20 30 31 3a 20 g...O..// 01:
0430: 8d 73 93 aa 82 c6 8d 73 96 96 82 cd 83 52 83 81 .s.....s.....R..
0440: 83 93 83 67 8f f3 91 d4 82 aa 8b 74 93 5d 0d 0a ...g.......t.]..
0450: 2f 2f 20 20 20 31 30 3a 20 8d 73 93 aa 82 c6 8d // 10: .s.....
0460: 73 96 96 82 cd 83 52 83 81 83 93 83 67 8f f3 91 s.....R.....g...
0470: d4 82 aa 93 af 82 b6 0d 0a 2f 2f 20 20 20 31 31 .........// 11
0480: 3a 20 8d 73 96 96 82 cd 8f ed 82 c9 83 52 83 81 : .s.........R..
0490: 83 93 83 67 82 cc 92 86 0d 0a 2f 2f 0d 0a 2f 2f ...g......//..//
04a0: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------
04b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
04c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
04d0: 0d 0a 2f 2f 0d 0a 2f 2f 20 88 c8 8f e3 93 f1 82 ..//..// .......
04e0: c2 82 cc 83 74 83 89 83 4f 82 f0 8c b3 82 c9 81 ....t...O.......
04f0: 41 91 4f 82 cc 8d 73 82 cc 8f ee 95 f1 82 a9 82 A.O...s.........
0500: e7 8d a1 82 cc 8d 73 82 cc 8f ee 95 f1 82 f0 0d ......s.........
0510: 0a 2f 2f 20 20 20 74 68 69 73 2e 68 65 61 64 20 .// this.head
0520: 3d 20 28 70 72 65 76 2e 74 72 61 6e 73 20 3e 3e = (prev.trans >>
0530: 20 70 72 65 76 2e 68 65 61 64 29 26 31 3b 0d 0a prev.head)&1;..
0540: 2f 2f 20 82 c5 8f 87 8e 9f 8c 76 8e 5a 82 b5 82 // .......v.Z...
0550: c4 82 a2 82 ad 82 b1 82 c6 82 aa 8f 6f 97 88 82 ............o...
0560: e9 81 42 0d 0a 2f 2f 20 82 b1 82 cc 8c 76 8e 5a ..B..// .....v.Z
0570: 82 cc 8d db 82 c9 93 e0 95 94 83 6f 83 62 83 74 ...........o.b.t
0580: 83 40 82 cc 8f f3 91 d4 82 dc 82 c5 8f 91 82 ab .@..............
0590: 8a b7 82 a6 82 e9 82 cc 82 cd 0d 0a 2f 2f 20 83 ............// .
05a0: 52 83 58 83 67 82 aa 82 c5 82 a9 82 b7 82 ac 82 R.X.g...........
05b0: e9 82 cc 82 c5 81 41 8e 9f 82 c9 8e a6 82 b7 83 ......A.........
05c0: 74 83 89 83 4f 82 f0 8c a9 82 c8 82 aa 82 e7 0d t...O...........
05d0: 0a 2f 2f 20 95 60 89 e6 90 a1 91 4f 82 c9 93 4b .// .`.....O...K
05e0: 8b 58 92 b2 90 ae 82 b7 82 e9 81 42 0d 0a 2f 2f .X.........B..//
05f0: 0d 0a 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..// -----------
0600: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0620: 2d 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 69 6e ----..//..// Lin
0630: 65 3a 3a 63 6f 6d 6d 65 6e 74 42 69 74 52 65 61 e::commentBitRea
0640: 64 79 5f 0d 0a 2f 2f 20 20 20 83 52 83 81 83 93 dy_..// .R....
0650: 83 67 83 72 83 62 83 67 82 aa 92 b2 90 ae 8d cf .g.r.b.g........
0660: 82 dd 82 a9 82 c7 82 a4 82 a9 0d 0a 2f 2f 0d 0a ............//..
0670: 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d // -------------
0680: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
06a0: 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 69 6e 65 3a --..//..// Line:
06b0: 3a 73 74 72 5f 5b 5d 0d 0a 2f 2f 20 20 20 55 43 :str_[]..// UC
06c0: 53 2d 32 83 78 83 5e 82 c5 81 41 95 b6 8e 9a 97 S-2.x.^...A.....
06d0: f1 83 66 81 5b 83 5e 82 aa 82 bb 82 cc 82 dc 82 ..f.[.^.........
06e0: dc 8a 69 94 5b 82 b3 82 ea 82 e9 81 42 0d 0a 2f ..i.[.......B../
06f0: 2f 20 20 20 82 bd 82 be 82 b5 81 41 83 70 81 5b / .......A.p.[
0700: 83 54 82 cc 8d 82 91 ac 89 bb 82 cc 82 bd 82 df .T..............
0710: 82 c9 8d c5 8f 49 95 b6 8e 9a 82 cc 8c e3 82 eb .....I..........
0720: 82 c9 0d 0a 2f 2f 20 20 20 30 78 30 30 37 66 82 ....// 0x007f.
0730: aa 95 74 89 c1 82 b3 82 ea 82 e9 81 42 0d 0a 2f ..t.........B../
0740: 2f 0d 0a 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /..// ----------
0750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0770: 2d 2d 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 4c 69 -----..//..// Li
0780: 6e 65 3a 3a 66 6c 67 5f 0d 0a 2f 2f 20 20 20 88 ne::flg_..// .
0790: ea 95 b6 8e 9a 96 88 82 c9 81 41 89 ba 82 cc 82 ..........A.....
07a0: e6 82 a4 82 c8 38 62 69 74 82 cc 83 74 83 89 83 .....8bit...t...
07b0: 4f 82 f0 8a 84 82 e8 93 96 82 c4 82 e9 0d 0a 2f O............../
07c0: 2f 20 20 20 7c 20 61 61 61 62 62 62 63 64 20 7c / | aaabbbcd |
07d0: 0d 0a 2f 2f 20 0d 0a 2f 2f 20 2d 2d 2d 2d 2d 2d ..// ..// ------
07e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f ---------..//../
0810: 2f 20 61 61 61 20 3d 3d 20 22 50 6f 73 49 6e 54 / aaa == "PosInT
0820: 6f 6b 65 6e 22 0d 0a 2f 2f 20 20 20 20 20 30 3a oken"..// 0:
0830: 20 83 67 81 5b 83 4e 83 93 82 cc 93 72 92 86 0d .g.[.N.....r...
0840: 0a 2f 2f 20 20 20 31 2d 36 3a 20 83 67 81 5b 83 .// 1-6: .g.[.
0850: 4e 83 93 82 cc 93 aa 81 42 8e 9f 82 cc 93 aa 82 N.......B.......
0860: cd 31 2d 36 95 b6 8e 9a 90 e6 81 42 0d 0a 2f 2f .1-6.......B..//
0870: 20 20 20 20 20 37 3a 20 83 67 81 5b 83 4e 83 93 7: .g.[.N..
0880: 82 cc 93 aa 81 42 8e 9f 82 cc 93 aa 82 cd 37 95 .....B........7.
0890: b6 8e 9a 88 c8 8f e3 90 e6 81 42 0d 0a 2f 2f 0d ..........B..//.
08a0: 0a 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .// ------------
08b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
08c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
08d0: 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 62 62 62 20 ---..//..// bbb
08e0: 3d 3d 20 22 54 6f 6b 65 6e 54 79 70 65 22 0d 0a == "TokenType"..
08f0: 2f 2f 20 20 20 20 20 30 3a 20 54 41 42 3a 20 83 // 0: TAB: .
0900: 5e 83 75 95 b6 8e 9a 0d 0a 2f 2f 20 20 20 20 20 ^.u......//
0910: 31 3a 20 57 53 50 3a 20 83 7a 83 8f 83 43 83 67 1: WSP: .z...C.g
0920: 83 58 83 79 81 5b 83 58 0d 0a 2f 2f 20 20 20 20 .X.y.[.X..//
0930: 20 32 3a 20 54 58 54 3a 20 95 81 92 ca 82 cc 95 2: TXT: .......
0940: b6 8e 9a 0d 0a 2f 2f 20 20 20 20 20 33 3a 20 20 .....// 3:
0950: 43 45 3a 20 83 52 83 81 83 93 83 67 8a 4a 8e 6e CE: .R.....g.J.n
0960: 83 5e 83 4f 0d 0a 2f 2f 20 20 20 20 20 34 3a 20 .^.O..// 4:
0970: 20 43 42 3a 20 83 52 83 81 83 93 83 67 8f 49 97 CB: .R.....g.I.
0980: b9 83 5e 83 4f 0d 0a 2f 2f 20 20 20 20 20 35 3a ..^.O..// 5:
0990: 20 20 4c 42 3a 20 8d 73 83 52 83 81 83 93 83 67 LB: .s.R.....g
09a0: 8a 4a 8e 6e 83 5e 83 4f 0d 0a 2f 2f 20 20 20 20 .J.n.^.O..//
09b0: 20 36 3a 20 20 51 31 3a 20 27 27 20 88 f8 97 70 6: Q1: '' ...p
09c0: 95 84 31 0d 0a 2f 2f 20 20 20 20 20 37 3a 20 20 ..1..// 7:
09d0: 51 32 3a 20 22 22 20 88 f8 97 70 95 84 32 0d 0a Q2: "" ...p..2..
09e0: 2f 2f 0d 0a 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d //..// ---------
09f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0a10: 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 0d 0a 2f 2f 20 20 ------..//..//
0a20: 63 20 20 3d 3d 20 22 69 73 4b 65 79 77 6f 72 64 c == "isKeyword
0a30: 3f 22 0d 0a 2f 2f 20 20 20 20 20 30 3a 20 83 4c ?"..// 0: .L
0a40: 81 5b 83 8f 81 5b 83 68 82 c5 82 cd 82 c8 82 a2 .[...[.h........
0a50: 0d 0a 2f 2f 20 20 20 20 20 31 3a 20 83 4c 81 5b ..// 1: .L.[
0a60: 83 8f 81 5b 83 68 0d 0a 2f 2f 0d 0a 2f 2f 20 2d ...[.h..//..// -
0a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0a90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
0aa0: 2f 2f 0d 0a 2f 2f 20 20 64 20 20 3d 3d 20 22 69 //..// d == "i
0ab0: 6e 43 6f 6d 6d 65 6e 74 3f 22 0d 0a 2f 2f 20 20 nComment?"..//
0ac0: 20 20 20 30 3a 20 83 52 83 81 83 93 83 67 82 cc 0: .R.....g..
0ad0: 92 86 82 c5 82 cd 82 c8 82 a2 0d 0a 2f 2f 20 20 ............//
0ae0: 20 20 20 31 3a 20 83 52 83 81 83 93 83 67 82 cc 1: .R.....g..
0af0: 92 86 0d 0a 2f 2f 0d 0a 2f 2f 20 2d 2d 2d 2d 2d ....//..// -----
0b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d 0a ----------......
0b30: 0d 0a 6e 61 6d 65 73 70 61 63 65 20 7b 0d 0a 2f ..namespace {../
0b40: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /---------------
0b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0b80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 ----------..// .
0b90: 52 83 81 83 93 83 67 82 cc 92 86 82 c8 82 cc 82 R.....g.........
0ba0: a9 8a 4f 82 c8 82 cc 82 a9 93 99 82 f0 94 bb 92 ..O.............
0bb0: e8 82 b7 82 e9 82 bd 82 df 82 cc 83 49 81 5b 83 ............I.[.
0bc0: 67 83 7d 83 67 83 93 0d 0a 2f 2f 0d 0a 2f 2f 20 g.}.g....//..//
0bd0: 2f 2a 20 82 aa 8f 6f 82 bd 82 e7 82 bb 82 cc 8c /* ...o.........
0be0: e3 82 eb 82 cd 83 52 83 81 83 93 83 67 82 c5 20 ......R.....g..
0bf0: 2a 2f 20 82 aa 8f 6f 82 bd 82 e7 82 bb 82 cc 8c */ ...o.........
0c00: e3 82 eb 82 cd 83 6d 81 5b 83 7d 83 8b 83 5d 81 ......m.[.}...].
0c10: 5b 83 93 0d 0a 2f 2f 20 81 63 82 c6 82 a2 82 a4 [....// .c......
0c20: 92 50 8f 83 82 c8 8b 4b 91 a5 82 c5 82 cd 8f e3 .P.....K........
0c30: 8e e8 82 ad 8d 73 82 a9 82 c8 82 a2 81 42 97 e1 .....s.......B..
0c40: 82 a6 82 ce 20 73 74 72 22 2f 2a 22 73 74 72 20 .... str"/*"str
0c50: 82 c8 82 f1 82 c4 82 e0 82 cc 82 aa 0d 0a 2f 2f ..............//
0c60: 20 8f 6f 8c bb 82 b5 82 bd 8f ea 8d 87 82 c9 8d .o.............
0c70: a2 82 c1 82 c4 82 b5 82 dc 82 a4 81 42 82 bb 82 ............B...
0c80: b1 82 c5 81 41 0d 0a 2f 2f 20 20 20 81 45 95 81 ....A..// .E..
0c90: 92 ca 82 cc 83 65 83 4c 83 58 83 67 0d 0a 2f 2f .....e.L.X.g..//
0ca0: 20 20 20 81 45 83 75 83 8d 83 62 83 4e 83 52 83 .E.u...b.N.R.
0cb0: 81 83 93 83 67 82 cc 92 86 0d 0a 2f 2f 20 20 20 ....g......//
0cc0: 81 45 8d 73 83 52 83 81 83 93 83 67 82 cc 92 86 .E.s.R.....g....
0cd0: 0d 0a 2f 2f 20 20 20 81 45 88 ea 8f 64 88 f8 97 ..// .E...d...
0ce0: 70 95 84 82 cc 92 86 0d 0a 2f 2f 20 20 20 81 45 p........// .E
0cf0: 93 f1 8f 64 88 f8 97 70 95 84 82 cc 92 86 0d 0a ...d...p........
0d00: 2f 2f 20 82 cc 82 54 8e ed 97 de 82 cc 8f f3 91 // ...T.........
0d10: d4 82 c9 95 aa 82 af 82 c4 81 41 82 bb 82 ea 82 ..........A.....
0d20: bc 82 ea 82 cc 8f ea 8d 87 82 c9 82 c2 82 a2 82 ................
0d30: c4 81 41 82 c7 82 cc 8b 4c 8d 86 82 aa 8f 6f 82 ..A.....L.....o.
0d40: bd 82 e7 0d 0a 2f 2f 20 8e 9f 82 c9 82 c7 82 cc .....// ........
0d50: 8f f3 91 d4 82 c9 88 da 82 e9 82 cc 82 a9 81 63 ...............c
0d60: 82 f0 8f 88 97 9d 82 b7 82 e9 95 4b 97 76 82 aa ...........K.v..
0d70: 82 a0 82 e9 81 42 82 bb 82 cc 8f f3 91 d4 95 cf .....B..........
0d80: 89 bb 82 cc 8b 4b 91 a5 82 f0 0d 0a 2f 2f 20 35 .....K......// 5
0d90: 78 35 82 cc 82 51 8e 9f 8c b3 94 7a 97 f1 82 c5 x5...Q.....z....
0da0: 97 5e 82 a6 82 c4 8a c7 97 9d 82 b7 82 e9 81 42 .^.............B
0db0: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..//------------
0dc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0dd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0de0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
0e00: 0a 65 6e 75 6d 20 43 6f 6d 6d 65 6e 74 44 46 41 .enum CommentDFA
0e10: 53 79 6d 62 6f 6c 7b 20 73 43 42 2c 20 73 43 45 Symbol{ sCB, sCE
0e20: 2c 20 73 4c 42 2c 20 73 51 31 2c 20 73 51 32 2c , sLB, sQ1, sQ2,
0e30: 20 73 58 58 58 20 7d 3b 0d 0a 73 74 72 75 63 74 sXXX };..struct
0e40: 20 43 6f 6d 6d 65 6e 74 44 46 41 0d 0a 7b 0d 0a CommentDFA..{..
0e50: 09 2f 2f 20 3c 8f f3 91 d4 3e 0d 0a 09 2f 2f 20 .// <....>...//
0e60: 8d c5 89 ba 88 ca 62 69 74 82 aa 81 41 8c bb 8d ......bit...A...
0e70: dd 83 52 83 81 83 93 83 67 93 e0 82 a9 82 c7 82 ..R.....g.......
0e80: a4 82 a9 82 cc 83 74 83 89 83 4f 82 c9 82 c8 82 ......t...O.....
0e90: e8 82 dc 82 b7 81 42 0d 0a 09 2f 2f 20 83 75 83 ......B...// .u.
0ea0: 8d 83 62 83 4e 83 52 83 81 83 93 83 67 92 86 82 ..b.N.R.....g...
0eb0: a9 82 c7 82 a4 82 a9 82 cd 20 28 73 74 61 74 65 ......... (state
0ec0: 3e 3e 31 29 26 28 73 74 61 74 65 29 20 82 c5 81 >>1)&(state) ...
0ed0: 42 0d 0a 09 2f 2f 20 20 20 30 30 30 3a 20 6e 6f B...// 000: no
0ee0: 72 6d 61 6c 20 74 65 78 74 20 20 20 20 20 20 20 rmal text
0ef0: 20 30 31 31 3a 20 69 6e 20 42 6c 6f 63 6b 43 6f 011: in BlockCo
0f00: 6d 6d 65 6e 74 0d 0a 09 2f 2f 20 20 20 30 30 31 mment...// 001
0f10: 3a 20 69 6e 20 4c 69 6e 65 43 6f 6d 6d 65 6e 74 : in LineComment
0f20: 20 20 20 20 20 31 30 30 3a 20 69 6e 20 51 75 6f 100: in Quo
0f30: 74 65 32 0d 0a 09 2f 2f 20 20 20 30 31 30 3a 20 te2...// 010:
0f40: 69 6e 20 51 75 6f 74 65 31 0d 0a 09 2f 2f 0d 0a in Quote1...//..
0f50: 09 2f 2f 20 3c 83 56 83 93 83 7b 83 8b 3e 0d 0a .// <.V...{..>..
0f60: 09 2f 2f 20 43 2b 2b 82 c5 8c be 82 a4 82 c6 89 .// C++.........
0f70: ba 82 cc 92 ca 82 e8 0d 0a 09 2f 2f 20 92 6c 82 ..........// .l.
0f80: cd 54 6f 6b 65 6e 54 79 70 65 83 74 83 89 83 4f .TokenType.t...O
0f90: 82 c6 83 56 83 93 83 4e 83 8d 82 b7 82 e9 82 e6 ...V...N........
0fa0: 82 a4 82 c9 82 c8 82 c1 82 c4 82 dc 82 b7 81 42 ...............B
0fb0: 0d 0a 09 2f 2f 20 20 20 30 30 30 3a 20 43 45 20 ...// 000: CE
0fc0: 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 */
0fd0: 30 31 31 3a 20 51 31 20 27 0d 0a 09 2f 2f 20 20 011: Q1 '...//
0fe0: 20 30 30 31 3a 20 43 42 20 2f 2a 20 20 20 20 20 001: CB /*
0ff0: 20 20 20 20 20 20 20 20 20 31 30 30 3a 20 51 32 100: Q2
1000: 20 22 0d 0a 09 2f 2f 20 20 20 30 31 30 3a 20 4c "...// 010: L
1010: 42 20 2f 2f 0d 0a 0d 0a 09 2f 2f 20 8f 89 8a fa B //.....// ....
1020: 8f f3 91 d4 82 f0 8e 77 92 e8 81 42 83 52 83 81 .......w...B.R..
1030: 83 93 83 67 93 e0 82 a9 83 52 83 81 83 93 83 67 ...g.....R.....g
1040: 8a 4f 82 a9 0d 0a 09 43 6f 6d 6d 65 6e 74 44 46 .O.....CommentDF
1050: 41 28 20 62 6f 6f 6c 20 69 6e 43 6f 6d 6d 65 6e A( bool inCommen
1060: 74 20 29 0d 0a 09 09 3a 20 73 74 61 74 65 28 20 t )....: state(
1070: 69 6e 43 6f 6d 6d 65 6e 74 20 3f 20 33 20 3a 20 inComment ? 3 :
1080: 30 20 29 20 7b 7d 0d 0a 0d 0a 09 2f 2f 20 93 fc 0 ) {}.....// ..
1090: 97 cd 95 84 8d 86 82 f0 97 5e 82 a6 82 c4 8f f3 .........^......
10a0: 91 d4 91 4a 88 da 0d 0a 09 76 6f 69 64 20 74 72 ...J.....void tr
10b0: 61 6e 73 69 74 28 20 69 6e 74 20 73 79 6d 20 29 ansit( int sym )
10c0: 20 0d 0a 09 09 7b 20 73 74 61 74 65 20 3d 20 74 ....{ state = t
10d0: 72 5f 74 61 62 6c 65 5b 73 74 61 74 65 5d 5b 73 r_table[state][s
10e0: 79 6d 5d 3b 20 7d 0d 0a 0d 0a 09 2f 2f 20 8c bb ym]; }.....// ..
10f0: 8d dd 82 cc 8f f3 91 d4 0d 0a 09 69 6e 74 20 73 ...........int s
1100: 74 61 74 65 3b 0d 0a 0d 0a 09 2f 2f 20 8f f3 91 tate;.....// ...
1110: d4 91 4a 88 da 83 65 81 5b 83 75 83 8b 0d 0a 09 ..J...e.[.u.....
1120: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 69 6e 74 static const int
1130: 20 74 72 5f 74 61 62 6c 65 5b 35 5d 5b 35 5d 3b tr_table[5][5];
1140: 0d 0a 7d 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e ..};....const in
1150: 74 20 43 6f 6d 6d 65 6e 74 44 46 41 3a 3a 74 72 t CommentDFA::tr
1160: 5f 74 61 62 6c 65 5b 35 5d 5b 35 5d 20 3d 20 7b _table[5][5] = {
1170: 0d 0a 09 7b 30 2c 33 2c 31 2c 32 2c 34 7d 2c 0d ...{0,3,1,2,4},.
1180: 0a 09 7b 31 2c 31 2c 31 2c 31 2c 31 7d 2c 0d 0a ..{1,1,1,1,1},..
1190: 09 7b 32 2c 32 2c 32 2c 30 2c 32 7d 2c 0d 0a 09 .{2,2,2,0,2},...
11a0: 7b 30 2c 33 2c 33 2c 33 2c 33 7d 2c 0d 0a 09 7b {0,3,3,3,3},...{
11b0: 34 2c 34 2c 34 2c 34 2c 30 7d 2c 0d 0a 7d 3b 0d 4,4,4,4,0},..};.
11c0: 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d .......//-------
11d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1210: 2d 2d 0d 0a 2f 2f 20 92 50 8f 83 82 c8 81 41 83 --..// .P.....A.
1220: 4c 81 5b 83 8f 81 5b 83 68 8a 69 94 5b 8d 5c 91 L.[...[.h.i.[.\.
1230: a2 91 cc 81 42 0d 0a 2f 2f 20 43 68 61 69 6e 48 ....B..// ChainH
1240: 61 73 68 82 cc 97 76 91 66 82 c9 82 b7 82 e9 82 ash...v.f.......
1250: bd 82 df 6e 65 78 74 83 7c 83 43 83 93 83 5e 82 ...next.|.C...^.
1260: aa 82 c2 82 af 82 c4 82 a0 82 e8 82 dc 82 b7 81 ................
1270: 42 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d B..//-----------
1280: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
12a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
12b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
12c0: 0d 0a 73 74 72 75 63 74 20 4b 65 79 77 6f 72 64 ..struct Keyword
12d0: 20 3a 20 70 75 62 6c 69 63 20 4f 62 6a 65 63 74 : public Object
12e0: 0d 0a 7b 0d 0a 09 75 6e 69 63 6f 64 65 2a 20 20 ..{...unicode*
12f0: 20 20 73 74 72 3b 0d 0a 09 63 6f 6e 73 74 20 75 str;...const u
1300: 6c 6f 6e 67 20 6c 65 6e 3b 0d 0a 09 4b 65 79 77 long len;...Keyw
1310: 6f 72 64 2a 20 20 20 6e 65 78 74 3b 0d 0a 0d 0a ord* next;....
1320: 09 4b 65 79 77 6f 72 64 28 20 63 6f 6e 73 74 20 .Keyword( const
1330: 75 6e 69 63 6f 64 65 2a 20 73 2c 20 75 6c 6f 6e unicode* s, ulon
1340: 67 20 6c 20 29 0d 0a 09 09 3a 20 73 74 72 28 20 g l )....: str(
1350: 6e 65 77 20 75 6e 69 63 6f 64 65 5b 6c 2b 31 5d new unicode[l+1]
1360: 20 29 0d 0a 09 09 2c 20 6c 65 6e 28 20 6c 20 29 )...., len( l )
1370: 0d 0a 09 09 2c 20 6e 65 78 74 28 20 4e 55 4c 4c ...., next( NULL
1380: 20 29 0d 0a 09 09 7b 20 6d 65 6d 6d 6f 76 65 28 )....{ memmove(
1390: 20 73 74 72 2c 20 73 2c 20 6c 2a 73 69 7a 65 6f str, s, l*sizeo
13a0: 66 28 75 6e 69 63 6f 64 65 29 20 29 3b 20 7d 0d f(unicode) ); }.
13b0: 0a 0d 0a 09 7e 4b 65 79 77 6f 72 64 28 29 0d 0a ....~Keyword()..
13c0: 09 09 7b 20 64 65 6c 65 74 65 20 5b 5d 20 73 74 ..{ delete [] st
13d0: 72 3b 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a r; }..};........
13e0: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //--------------
13f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1420: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 -----------..//
1430: 83 54 83 7c 81 5b 83 67 8a d6 90 94 81 42 55 6e .T.|.[.g.....BUn
1440: 69 63 6f 64 65 83 65 83 4c 83 58 83 67 93 af 8e icode.e.L.X.g...
1450: 6d 82 cc 94 e4 8a 72 0d 0a 2f 2f 2d 2d 2d 2d 2d m.....r..//-----
1460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1490: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14a0: 2d 2d 2d 2d 0d 0a 0d 0a 73 74 61 74 69 63 20 62 ----....static b
14b0: 6f 6f 6c 20 63 6f 6d 70 61 72 65 5f 73 28 63 6f ool compare_s(co
14c0: 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 61 2c 63 nst unicode* a,c
14d0: 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 62 2c onst unicode* b,
14e0: 75 6c 6f 6e 67 20 6c 29 0d 0a 7b 0d 0a 09 2f 2f ulong l)..{...//
14f0: 20 91 e5 95 b6 8e 9a 8f ac 95 b6 8e 9a 82 f0 8b ...............
1500: e6 95 ca 0d 0a 09 77 68 69 6c 65 28 20 6c 2d 2d ......while( l--
1510: 20 29 0d 0a 09 09 69 66 28 20 2a 61 2b 2b 20 21 )....if( *a++ !
1520: 3d 20 2a 62 2b 2b 20 29 0d 0a 09 09 09 72 65 74 = *b++ ).....ret
1530: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 09 72 65 74 urn false;...ret
1540: 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a urn true;..}....
1550: 73 74 61 74 69 63 20 62 6f 6f 6c 20 63 6f 6d 70 static bool comp
1560: 61 72 65 5f 69 28 63 6f 6e 73 74 20 75 6e 69 63 are_i(const unic
1570: 6f 64 65 2a 20 61 2c 63 6f 6e 73 74 20 75 6e 69 ode* a,const uni
1580: 63 6f 64 65 2a 20 62 2c 75 6c 6f 6e 67 20 6c 29 code* b,ulong l)
1590: 0d 0a 7b 0d 0a 09 2f 2f 20 91 e5 95 b6 8e 9a 8f ..{...// .......
15a0: ac 95 b6 8e 9a 82 f0 8b e6 95 ca 82 b5 82 c8 82 ................
15b0: a2 81 69 8e 47 81 6a 0d 0a 09 77 68 69 6c 65 28 ..i.G.j...while(
15c0: 20 6c 2d 2d 20 29 0d 0a 09 09 69 66 28 20 28 28 l-- )....if( ((
15d0: 2a 61 2b 2b 29 20 5e 20 28 2a 62 2b 2b 29 29 20 *a++) ^ (*b++))
15e0: 26 20 30 78 64 66 20 29 0d 0a 09 09 09 72 65 74 & 0xdf ).....ret
15f0: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 09 72 65 74 urn false;...ret
1600: 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a urn true;..}....
1610: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....//----------
1620: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1630: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1640: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
1660: 0a 2f 2f 20 97 5e 82 a6 82 e7 82 ea 82 bd 8b 4c .// .^.........L
1670: 8d 86 95 b6 8e 9a 97 f1 82 a9 82 e7 81 41 83 52 .............A.R
1680: 83 81 83 93 83 67 8a 4a 8e 6e 93 99 82 cc 88 d3 .....g.J.n......
1690: 96 a1 82 cc 82 a0 82 e9 83 67 81 5b 83 4e 83 93 .........g.[.N..
16a0: 82 f0 0d 0a 2f 2f 20 90 d8 82 e8 8f 6f 82 b5 82 ....// .....o...
16b0: c4 82 ad 82 e9 82 bd 82 df 82 cc 8d 5c 91 a2 81 ............\...
16c0: 42 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d B..//-----------
16d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
1710: 0d 0a 63 6c 61 73 73 20 54 61 67 4d 61 70 0d 0a ..class TagMap..
1720: 7b 0d 0a 09 4b 65 79 77 6f 72 64 2a 20 74 61 67 {...Keyword* tag
1730: 5f 5b 33 5d 3b 20 2f 2f 20 30 3a 43 45 20 31 3a _[3]; // 0:CE 1:
1740: 43 42 20 32 3a 4c 42 0d 0a 09 62 6f 6f 6c 20 65 CB 2:LB...bool e
1750: 73 63 5f 2c 20 71 31 5f 2c 20 71 32 5f 2c 20 6d sc_, q1_, q2_, m
1760: 61 70 5f 5b 31 32 38 5d 3b 0d 0a 0d 0a 70 75 62 ap_[128];....pub
1770: 6c 69 63 3a 0d 0a 0d 0a 09 54 61 67 4d 61 70 28 lic:.....TagMap(
1780: 20 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 const unicode*
1790: 63 62 2c 20 75 6c 6f 6e 67 20 63 62 6c 65 6e 2c cb, ulong cblen,
17a0: 0d 0a 09 09 20 20 20 20 63 6f 6e 73 74 20 75 6e .... const un
17b0: 69 63 6f 64 65 2a 20 63 65 2c 20 75 6c 6f 6e 67 icode* ce, ulong
17c0: 20 63 65 6c 65 6e 2c 0d 0a 09 09 20 20 20 20 63 celen,.... c
17d0: 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 6c 62 onst unicode* lb
17e0: 2c 20 75 6c 6f 6e 67 20 6c 62 6c 65 6e 2c 0d 0a , ulong lblen,..
17f0: 09 09 20 20 20 20 62 6f 6f 6c 20 71 31 2c 20 62 .. bool q1, b
1800: 6f 6f 6c 20 71 32 2c 20 62 6f 6f 6c 20 65 73 63 ool q2, bool esc
1810: 20 29 0d 0a 09 09 3a 20 71 31 5f 20 28 20 71 31 )....: q1_ ( q1
1820: 20 29 0d 0a 09 09 2c 20 71 32 5f 20 28 20 71 32 )...., q2_ ( q2
1830: 20 29 0d 0a 09 09 2c 20 65 73 63 5f 28 20 65 73 )...., esc_( es
1840: 63 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 27 2f c )...{....// '/
1850: 27 20 82 c5 8e 6e 82 dc 82 e9 8b 4c 8d 86 82 cd ' ...n.....L....
1860: 8e 67 82 ed 82 ea 82 c4 82 a2 82 e9 82 a9 81 63 .g.............c
1870: 81 48 0d 0a 09 09 2f 2f 20 82 dd 82 bd 82 a2 82 .H....// .......
1880: c8 81 41 82 50 95 b6 8e 9a 96 da 82 cc 82 dd 82 ..A.P...........
1890: cc 83 60 83 46 83 62 83 4e 82 c9 8e 67 82 a4 95 ..`.F.b.N...g...
18a0: 5c 82 f0 8d ec 90 ac 0d 0a 09 09 74 61 67 5f 5b \..........tag_[
18b0: 30 5d 20 3d 20 74 61 67 5f 5b 31 5d 20 3d 20 74 0] = tag_[1] = t
18c0: 61 67 5f 5b 32 5d 20 3d 20 4e 55 4c 4c 3b 0d 0a ag_[2] = NULL;..
18d0: 09 09 6d 65 6d 30 30 28 20 6d 61 70 5f 2c 20 73 ..mem00( map_, s
18e0: 69 7a 65 6f 66 28 6d 61 70 5f 29 20 29 3b 0d 0a izeof(map_) );..
18f0: 09 09 6d 61 70 5f 5b 4c 27 5c 27 27 5d 20 3d 20 ..map_[L'\''] =
1900: 71 31 3b 0d 0a 09 09 6d 61 70 5f 5b 4c 27 5c 22 q1;....map_[L'\"
1910: 27 5d 20 3d 20 71 32 3b 0d 0a 09 09 6d 61 70 5f '] = q2;....map_
1920: 5b 4c 27 5c 5c 27 5d 20 3d 20 65 73 63 3b 0d 0a [L'\\'] = esc;..
1930: 09 09 69 66 28 20 63 65 6c 65 6e 21 3d 30 20 29 ..if( celen!=0 )
1940: 7b 20 6d 61 70 5f 5b 2a 63 65 5d 3d 74 72 75 65 { map_[*ce]=true
1950: 3b 20 74 61 67 5f 5b 30 5d 3d 6e 65 77 20 4b 65 ; tag_[0]=new Ke
1960: 79 77 6f 72 64 28 63 65 2c 63 65 6c 65 6e 29 3b yword(ce,celen);
1970: 20 7d 0d 0a 09 09 69 66 28 20 63 62 6c 65 6e 21 }....if( cblen!
1980: 3d 30 20 29 7b 20 6d 61 70 5f 5b 2a 63 62 5d 3d =0 ){ map_[*cb]=
1990: 74 72 75 65 3b 20 74 61 67 5f 5b 31 5d 3d 6e 65 true; tag_[1]=ne
19a0: 77 20 4b 65 79 77 6f 72 64 28 63 62 2c 63 62 6c w Keyword(cb,cbl
19b0: 65 6e 29 3b 20 7d 0d 0a 09 09 69 66 28 20 6c 62 en); }....if( lb
19c0: 6c 65 6e 21 3d 30 20 29 7b 20 6d 61 70 5f 5b 2a len!=0 ){ map_[*
19d0: 6c 62 5d 3d 74 72 75 65 3b 20 74 61 67 5f 5b 32 lb]=true; tag_[2
19e0: 5d 3d 6e 65 77 20 4b 65 79 77 6f 72 64 28 6c 62 ]=new Keyword(lb
19f0: 2c 6c 62 6c 65 6e 29 3b 20 7d 0d 0a 09 7d 0d 0a ,lblen); }...}..
1a00: 0d 0a 09 7e 54 61 67 4d 61 70 28 29 0d 0a 09 7b ...~TagMap()...{
1a10: 0d 0a 09 09 2f 2f 20 83 4c 81 5b 83 8f 81 5b 83 ....// .L.[...[.
1a20: 68 89 f0 95 fa 0d 0a 09 09 64 65 6c 65 74 65 20 h........delete
1a30: 74 61 67 5f 5b 30 5d 3b 0d 0a 09 09 64 65 6c 65 tag_[0];....dele
1a40: 74 65 20 74 61 67 5f 5b 31 5d 3b 0d 0a 09 09 64 te tag_[1];....d
1a50: 65 6c 65 74 65 20 74 61 67 5f 5b 32 5d 3b 0d 0a elete tag_[2];..
1a60: 09 7d 0d 0a 0d 0a 09 62 6f 6f 6c 20 64 6f 65 73 .}.....bool does
1a70: 5f 65 73 63 28 29 0d 0a 09 7b 0d 0a 09 09 2f 2f _esc()...{....//
1a80: 20 5c 20 82 c9 82 e6 82 e9 83 47 83 58 83 50 81 \ .......G.X.P.
1a90: 5b 83 76 82 f0 82 b7 82 e9 82 a9 82 c7 82 a4 82 [.v.............
1aa0: a9 0d 0a 09 09 72 65 74 75 72 6e 20 65 73 63 5f .....return esc_
1ab0: 3b 0d 0a 09 7d 0d 0a 0d 0a 09 75 6c 6f 6e 67 20 ;...}.....ulong
1ac0: 53 79 6d 62 6f 6c 4c 6f 6f 70 28 0d 0a 09 09 63 SymbolLoop(....c
1ad0: 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 73 74 onst unicode* st
1ae0: 72 2c 20 75 6c 6f 6e 67 20 6c 65 6e 2c 20 75 6c r, ulong len, ul
1af0: 6f 6e 67 26 20 6d 6c 65 6e 2c 20 69 6e 74 26 20 ong& mlen, int&
1b00: 73 79 6d 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 sym )...{....//
1b10: 97 4c 88 d3 96 a1 82 c8 8b 4c 8d 86 82 c9 83 7d .L.......L.....}
1b20: 83 62 83 60 82 b7 82 e9 82 dc 82 c5 83 8b 81 5b .b.`...........[
1b30: 83 76 0d 0a 09 09 2f 2f 20 95 d4 92 6c 82 c9 81 .v....// ...l...
1b40: 41 83 7d 83 62 83 60 82 b7 82 e9 82 dc 82 c5 82 A.}.b.`.........
1b50: c9 94 f2 82 ce 82 b5 82 bd 95 b6 8e 9a 90 94 81 ................
1b60: 41 0d 0a 09 09 2f 2f 20 6d 6c 65 6e 2c 73 79 6d A....// mlen,sym
1b70: 82 c9 81 41 83 7d 83 62 83 60 82 b5 82 bd 8b 4c ...A.}.b.`.....L
1b80: 8d 86 82 cc 8f ee 95 f1 82 f0 95 d4 82 b7 0d 0a ................
1b90: 0d 0a 09 09 69 6e 74 20 69 3b 0d 0a 09 09 75 6c ....int i;....ul
1ba0: 6f 6e 67 20 61 6e 73 3d 30 3b 0d 0a 09 09 66 6f ong ans=0;....fo
1bb0: 72 28 20 73 79 6d 3d 73 58 58 58 2c 20 6d 6c 65 r( sym=sXXX, mle
1bc0: 6e 3d 31 3b 20 61 6e 73 3c 6c 65 6e 3b 20 2b 2b n=1; ans<len; ++
1bd0: 61 6e 73 20 29 0d 0a 09 09 09 69 66 28 20 6d 61 ans ).....if( ma
1be0: 70 5f 5b 73 74 72 5b 61 6e 73 5d 5d 20 29 0d 0a p_[str[ans]] )..
1bf0: 09 09 09 7b 0d 0a 09 09 09 09 66 6f 72 28 20 69 ...{......for( i
1c00: 3d 32 3b 20 69 3e 3d 30 3b 20 2d 2d 69 20 29 0d =2; i>=0; --i ).
1c10: 0a 09 09 09 09 09 69 66 28 20 74 61 67 5f 5b 69 ......if( tag_[i
1c20: 5d 21 3d 4e 55 4c 4c 0d 0a 09 09 09 09 09 20 26 ]!=NULL....... &
1c30: 26 20 74 61 67 5f 5b 69 5d 2d 3e 6c 65 6e 20 3c & tag_[i]->len <
1c40: 3d 20 6c 65 6e 2d 61 6e 73 0d 0a 09 09 09 09 09 = len-ans.......
1c50: 20 26 26 20 63 6f 6d 70 61 72 65 5f 73 28 0d 0a && compare_s(..
1c60: 09 09 09 09 09 09 74 61 67 5f 5b 69 5d 2d 3e 73 ......tag_[i]->s
1c70: 74 72 2c 20 73 74 72 2b 61 6e 73 2c 20 74 61 67 tr, str+ans, tag
1c80: 5f 5b 69 5d 2d 3e 6c 65 6e 20 29 20 29 0d 0a 09 _[i]->len ) )...
1c90: 09 09 09 09 7b 0d 0a 09 09 09 09 09 09 73 79 6d ....{........sym
1ca0: 20 20 3d 20 69 3b 0d 0a 09 09 09 09 09 09 6d 6c = i;........ml
1cb0: 65 6e 20 3d 20 74 61 67 5f 5b 69 5d 2d 3e 6c 65 en = tag_[i]->le
1cc0: 6e 3b 0d 0a 09 09 09 09 09 09 67 6f 74 6f 20 73 n;........goto s
1cd0: 79 6d 62 6f 6c 66 6f 75 6e 64 3b 0d 0a 09 09 09 ymbolfound;.....
1ce0: 09 09 7d 0d 0a 09 09 09 09 69 66 28 20 73 74 72 ..}......if( str
1cf0: 5b 61 6e 73 5d 20 3d 3d 20 4c 27 5c 27 27 20 29 [ans] == L'\'' )
1d00: 20 2f 2f 20 88 ea 8f 64 88 f8 97 70 95 84 0d 0a // ...d...p....
1d10: 09 09 09 09 7b 0d 0a 09 09 09 09 09 69 66 28 20 ....{.......if(
1d20: 71 31 5f 20 29 0d 0a 09 09 09 09 09 7b 0d 0a 09 q1_ ).......{...
1d30: 09 09 09 09 09 73 79 6d 20 20 3d 20 73 51 31 3b .....sym = sQ1;
1d40: 0d 0a 09 09 09 09 09 09 67 6f 74 6f 20 73 79 6d ........goto sym
1d50: 62 6f 6c 66 6f 75 6e 64 3b 0d 0a 09 09 09 09 09 bolfound;.......
1d60: 7d 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 09 65 6c }......}......el
1d70: 73 65 20 69 66 28 20 73 74 72 5b 61 6e 73 5d 20 se if( str[ans]
1d80: 3d 3d 20 4c 27 5c 22 27 20 29 20 2f 2f 20 93 f1 == L'\"' ) // ..
1d90: 8f 64 88 f8 97 70 95 84 0d 0a 09 09 09 09 7b 0d .d...p........{.
1da0: 0a 09 09 09 09 09 69 66 28 20 71 32 5f 20 29 0d ......if( q2_ ).
1db0: 0a 09 09 09 09 09 7b 0d 0a 09 09 09 09 09 09 73 ......{........s
1dc0: 79 6d 20 20 3d 20 73 51 32 3b 0d 0a 09 09 09 09 ym = sQ2;......
1dd0: 09 09 67 6f 74 6f 20 73 79 6d 62 6f 6c 66 6f 75 ..goto symbolfou
1de0: 6e 64 3b 0d 0a 09 09 09 09 09 7d 0d 0a 09 09 09 nd;.......}.....
1df0: 09 7d 0d 0a 09 09 09 09 65 6c 73 65 20 69 66 28 .}......else if(
1e00: 20 73 74 72 5b 61 6e 73 5d 20 3d 3d 20 4c 27 5c str[ans] == L'\
1e10: 5c 27 20 29 20 2f 2f 20 5c 20 82 cc 8c e3 82 cc \' ) // \ ......
1e20: 95 b6 8e 9a 82 cd 53 6b 69 70 0d 0a 09 09 09 09 ......Skip......
1e30: 7b 0d 0a 09 09 09 09 09 69 66 28 20 65 73 63 5f {.......if( esc_
1e40: 20 26 26 20 61 6e 73 2b 31 3c 6c 65 6e 20 29 0d && ans+1<len ).
1e50: 0a 09 09 09 09 09 09 2b 2b 61 6e 73 3b 0d 0a 09 .......++ans;...
1e60: 09 09 09 7d 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 73 ...}.....}.....s
1e70: 79 6d 62 6f 6c 66 6f 75 6e 64 3a 0d 0a 09 09 72 ymbolfound:....r
1e80: 65 74 75 72 6e 20 61 6e 73 3b 0d 0a 09 7d 0d 0a eturn ans;...}..
1e90: 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d };........//----
1ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ee0: 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 97 5e 82 a6 82 e7 -----..// .^....
1ef0: 82 ea 82 bd 95 b6 8e 9a 97 f1 82 aa 83 4c 81 5b .............L.[
1f00: 83 8f 81 5b 83 68 82 a9 82 c7 82 a4 82 a9 8d 82 ...[.h..........
1f10: 91 ac 94 bb 92 e8 82 b7 82 e9 82 bd 82 df 82 cc ................
1f20: 83 6e 83 62 83 56 83 85 95 5c 0d 0a 2f 2f 2d 2d .n.b.V...\..//--
1f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1f50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1f60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1f70: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 63 6c 61 73 73 -------....class
1f80: 20 4b 65 79 77 6f 72 64 4d 61 70 0d 0a 7b 0d 0a KeywordMap..{..
1f90: 09 4b 65 79 77 6f 72 64 2a 20 20 20 20 20 20 20 .Keyword*
1fa0: 20 20 20 62 61 63 6b 65 74 5f 5b 34 30 39 36 5d backet_[4096]
1fb0: 3b 0d 0a 09 73 74 6f 72 61 67 65 3c 4b 65 79 77 ;...storage<Keyw
1fc0: 6f 72 64 2a 3e 20 64 75 73 74 62 6f 78 5f 3b 0d ord*> dustbox_;.
1fd0: 0a 09 62 6f 6f 6c 20 28 2a 63 6f 6d 70 61 72 65 ..bool (*compare
1fe0: 5f 29 28 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 _)(const unicode
1ff0: 2a 2c 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a *,const unicode*
2000: 2c 75 6c 6f 6e 67 29 3b 0d 0a 0d 0a 70 75 62 6c ,ulong);....publ
2010: 69 63 3a 0d 0a 0d 0a 09 4b 65 79 77 6f 72 64 4d ic:.....KeywordM
2020: 61 70 28 20 62 6f 6f 6c 20 62 43 61 73 65 53 65 ap( bool bCaseSe
2030: 6e 73 69 74 69 76 65 20 29 0d 0a 09 09 3a 20 63 nsitive )....: c
2040: 6f 6d 70 61 72 65 5f 28 20 62 43 61 73 65 53 65 ompare_( bCaseSe
2050: 6e 73 69 74 69 76 65 20 3f 20 63 6f 6d 70 61 72 nsitive ? compar
2060: 65 5f 73 20 3a 20 63 6f 6d 70 61 72 65 5f 69 20 e_s : compare_i
2070: 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 83 6e 83 62 )...{....// .n.b
2080: 83 56 83 85 95 5c 8f 89 8a fa 89 bb 0d 0a 09 09 .V...\..........
2090: 6d 65 6d 30 30 28 20 62 61 63 6b 65 74 5f 2c 20 mem00( backet_,
20a0: 73 69 7a 65 6f 66 28 62 61 63 6b 65 74 5f 29 20 sizeof(backet_)
20b0: 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 7e 4b 65 79 77 );...}.....~Keyw
20c0: 6f 72 64 4d 61 70 28 29 0d 0a 09 7b 0d 0a 09 09 ordMap()...{....
20d0: 2f 2f 20 89 f0 95 fa 0d 0a 09 09 66 6f 72 28 20 // ........for(
20e0: 75 6c 6f 6e 67 20 69 3d 30 3b 20 69 3c 64 75 73 ulong i=0; i<dus
20f0: 74 62 6f 78 5f 2e 73 69 7a 65 28 29 3b 20 2b 2b tbox_.size(); ++
2100: 69 20 29 0d 0a 09 09 09 64 65 6c 65 74 65 20 64 i ).....delete d
2110: 75 73 74 62 6f 78 5f 5b 69 5d 3b 0d 0a 09 7d 0d ustbox_[i];...}.
2120: 0a 0d 0a 09 76 6f 69 64 20 41 64 64 4b 65 79 77 ....void AddKeyw
2130: 6f 72 64 28 20 63 6f 6e 73 74 20 75 6e 69 63 6f ord( const unico
2140: 64 65 2a 20 73 74 72 2c 20 75 6c 6f 6e 67 20 6c de* str, ulong l
2150: 65 6e 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 83 en )...{....// .
2160: 66 81 5b 83 5e 93 6f 98 5e 0d 0a 09 09 4b 65 79 f.[.^.o.^....Key
2170: 77 6f 72 64 2a 20 78 20 3d 20 6e 65 77 20 4b 65 word* x = new Ke
2180: 79 77 6f 72 64 28 73 74 72 2c 6c 65 6e 29 3b 0d yword(str,len);.
2190: 0a 09 09 69 6e 74 20 20 20 20 20 20 68 20 3d 20 ...int h =
21a0: 68 61 73 68 28 73 74 72 2c 6c 65 6e 29 3b 0d 0a hash(str,len);..
21b0: 0d 0a 09 09 69 66 28 20 62 61 63 6b 65 74 5f 5b ....if( backet_[
21c0: 68 5d 20 3d 3d 20 4e 55 4c 4c 20 29 0d 0a 09 09 h] == NULL )....
21d0: 7b 0d 0a 09 09 09 2f 2f 20 83 6e 83 62 83 56 83 {.....// .n.b.V.
21e0: 85 83 65 81 5b 83 75 83 8b 82 aa 8b f3 82 cc 8f ..e.[.u.........
21f0: ea 8d 87 0d 0a 09 09 09 62 61 63 6b 65 74 5f 5b ........backet_[
2200: 68 5d 20 3d 20 78 3b 0d 0a 09 09 7d 0d 0a 09 09 h] = x;....}....
2210: 65 6c 73 65 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f else....{.....//
2220: 20 83 60 83 46 83 43 83 93 96 96 94 f6 82 c9 8c .`.F.C.........
2230: 71 82 ae 8f ea 8d 87 0d 0a 09 09 09 4b 65 79 77 q...........Keyw
2240: 6f 72 64 20 2a 71 3d 62 61 63 6b 65 74 5f 5b 68 ord *q=backet_[h
2250: 5d 2c 2a 70 3d 62 61 63 6b 65 74 5f 5b 68 5d 2d ],*p=backet_[h]-
2260: 3e 6e 65 78 74 3b 0d 0a 09 09 09 77 68 69 6c 65 >next;.....while
2270: 28 20 70 21 3d 4e 55 4c 4c 20 29 0d 0a 09 09 09 ( p!=NULL ).....
2280: 09 71 3d 70 2c 20 70 3d 70 2d 3e 6e 65 78 74 3b .q=p, p=p->next;
2290: 0d 0a 09 09 09 71 2d 3e 6e 65 78 74 20 3d 20 78 .....q->next = x
22a0: 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 2f 2f 20 83 ;....}......// .
22b0: 66 81 5b 83 5e 83 4e 83 8a 83 41 97 70 82 cc 83 f.[.^.N...A.p...
22c0: 8a 83 58 83 67 82 c9 82 e0 93 fc 82 ea 82 c4 82 ..X.g...........
22d0: a8 82 ad 0d 0a 09 09 64 75 73 74 62 6f 78 5f 2e .......dustbox_.
22e0: 41 64 64 28 78 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 Add(x);...}.....
22f0: 75 6c 6f 6e 67 20 69 73 4b 65 79 77 6f 72 64 28 ulong isKeyword(
2300: 20 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 const unicode*
2310: 73 74 72 2c 20 75 6c 6f 6e 67 20 6c 65 6e 20 29 str, ulong len )
2320: 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 93 6f 98 5e 82 ...{....// .o.^.
2330: b3 82 ea 82 c4 82 a2 82 e9 83 4c 81 5b 83 8f 81 ..........L.[...
2340: 5b 83 68 82 c6 88 ea 92 76 82 b7 82 e9 82 a9 81 [.h.....v.......
2350: 48 0d 0a 09 09 66 6f 72 28 20 4b 65 79 77 6f 72 H....for( Keywor
2360: 64 2a 20 70 3d 62 61 63 6b 65 74 5f 5b 68 61 73 d* p=backet_[has
2370: 68 28 73 74 72 2c 6c 65 6e 29 5d 3b 20 70 21 3d h(str,len)]; p!=
2380: 4e 55 4c 4c 3b 20 70 3d 70 2d 3e 6e 65 78 74 20 NULL; p=p->next
2390: 29 0d 0a 09 09 09 69 66 28 20 70 2d 3e 6c 65 6e ).....if( p->len
23a0: 3d 3d 6c 65 6e 20 26 26 20 63 6f 6d 70 61 72 65 ==len && compare
23b0: 5f 28 20 70 2d 3e 73 74 72 2c 20 73 74 72 2c 20 _( p->str, str,
23c0: 6c 65 6e 20 29 20 29 0d 0a 09 09 09 09 72 65 74 len ) )......ret
23d0: 75 72 6e 20 32 3b 0d 0a 09 09 72 65 74 75 72 6e urn 2;....return
23e0: 20 30 3b 0d 0a 09 7d 0d 0a 0d 0a 70 72 69 76 61 0;...}....priva
23f0: 74 65 3a 0d 0a 0d 0a 09 73 74 61 74 69 63 20 69 te:.....static i
2400: 6e 74 20 68 61 73 68 28 20 63 6f 6e 73 74 20 75 nt hash( const u
2410: 6e 69 63 6f 64 65 2a 20 61 2c 20 75 6c 6f 6e 67 nicode* a, ulong
2420: 20 61 6c 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 al )...{....//
2430: 31 32 62 69 74 82 c9 92 d7 82 b7 82 df 82 c1 82 12bit...........
2440: bf 82 e1 8e 47 82 c8 83 6e 83 62 83 56 83 85 8a ....G...n.b.V...
2450: d6 90 94 0d 0a 09 09 2f 2f 20 83 8b 81 5b 83 60 .......// ...[.`
2460: 83 93 95 aa 82 af 82 e9 82 cc 96 ca 93 7c 82 c8 .............|..
2470: 82 cc 82 c5 81 41 91 e5 95 b6 8e 9a 8f ac 95 b6 .....A..........
2480: 8e 9a 82 cd 8f ed 82 c9 8b e6 95 ca 82 b3 82 ea ................
2490: 82 c8 82 a2 81 42 28 5e 5e 3b 0d 0a 09 09 69 6e .....B(^^;....in
24a0: 74 20 68 3d 30 2c 69 3d 30 3b 0d 0a 09 09 77 68 t h=0,i=0;....wh
24b0: 69 6c 65 28 20 61 6c 2d 2d 20 29 0d 0a 09 09 7b ile( al-- )....{
24c0: 0d 0a 09 09 09 68 20 5e 3d 20 28 28 2a 28 61 2b .....h ^= ((*(a+
24d0: 2b 29 26 30 78 64 66 29 3c 3c 69 29 3b 0d 0a 09 +)&0xdf)<<i);...
24e0: 09 09 69 20 3d 20 28 69 2b 35 29 26 37 3b 0d 0a ..i = (i+5)&7;..
24f0: 09 09 7d 0d 0a 09 09 72 65 74 75 72 6e 20 68 26 ..}....return h&
2500: 34 30 39 35 3b 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d 4095;...}..};...
2510: 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d .....//---------
2520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2560: 0d 0a 2f 2f 20 88 c8 8f e3 82 cc 93 b9 8b ef 97 ..// ...........
2570: a7 82 c4 82 c5 82 e0 82 c1 82 c4 81 41 83 65 83 ............A.e.
2580: 4c 83 58 83 67 82 cc 89 f0 90 cd 82 f0 8d 73 82 L.X.g.........s.
2590: a4 50 61 72 73 65 72 0d 0a 2f 2f 2d 2d 2d 2d 2d .Parser..//-----
25a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
25b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
25c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
25d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
25e0: 2d 2d 2d 2d 0d 0a 7d 0d 0a 0d 0a 63 6c 61 73 73 ----..}....class
25f0: 20 65 64 69 74 77 69 6e 67 3a 3a 64 6f 63 3a 3a editwing::doc::
2600: 50 61 72 73 65 72 0d 0a 7b 0d 0a 09 4b 65 79 77 Parser..{...Keyw
2610: 6f 72 64 4d 61 70 20 6b 77 64 5f 3b 0d 0a 09 54 ordMap kwd_;...T
2620: 61 67 4d 61 70 20 20 20 20 20 74 61 67 5f 3b 0d agMap tag_;.
2630: 0a 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 2f 2f 20 ...public:...//
2640: 8f 89 8a fa 89 bb 82 50 0d 0a 09 50 61 72 73 65 .......P...Parse
2650: 72 28 0d 0a 09 09 63 6f 6e 73 74 20 75 6e 69 63 r(....const unic
2660: 6f 64 65 2a 20 63 62 2c 20 75 6c 6f 6e 67 20 63 ode* cb, ulong c
2670: 62 6c 65 6e 2c 0d 0a 09 09 63 6f 6e 73 74 20 75 blen,....const u
2680: 6e 69 63 6f 64 65 2a 20 63 65 2c 20 75 6c 6f 6e nicode* ce, ulon
2690: 67 20 63 65 6c 65 6e 2c 0d 0a 09 09 63 6f 6e 73 g celen,....cons
26a0: 74 20 75 6e 69 63 6f 64 65 2a 20 6c 62 2c 20 75 t unicode* lb, u
26b0: 6c 6f 6e 67 20 6c 62 6c 65 6e 2c 0d 0a 09 09 62 long lblen,....b
26c0: 6f 6f 6c 20 71 31 2c 20 62 6f 6f 6c 20 71 32 2c ool q1, bool q2,
26d0: 20 62 6f 6f 6c 20 65 73 63 2c 0d 0a 09 09 62 6f bool esc,....bo
26e0: 6f 6c 20 63 61 73 65 73 65 6e 73 69 74 69 76 65 ol casesensitive
26f0: 0d 0a 09 29 0d 0a 09 09 3a 20 74 61 67 5f 28 20 ...)....: tag_(
2700: 63 62 2c 20 63 62 6c 65 6e 2c 20 63 65 2c 20 63 cb, cblen, ce, c
2710: 65 6c 65 6e 2c 20 6c 62 2c 20 6c 62 6c 65 6e 2c elen, lb, lblen,
2720: 20 71 31 2c 20 71 32 2c 20 65 73 63 20 29 0d 0a q1, q2, esc )..
2730: 09 09 2c 20 6b 77 64 5f 28 20 63 61 73 65 73 65 .., kwd_( casese
2740: 6e 73 69 74 69 76 65 20 29 0d 0a 09 7b 0d 0a 09 nsitive )...{...
2750: 7d 0d 0a 0d 0a 09 2f 2f 20 8f 89 8a fa 89 bb 82 }.....// .......
2760: 51 81 46 83 4c 81 5b 83 8f 81 5b 83 68 92 c7 89 Q.F.L.[...[.h...
2770: c1 0d 0a 09 76 6f 69 64 20 41 64 64 4b 65 79 77 ....void AddKeyw
2780: 6f 72 64 28 20 63 6f 6e 73 74 20 75 6e 69 63 6f ord( const unico
2790: 64 65 2a 20 73 74 72 2c 20 75 6c 6f 6e 67 20 6c de* str, ulong l
27a0: 65 6e 20 29 0d 0a 09 7b 0d 0a 09 09 6b 77 64 5f en )...{....kwd_
27b0: 2e 41 64 64 4b 65 79 77 6f 72 64 28 20 73 74 72 .AddKeyword( str
27c0: 2c 20 6c 65 6e 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a , len );...}....
27d0: 09 2f 2f 20 8d 73 83 66 81 5b 83 5e 89 f0 90 cd .// .s.f.[.^....
27e0: 0d 0a 09 75 63 68 61 72 20 50 61 72 73 65 28 20 ...uchar Parse(
27f0: 4c 69 6e 65 26 20 6c 69 6e 65 2c 20 75 63 68 61 Line& line, ucha
2800: 72 20 63 6d 73 74 20 29 0d 0a 09 7b 0d 0a 09 09 r cmst )...{....
2810: 6c 69 6e 65 2e 54 72 61 6e 73 69 74 43 6d 74 28 line.TransitCmt(
2820: 20 63 6d 73 74 20 29 3b 0d 0a 0d 0a 09 09 2f 2f cmst );......//
2830: 20 41 53 43 49 49 90 55 82 e8 95 aa 82 af 83 65 ASCII.U.......e
2840: 81 5b 83 75 83 8b 81 42 0d 0a 09 09 2f 2f 20 83 .[.u...B....// .
2850: 56 83 74 83 67 96 b3 82 b5 82 c5 54 6f 6b 65 6e V.t.g......Token
2860: 54 79 70 65 82 c9 97 ac 97 70 8f 6f 97 88 82 e9 Type.....p.o....
2870: 82 e6 82 a4 82 c9 82 b7 82 e9 82 bd 82 df 81 41 ...............A
2880: 0d 0a 09 09 2f 2f 20 92 6c 82 aa 82 53 94 f2 82 ....// .l...S...
2890: d1 82 c9 82 c8 82 c1 82 c4 82 dc 82 b7 0d 0a 09 ................
28a0: 09 65 6e 75 6d 20 7b 20 54 3d 30 2c 20 57 3d 34 .enum { T=0, W=4
28b0: 2c 20 41 3d 38 2c 20 53 3d 31 32 2c 20 4f 3d 30 , A=8, S=12, O=0
28c0: 20 7d 3b 0d 0a 09 09 73 74 61 74 69 63 20 63 6f };....static co
28d0: 6e 73 74 20 75 63 68 61 72 20 6c 65 74 74 65 72 nst uchar letter
28e0: 5f 74 79 70 65 5b 31 32 38 5d 20 3d 20 7b 0d 0a _type[128] = {..
28f0: 09 09 09 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f ...O,O,O,O,O,O,O
2900: 2c 4f 2c 4f 2c 54 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f ,O,O,T,O,O,O,O,O
2910: 2c 4f 2c 0d 0a 09 09 09 4f 2c 4f 2c 4f 2c 4f 2c ,O,.....O,O,O,O,
2920: 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c 4f 2c O,O,O,O,O,O,O,O,
2930: 4f 2c 4f 2c 4f 2c 4f 2c 0d 0a 09 09 09 57 2c 53 O,O,O,O,.....W,S
2940: 2c 53 2c 53 2c 53 2c 53 2c 53 2c 53 2c 53 2c 53 ,S,S,S,S,S,S,S,S
2950: 2c 53 2c 53 2c 53 2c 53 2c 53 2c 53 2c 0d 0a 09 ,S,S,S,S,S,S,...
2960: 09 09 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c ..A,A,A,A,A,A,A,
2970: 41 2c 41 2c 41 2c 53 2c 53 2c 53 2c 53 2c 53 2c A,A,A,S,S,S,S,S,
2980: 53 2c 0d 0a 09 09 09 53 2c 41 2c 41 2c 41 2c 41 S,.....S,A,A,A,A
2990: 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 ,A,A,A,A,A,A,A,A
29a0: 2c 41 2c 41 2c 41 2c 0d 0a 09 09 09 41 2c 41 2c ,A,A,A,.....A,A,
29b0: 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c A,A,A,A,A,A,A,A,
29c0: 41 2c 53 2c 53 2c 53 2c 53 2c 41 2c 0d 0a 09 09 A,S,S,S,S,A,....
29d0: 09 53 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 .S,A,A,A,A,A,A,A
29e0: 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 41 ,A,A,A,A,A,A,A,A
29f0: 2c 0d 0a 09 09 09 41 2c 41 2c 41 2c 41 2c 41 2c ,.....A,A,A,A,A,
2a00: 41 2c 41 2c 41 2c 41 2c 41 2c 41 2c 53 2c 53 2c A,A,A,A,A,A,S,S,
2a10: 53 2c 53 2c 4f 2c 0d 0a 09 09 7d 3b 0d 0a 0d 0a S,S,O,....};....
2a20: 09 09 2f 2f 20 50 6f 73 49 6e 54 6f 6b 65 6e 8e ..// PosInToken.
2a30: 5a 8f 6f 97 70 82 cc 8b 97 97 a3 83 47 83 93 83 Z.o.p.......G...
2a40: 52 81 5b 83 5f 28 20 35 62 69 74 83 56 83 74 83 R.[._( 5bit.V.t.
2a50: 67 8d cf 82 dd 20 29 0d 0a 09 09 2f 2f 20 20 28 g.... )....// (
2a60: 20 5f 64 3e 37 20 3f 20 37 3c 3c 35 20 3a 20 5f _d>7 ? 7<<5 : _
2a70: 64 3c 3c 35 20 29 0d 0a 09 09 23 64 65 66 69 6e d<<5 )....#defin
2a80: 65 20 74 6b 65 6e 63 28 5f 64 29 20 28 20 28 5f e tkenc(_d) ( (_
2a90: 64 29 3e 37 20 3f 20 30 78 65 30 20 3a 20 28 5f d)>7 ? 0xe0 : (_
2aa0: 64 29 3c 3c 35 20 29 0d 0a 0d 0a 09 09 2f 2f 20 d)<<5 )......//
2ab0: 83 52 83 81 83 93 83 67 8f f3 91 d4 91 4a 88 da .R.....g.....J..
2ac0: 92 c7 90 d5 97 70 83 49 81 5b 83 67 83 7d 83 67 .....p.I.[.g.}.g
2ad0: 83 93 0d 0a 09 09 43 6f 6d 6d 65 6e 74 44 46 41 ......CommentDFA
2ae0: 20 64 66 61 5b 32 5d 20 3d 20 7b 43 6f 6d 6d 65 dfa[2] = {Comme
2af0: 6e 74 44 46 41 28 66 61 6c 73 65 29 2c 20 43 6f ntDFA(false), Co
2b00: 6d 6d 65 6e 74 44 46 41 28 74 72 75 65 29 7d 3b mmentDFA(true)};
2b10: 0d 0a 09 09 69 6e 74 26 20 63 6d 74 53 74 61 74 ....int& cmtStat
2b20: 65 20 20 3d 20 64 66 61 5b 6c 69 6e 65 2e 69 73 e = dfa[line.is
2b30: 4c 69 6e 65 48 65 61 64 43 6d 74 28 29 5d 2e 73 LineHeadCmt()].s
2b40: 74 61 74 65 3b 0d 0a 09 09 69 6e 74 20 63 6f 6d tate;....int com
2b50: 6d 65 6e 74 62 69 74 20 3d 20 63 6d 74 53 74 61 mentbit = cmtSta
2b60: 74 65 26 31 3b 0d 0a 0d 0a 09 09 2f 2f 20 8d ec te&1;......// ..
2b70: 8b c6 97 cc 88 e6 0d 0a 09 09 69 6e 74 20 73 79 ..........int sy
2b80: 6d 3b 0d 0a 09 09 75 6c 6f 6e 67 20 6a 2c 20 6b m;....ulong j, k
2b90: 2c 20 75 6d 2c 20 6d 3b 0d 0a 09 09 75 63 68 61 , um, m;....ucha
2ba0: 72 20 74 2c 20 66 3b 0d 0a 0d 0a 09 09 2f 2f 20 r t, f;......//
2bb0: 83 8b 81 5b 83 76 81 60 0d 0a 09 09 63 6f 6e 73 ...[.v.`....cons
2bc0: 74 20 75 6e 69 63 6f 64 65 2a 20 73 74 72 20 3d t unicode* str =
2bd0: 20 6c 69 6e 65 2e 73 74 72 28 29 3b 0d 0a 09 09 line.str();....
2be0: 75 63 68 61 72 2a 20 20 20 20 20 20 20 20 20 66 uchar* f
2bf0: 6c 67 20 3d 20 6c 69 6e 65 2e 66 6c 67 28 29 3b lg = line.flg();
2c00: 0d 0a 09 09 75 6c 6f 6e 67 20 20 20 20 20 20 20 ....ulong
2c10: 20 20 20 20 69 65 20 3d 20 6c 69 6e 65 2e 73 69 ie = line.si
2c20: 7a 65 28 29 3b 0d 0a 09 09 66 6f 72 28 20 75 6c ze();....for( ul
2c30: 6f 6e 67 20 69 3d 30 3b 20 69 3c 69 65 3b 20 69 ong i=0; i<ie; i
2c40: 3d 6a 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 6a 20 =j )....{.....j
2c50: 3d 20 69 3b 0d 0a 0d 0a 09 09 09 2f 2f 20 41 53 = i;.......// AS
2c60: 43 49 49 95 b6 8e 9a 82 c5 82 c8 82 a2 8f ea 8d CII.............
2c70: 87 0d 0a 09 09 09 69 66 28 20 73 74 72 5b 69 5d ......if( str[i]
2c80: 20 3e 3d 20 30 78 30 30 37 66 20 29 0d 0a 09 09 >= 0x007f )....
2c90: 09 7b 0d 0a 09 09 09 09 66 20 3d 20 28 41 4c 50 .{......f = (ALP
2ca0: 20 7c 20 63 6f 6d 6d 65 6e 74 62 69 74 29 3b 0d | commentbit);.
2cb0: 0a 09 09 09 09 69 66 28 20 73 74 72 5b 69 5d 20 .....if( str[i]
2cc0: 3d 3d 20 30 78 33 30 30 30 20 29 2f 2f 4c 27 81 == 0x3000 )//L'.
2cd0: 40 27 20 29 0d 0a 09 09 09 09 09 77 68 69 6c 65 @' ).......while
2ce0: 28 20 73 74 72 5b 2b 2b 6a 5d 20 3d 3d 20 30 78 ( str[++j] == 0x
2cf0: 33 30 30 30 20 29 0d 0a 09 09 09 09 09 09 66 6c 3000 )........fl
2d00: 67 5b 6a 5d 20 3d 20 66 3b 0d 0a 09 09 09 09 65 g[j] = f;......e
2d10: 6c 73 65 0d 0a 09 09 09 09 09 77 68 69 6c 65 28 lse.......while(
2d20: 20 73 74 72 5b 2b 2b 6a 5d 20 3e 3d 20 30 78 38 str[++j] >= 0x8
2d30: 30 20 26 26 20 73 74 72 5b 6a 5d 21 3d 30 78 33 0 && str[j]!=0x3
2d40: 30 30 30 20 29 0d 0a 09 09 09 09 09 09 66 6c 67 000 )........flg
2d50: 5b 6a 5d 20 3d 20 66 3b 0d 0a 09 09 09 09 66 6c [j] = f;......fl
2d60: 67 5b 69 5d 20 3d 20 73 74 61 74 69 63 5f 63 61 g[i] = static_ca
2d70: 73 74 3c 75 63 68 61 72 3e 28 74 6b 65 6e 63 28 st<uchar>(tkenc(
2d80: 6a 2d 69 29 20 7c 20 66 29 3b 0d 0a 09 09 09 7d j-i) | f);.....}
2d90: 0d 0a 09 09 09 2f 2f 20 41 53 43 49 49 95 b6 8e .....// ASCII...
2da0: 9a 82 cc 8f ea 8d 87 3f 3f 0d 0a 09 09 09 65 6c .......??.....el
2db0: 73 65 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 74 20 se.....{......t
2dc0: 3d 20 6c 65 74 74 65 72 5f 74 79 70 65 5b 73 74 = letter_type[st
2dd0: 72 5b 69 5d 5d 3b 0d 0a 09 09 09 09 69 66 28 20 r[i]];......if(
2de0: 74 3d 3d 53 20 26 26 20 74 61 67 5f 2e 64 6f 65 t==S && tag_.doe
2df0: 73 5f 65 73 63 28 29 20 29 0d 0a 09 09 09 09 09 s_esc() ).......
2e00: 64 6f 0d 0a 09 09 09 09 09 09 69 66 28 20 6a 2b do........if( j+
2e10: 31 3c 69 65 20 26 26 20 73 74 72 5b 6a 5d 3d 3d 1<ie && str[j]==
2e20: 4c 27 5c 5c 27 20 29 0d 0a 09 09 09 09 09 09 09 L'\\' ).........
2e30: 6a 2b 2b 3b 0d 0a 09 09 09 09 09 77 68 69 6c 65 j++;.......while
2e40: 28 20 73 74 72 5b 2b 2b 6a 5d 3c 30 78 37 66 20 ( str[++j]<0x7f
2e50: 26 26 20 53 3d 3d 6c 65 74 74 65 72 5f 74 79 70 && S==letter_typ
2e60: 65 5b 73 74 72 5b 6a 5d 5d 20 29 3b 0d 0a 09 09 e[str[j]] );....
2e70: 09 09 65 6c 73 65 0d 0a 09 09 09 09 09 77 68 69 ..else.......whi
2e80: 6c 65 28 20 73 74 72 5b 2b 2b 6a 5d 3c 30 78 37 le( str[++j]<0x7
2e90: 66 20 26 26 20 74 3d 3d 6c 65 74 74 65 72 5f 74 f && t==letter_t
2ea0: 79 70 65 5b 73 74 72 5b 6a 5d 5d 20 29 3b 0d 0a ype[str[j]] );..
2eb0: 0d 0a 09 09 09 09 66 20 3d 20 28 74 20 7c 20 63 ......f = (t | c
2ec0: 6f 6d 6d 65 6e 74 62 69 74 29 3b 0d 0a 0d 0a 09 ommentbit);.....
2ed0: 09 09 09 73 77 69 74 63 68 28 20 74 20 29 0d 0a ...switch( t )..
2ee0: 09 09 09 09 7b 0d 0a 09 09 09 09 2f 2f 20 83 41 ....{......// .A
2ef0: 83 8b 83 74 83 40 83 78 83 62 83 67 81 95 90 94 ...t.@.x.b.g....
2f00: 8e 9a 0d 0a 09 09 09 09 63 61 73 65 20 41 3a 0d ........case A:.
2f10: 0a 09 09 09 09 09 66 20 7c 3d 20 6b 77 64 5f 2e ......f |= kwd_.
2f20: 69 73 4b 65 79 77 6f 72 64 28 20 73 74 72 2b 69 isKeyword( str+i
2f30: 2c 20 6a 2d 69 20 29 3b 0d 0a 09 09 09 09 09 2f , j-i );......./
2f40: 2f 20 66 61 6c 6c 2e 2e 2e 0d 0a 0d 0a 09 09 09 / fall..........
2f50: 09 2f 2f 20 83 5e 83 75 81 45 90 a7 8c e4 95 b6 .// .^.u.E......
2f60: 8e 9a 0d 0a 09 09 09 09 63 61 73 65 20 54 3a 0d ........case T:.
2f70: 0a 09 09 09 09 09 2f 2f 20 66 61 6c 6c 2e 2e 2e ......// fall...
2f80: 0d 0a 0d 0a 09 09 09 09 2f 2f 20 94 bc 8a 70 8b ........// ...p.
2f90: f3 94 92 0d 0a 09 09 09 09 63 61 73 65 20 57 3a .........case W:
2fa0: 0d 0a 09 09 09 09 09 66 6f 72 28 20 6b 3d 69 2b .......for( k=i+
2fb0: 31 3b 20 6b 3c 6a 3b 20 2b 2b 6b 20 29 0d 0a 09 1; k<j; ++k )...
2fc0: 09 09 09 09 09 66 6c 67 5b 6b 5d 20 3d 20 66 3b .....flg[k] = f;
2fd0: 0d 0a 09 09 09 09 09 66 6c 67 5b 69 5d 20 3d 20 .......flg[i] =
2fe0: 28 75 63 68 61 72 29 28 74 6b 65 6e 63 28 6a 2d (uchar)(tkenc(j-
2ff0: 69 29 7c 66 29 3b 0d 0a 09 09 09 09 09 62 72 65 i)|f);.......bre
3000: 61 6b 3b 0d 0a 0d 0a 09 09 09 09 2f 2f 20 8b 4c ak;........// .L
3010: 8d 86 0d 0a 09 09 09 09 63 61 73 65 20 53 3a 0d ........case S:.
3020: 0a 09 09 09 09 09 6b 20 3d 20 69 3b 0d 0a 09 09 ......k = i;....
3030: 09 09 09 77 68 69 6c 65 28 20 6b 20 3c 20 6a 20 ...while( k < j
3040: 29 0d 0a 09 09 09 09 09 7b 0d 0a 09 09 09 09 09 ).......{.......
3050: 09 2f 2f 20 83 7d 83 62 83 60 82 b5 82 c8 82 a9 .// .}.b.`......
3060: 82 c1 82 bd 95 94 95 aa 0d 0a 09 09 09 09 09 09 ................
3070: 75 6d 20 3d 20 74 61 67 5f 2e 53 79 6d 62 6f 6c um = tag_.Symbol
3080: 4c 6f 6f 70 28 20 73 74 72 2b 6b 2c 20 6a 2d 6b Loop( str+k, j-k
3090: 2c 20 6d 2c 20 73 79 6d 20 29 3b 0d 0a 09 09 09 , m, sym );.....
30a0: 09 09 09 66 20 3d 20 28 30 78 32 30 20 7c 20 41 ...f = (0x20 | A
30b0: 4c 50 20 7c 20 63 6f 6d 6d 65 6e 74 62 69 74 29 LP | commentbit)
30c0: 3b 0d 0a 09 09 09 09 09 09 77 68 69 6c 65 28 20 ;........while(
30d0: 75 6d 2d 2d 20 29 0d 0a 09 09 09 09 09 09 09 66 um-- ).........f
30e0: 6c 67 5b 6b 2b 2b 5d 20 3d 20 66 3b 0d 0a 09 09 lg[k++] = f;....
30f0: 09 09 09 09 69 66 28 20 6b 20 3e 3d 20 6a 20 29 ....if( k >= j )
3100: 0d 0a 09 09 09 09 09 09 09 62 72 65 61 6b 3b 0d .........break;.
3110: 0a 0d 0a 09 09 09 09 09 09 2f 2f 20 83 7d 83 62 .........// .}.b
3120: 83 60 82 b5 82 bd 95 94 95 aa 0d 0a 09 09 09 09 .`..............
3130: 09 09 66 20 3d 20 28 43 45 20 7c 20 63 6f 6d 6d ..f = (CE | comm
3140: 65 6e 74 62 69 74 29 3b 0d 0a 09 09 09 09 09 09 entbit);........
3150: 64 66 61 5b 30 5d 2e 74 72 61 6e 73 69 74 28 20 dfa[0].transit(
3160: 73 79 6d 20 29 3b 0d 0a 09 09 09 09 09 09 64 66 sym );........df
3170: 61 5b 31 5d 2e 74 72 61 6e 73 69 74 28 20 73 79 a[1].transit( sy
3180: 6d 20 29 3b 0d 0a 09 09 09 09 09 09 63 6f 6d 6d m );........comm
3190: 65 6e 74 62 69 74 20 3d 20 63 6d 74 53 74 61 74 entbit = cmtStat
31a0: 65 26 31 3b 0d 0a 09 09 09 09 09 09 69 66 28 20 e&1;........if(
31b0: 73 79 6d 20 21 3d 20 30 20 29 20 2f 2f 20 30 3a sym != 0 ) // 0:
31c0: 63 6f 6d 6d 65 6e 74 20 65 6e 64 0d 0a 09 09 09 comment end.....
31d0: 09 09 09 09 66 20 3d 20 28 28 28 73 79 6d 2b 33 ....f = (((sym+3
31e0: 29 3c 3c 32 29 20 7c 20 63 6f 6d 6d 65 6e 74 62 )<<2) | commentb
31f0: 69 74 29 3b 0d 0a 09 09 09 09 09 09 66 6c 67 5b it);........flg[
3200: 6b 2b 2b 5d 20 3d 20 28 75 63 68 61 72 29 28 74 k++] = (uchar)(t
3210: 6b 65 6e 63 28 6d 29 7c 66 29 3b 0d 0a 09 09 09 kenc(m)|f);.....
3220: 09 09 09 77 68 69 6c 65 28 20 2d 2d 6d 20 29 0d ...while( --m ).
3230: 0a 09 09 09 09 09 09 09 66 6c 67 5b 6b 2b 2b 5d ........flg[k++]
3240: 20 3d 20 66 3b 0d 0a 09 09 09 09 09 7d 0d 0a 09 = f;.......}...
3250: 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 09 ....break;......
3260: 7d 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a }.....}....}....
3270: 09 09 2f 2f 20 74 72 61 6e 73 69 74 83 74 83 89 ..// transit.t..
3280: 83 4f 8d 58 90 56 0d 0a 09 09 6c 69 6e 65 2e 53 .O.X.V....line.S
3290: 65 74 54 72 61 6e 73 69 74 46 6c 61 67 28 0d 0a etTransitFlag(..
32a0: 09 09 09 28 64 66 61 5b 31 5d 2e 73 74 61 74 65 ...(dfa[1].state
32b0: 20 26 20 28 64 66 61 5b 31 5d 2e 73 74 61 74 65 & (dfa[1].state
32c0: 3c 3c 31 29 29 20 7c 0d 0a 09 09 09 28 28 64 66 <<1)) |.....((df
32d0: 61 5b 30 5d 2e 73 74 61 74 65 3e 3e 31 29 20 26 a[0].state>>1) &
32e0: 20 64 66 61 5b 30 5d 2e 73 74 61 74 65 29 0d 0a dfa[0].state)..
32f0: 09 09 29 3b 0d 0a 09 09 6c 69 6e 65 2e 43 6f 6d ..);....line.Com
3300: 6d 65 6e 74 42 69 74 55 70 64 61 74 65 64 28 29 mentBitUpdated()
3310: 3b 0d 0a 09 09 72 65 74 75 72 6e 20 6c 69 6e 65 ;....return line
3320: 2e 54 72 61 6e 73 69 74 43 6d 74 28 20 63 6d 73 .TransitCmt( cms
3330: 74 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 t );...}.....//
3340: 83 52 83 81 83 93 83 67 83 72 83 62 83 67 82 f0 .R.....g.r.b.g..
3350: 90 b3 82 b5 82 ad 92 b2 90 ae 0d 0a 09 76 6f 69 .............voi
3360: 64 20 53 65 74 43 6f 6d 6d 65 6e 74 42 69 74 28 d SetCommentBit(
3370: 20 4c 69 6e 65 26 20 6c 69 6e 65 20 29 0d 0a 09 Line& line )...
3380: 7b 0d 0a 09 09 43 6f 6d 6d 65 6e 74 44 46 41 20 {....CommentDFA
3390: 64 66 61 28 20 6c 69 6e 65 2e 69 73 4c 69 6e 65 dfa( line.isLine
33a0: 48 65 61 64 43 6d 74 28 29 3d 3d 31 20 29 3b 0d HeadCmt()==1 );.
33b0: 0a 09 09 75 6c 6f 6e 67 20 63 6f 6d 6d 65 6e 74 ...ulong comment
33c0: 62 69 74 20 3d 20 64 66 61 2e 73 74 61 74 65 26 bit = dfa.state&
33d0: 31 3b 0d 0a 0d 0a 09 09 2f 2f 20 83 8b 81 5b 83 1;......// ...[.
33e0: 76 81 60 0d 0a 09 09 63 6f 6e 73 74 20 75 6e 69 v.`....const uni
33f0: 63 6f 64 65 2a 20 73 74 72 20 3d 20 6c 69 6e 65 code* str = line
3400: 2e 73 74 72 28 29 3b 0d 0a 09 09 75 63 68 61 72 .str();....uchar
3410: 2a 20 20 20 20 20 20 20 20 20 66 6c 67 20 3d 20 * flg =
3420: 6c 69 6e 65 2e 66 6c 67 28 29 3b 0d 0a 09 09 75 line.flg();....u
3430: 6c 6f 6e 67 20 20 20 20 20 20 20 6a 2c 6b 2c 69 long j,k,i
3440: 65 20 3d 20 6c 69 6e 65 2e 73 69 7a 65 28 29 3b e = line.size();
3450: 0d 0a 09 09 66 6f 72 28 20 75 6c 6f 6e 67 20 69 ....for( ulong i
3460: 3d 30 3b 20 69 3c 69 65 3b 20 69 3d 6a 20 29 0d =0; i<ie; i=j ).
3470: 0a 09 09 7b 0d 0a 09 09 09 2f 2f 20 54 6f 6b 65 ...{.....// Toke
3480: 6e 82 cc 8f 49 92 5b 82 f0 93 be 82 e9 0d 0a 09 n...I.[.........
3490: 09 09 6b 20 3d 20 28 66 6c 67 5b 69 5d 3e 3e 35 ..k = (flg[i]>>5
34a0: 29 3b 0d 0a 09 09 09 6a 20 3d 20 69 20 2b 20 6b );.....j = i + k
34b0: 3b 0d 0a 09 09 09 69 66 28 20 6a 20 3e 3d 20 69 ;.....if( j >= i
34c0: 65 20 29 0d 0a 09 09 09 09 6a 20 3d 20 69 65 3b e )......j = ie;
34d0: 0d 0a 09 09 09 65 6c 73 65 20 69 66 28 20 6b 3d .....else if( k=
34e0: 3d 37 20 29 20 2f 2f 20 7c 7c 20 6b 3d 3d 30 20 =7 ) // || k==0
34f0: 29 0d 0a 09 09 09 09 77 68 69 6c 65 28 20 28 66 )......while( (f
3500: 6c 67 5b 6a 5d 3e 3e 35 29 3d 3d 30 20 26 26 20 lg[j]>>5)==0 &&
3510: 6a 3c 69 65 20 29 0d 0a 09 09 09 09 09 2b 2b 6a j<ie ).......++j
3520: 3b 0d 0a 0d 0a 09 09 09 6b 20 3d 20 28 66 6c 67 ;.......k = (flg
3530: 5b 69 5d 20 26 20 30 78 31 63 29 3b 0d 0a 09 09 [i] & 0x1c);....
3540: 09 69 66 28 20 6b 20 3c 3d 20 43 45 20 29 0d 0a .if( k <= CE )..
3550: 09 09 09 7b 0d 0a 09 09 09 09 66 6f 72 28 20 3b ...{......for( ;
3560: 20 69 3c 6a 3b 20 2b 2b 69 20 29 0d 0a 09 09 09 i<j; ++i ).....
3570: 09 09 66 6c 67 5b 69 5d 20 3d 20 28 75 63 68 61 ..flg[i] = (ucha
3580: 72 29 28 28 66 6c 67 5b 69 5d 20 26 20 30 78 66 r)((flg[i] & 0xf
3590: 65 29 20 7c 20 63 6f 6d 6d 65 6e 74 62 69 74 29 e) | commentbit)
35a0: 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 69 66 28 20 ;.....}.....if(
35b0: 6b 20 3e 3d 20 43 45 20 29 0d 0a 09 09 09 7b 0d k >= CE ).....{.
35c0: 0a 09 09 09 09 64 66 61 2e 74 72 61 6e 73 69 74 .....dfa.transit
35d0: 28 20 28 6b 3e 3e 32 29 2d 33 20 29 3b 0d 0a 09 ( (k>>2)-3 );...
35e0: 09 09 09 63 6f 6d 6d 65 6e 74 62 69 74 20 3d 20 ...commentbit =
35f0: 64 66 61 2e 73 74 61 74 65 26 31 3b 0d 0a 09 09 dfa.state&1;....
3600: 09 09 69 66 28 20 6b 20 21 3d 20 43 45 20 29 0d ..if( k != CE ).
3610: 0a 09 09 09 09 09 66 6f 72 28 20 3b 20 69 3c 6a ......for( ; i<j
3620: 3b 20 2b 2b 69 20 29 0d 0a 09 09 09 09 09 09 66 ; ++i )........f
3630: 6c 67 5b 69 5d 20 3d 20 28 75 63 68 61 72 29 28 lg[i] = (uchar)(
3640: 28 66 6c 67 5b 69 5d 20 26 20 30 78 66 65 29 20 (flg[i] & 0xfe)
3650: 7c 20 63 6f 6d 6d 65 6e 74 62 69 74 29 3b 0d 0a | commentbit);..
3660: 09 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 6c ...}....}......l
3670: 69 6e 65 2e 43 6f 6d 6d 65 6e 74 42 69 74 55 70 ine.CommentBitUp
3680: 64 61 74 65 64 28 29 3b 0d 0a 09 7d 0d 0a 7d 3b dated();...}..};
3690: 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d ........//------
36a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
36b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
36c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
36d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
36e0: 2d 2d 2d 0d 0a 2f 2f 20 92 e8 8b 60 83 74 83 40 ---..// ...`.t.@
36f0: 83 43 83 8b 93 c7 82 dd 82 c6 82 e8 8f 88 97 9d .C..............
3700: 82 c6 82 a9 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d ......//--------
3710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3750: 2d 0d 0a 0d 0a 44 6f 63 49 6d 70 6c 3a 3a 44 6f -....DocImpl::Do
3760: 63 49 6d 70 6c 28 20 44 6f 63 75 6d 65 6e 74 26 cImpl( Document&
3770: 20 74 68 65 44 6f 63 20 29 0d 0a 09 3a 20 64 6f theDoc )...: do
3780: 63 5f 20 20 20 20 28 20 74 68 65 44 6f 63 20 29 c_ ( theDoc )
3790: 0d 0a 09 2c 20 70 45 76 48 61 6e 5f 20 28 20 32 ..., pEvHan_ ( 2
37a0: 20 29 0d 0a 7b 0d 0a 09 74 65 78 74 5f 2e 41 64 )..{...text_.Ad
37b0: 64 28 20 6e 65 77 20 4c 69 6e 65 28 4c 22 22 2c d( new Line(L"",
37c0: 30 29 20 29 3b 20 2f 2f 20 8d c5 8f 89 82 cd 88 0) ); // .......
37d0: ea 8d 73 82 be 82 af 0d 0a 09 53 65 74 4b 65 79 ..s.......SetKey
37e0: 77 6f 72 64 28 20 4e 55 4c 4c 2c 20 30 20 29 3b word( NULL, 0 );
37f0: 20 20 20 20 20 20 20 20 2f 2f 20 83 4c 81 5b 83 // .L.[.
3800: 8f 81 5b 83 68 96 b3 82 b5 0d 0a 7d 0d 0a 0d 0a ..[.h......}....
3810: 44 6f 63 49 6d 70 6c 3a 3a 7e 44 6f 63 49 6d 70 DocImpl::~DocImp
3820: 6c 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 82 b1 82 cc l()..{...// ....
3830: 83 74 83 40 83 43 83 8b 82 c9 83 66 83 58 83 67 .t.@.C.....f.X.g
3840: 83 89 83 4e 83 5e 82 f0 93 fc 82 ea 82 c4 82 a8 ...N.^..........
3850: 82 a9 82 c8 82 a2 82 c6 81 41 0d 0a 09 2f 2f 20 .........A...//
3860: 64 65 6c 65 74 65 20 70 61 72 73 65 72 5f 20 82 delete parser_ .
3870: aa 8f 6f 97 88 82 c8 82 ad 82 c8 82 e9 81 42 5e ..o...........B^
3880: 5e 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 44 6f ^;..}....void Do
3890: 63 49 6d 70 6c 3a 3a 53 65 74 4b 65 79 77 6f 72 cImpl::SetKeywor
38a0: 64 28 20 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 d( const unicode
38b0: 2a 20 64 65 66 62 75 66 2c 20 75 6c 6f 6e 67 20 * defbuf, ulong
38c0: 73 69 7a 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 42 4f siz )..{...// BO
38d0: 4d 82 aa 82 a0 82 c1 82 bd 82 e7 83 58 83 4c 83 M...........X.L.
38e0: 62 83 76 0d 0a 09 69 66 28 20 73 69 7a 21 3d 30 b.v...if( siz!=0
38f0: 20 26 26 20 2a 64 65 66 62 75 66 3d 3d 30 78 66 && *defbuf==0xf
3900: 65 66 66 20 29 0d 0a 09 09 2b 2b 64 65 66 62 75 eff )....++defbu
3910: 66 2c 20 2d 2d 73 69 7a 3b 0d 0a 0d 0a 09 2f 2f f, --siz;.....//
3920: 20 93 c7 82 dd 8d 9e 82 dd 8f 80 94 f5 0d 0a 09 ...............
3930: 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 73 const unicode* s
3940: 74 72 3b 0d 0a 09 75 6c 6f 6e 67 20 20 20 20 20 tr;...ulong
3950: 20 20 20 20 20 6c 65 6e 3b 0d 0a 09 55 6e 69 52 len;...UniR
3960: 65 61 64 65 72 20 72 28 20 64 65 66 62 75 66 2c eader r( defbuf,
3970: 20 73 69 7a 2c 20 26 73 74 72 2c 20 26 6c 65 6e siz, &str, &len
3980: 20 29 3b 0d 0a 09 62 6f 6f 6c 20 20 20 20 20 20 );...bool
3990: 20 20 20 20 66 6c 61 67 73 5b 5d 20 3d 20 7b 66 flags[] = {f
39a0: 61 6c 73 65 2c 66 61 6c 73 65 2c 66 61 6c 73 65 alse,false,false
39b0: 2c 66 61 6c 73 65 7d 3b 0d 0a 09 63 6f 6e 73 74 ,false};...const
39c0: 20 75 6e 69 63 6f 64 65 2a 20 74 61 67 73 5b 5d unicode* tags[]
39d0: 20 3d 20 7b 4e 55 4c 4c 2c 4e 55 4c 4c 2c 4e 55 = {NULL,NULL,NU
39e0: 4c 4c 7d 3b 0d 0a 09 75 6c 6f 6e 67 20 20 20 20 LL};...ulong
39f0: 20 20 20 20 74 61 67 6c 65 6e 5b 5d 20 3d 20 7b taglen[] = {
3a00: 30 2c 30 2c 30 7d 3b 0d 0a 0d 0a 09 69 66 28 20 0,0,0};.....if(
3a10: 73 69 7a 20 21 3d 20 30 20 29 0d 0a 09 7b 0d 0a siz != 0 )...{..
3a20: 09 09 2f 2f 20 82 50 8d 73 96 da 3a 83 74 83 89 ..// .P.s..:.t..
3a30: 83 4f 0d 0a 09 09 2f 2f 20 20 20 63 61 73 65 3f .O....// case?
3a40: 20 71 31 3f 20 71 32 3f 20 65 73 63 3f 0d 0a 09 q1? q2? esc?...
3a50: 09 72 2e 67 65 74 4c 69 6e 65 28 29 3b 0d 0a 09 .r.getLine();...
3a60: 09 66 6f 72 28 20 75 6c 6f 6e 67 20 69 3d 30 3b .for( ulong i=0;
3a70: 20 69 3c 6c 65 6e 3b 20 2b 2b 69 20 29 0d 0a 09 i<len; ++i )...
3a80: 09 09 66 6c 61 67 73 5b 69 5d 20 3d 20 28 73 74 ..flags[i] = (st
3a90: 72 5b 69 5d 3d 3d 4c 27 31 27 29 3b 0d 0a 0d 0a r[i]==L'1');....
3aa0: 09 09 2f 2f 20 82 51 81 60 82 53 8d 73 96 da 0d ..// .Q.`.S.s...
3ab0: 0a 09 09 2f 2f 20 20 20 83 75 83 8d 83 52 83 81 ...// .u...R..
3ac0: 8a 4a 8e 6e 8b 4c 8d 86 81 41 83 75 83 8d 83 52 .J.n.L...A.u...R
3ad0: 83 81 8f 49 97 b9 8b 4c 8d 86 81 41 8d 73 83 52 ...I...L...A.s.R
3ae0: 83 81 8b 4c 8d 86 0d 0a 09 09 66 6f 72 28 20 69 ...L......for( i
3af0: 6e 74 20 6a 3d 30 3b 20 6a 3c 33 3b 20 2b 2b 6a nt j=0; j<3; ++j
3b00: 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 2e 67 65 )....{.....r.ge
3b10: 74 4c 69 6e 65 28 29 3b 0d 0a 09 09 09 20 20 74 tLine();..... t
3b20: 61 67 73 5b 6a 5d 20 3d 20 73 74 72 3b 0d 0a 09 ags[j] = str;...
3b30: 09 09 74 61 67 6c 65 6e 5b 6a 5d 20 3d 20 6c 65 ..taglen[j] = le
3b40: 6e 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 0d 0a 09 n;....}...}.....
3b50: 2f 2f 20 83 70 81 5b 83 54 81 5b 8d ec 90 ac 0d // .p.[.T.[.....
3b60: 0a 09 61 70 74 72 3c 50 61 72 73 65 72 3e 20 6e ..aptr<Parser> n
3b70: 70 28 20 6e 65 77 20 50 61 72 73 65 72 28 0d 0a p( new Parser(..
3b80: 09 09 74 61 67 73 5b 30 5d 2c 20 74 61 67 6c 65 ..tags[0], tagle
3b90: 6e 5b 30 5d 2c 20 74 61 67 73 5b 31 5d 2c 20 74 n[0], tags[1], t
3ba0: 61 67 6c 65 6e 5b 31 5d 2c 20 74 61 67 73 5b 32 aglen[1], tags[2
3bb0: 5d 2c 20 74 61 67 6c 65 6e 5b 32 5d 2c 0d 0a 09 ], taglen[2],...
3bc0: 09 66 6c 61 67 73 5b 31 5d 2c 20 66 6c 61 67 73 .flags[1], flags
3bd0: 5b 32 5d 2c 20 66 6c 61 67 73 5b 33 5d 2c 20 66 [2], flags[3], f
3be0: 6c 61 67 73 5b 30 5d 20 29 20 29 3b 0d 0a 09 70 lags[0] ) );...p
3bf0: 61 72 73 65 72 5f 20 3d 20 6e 70 3b 0d 0a 0d 0a arser_ = np;....
3c00: 09 2f 2f 20 82 54 8d 73 96 da 88 c8 8d 7e 81 46 .// .T.s.....~.F
3c10: 83 4c 81 5b 83 8f 81 5b 83 68 83 8a 83 58 83 67 .L.[...[.h...X.g
3c20: 0d 0a 09 77 68 69 6c 65 28 20 21 72 2e 69 73 45 ...while( !r.isE
3c30: 6d 70 74 79 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 mpty() )...{....
3c40: 72 2e 67 65 74 4c 69 6e 65 28 29 3b 0d 0a 09 09 r.getLine();....
3c50: 69 66 28 20 6c 65 6e 20 21 3d 20 30 20 29 0d 0a if( len != 0 )..
3c60: 09 09 09 70 61 72 73 65 72 5f 2d 3e 41 64 64 4b ...parser_->AddK
3c70: 65 79 77 6f 72 64 28 20 73 74 72 2c 20 6c 65 6e eyword( str, len
3c80: 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 91 );...}.....// .
3c90: 53 8d 73 89 f0 90 cd 82 b5 92 bc 82 b5 0d 0a 09 S.s.............
3ca0: 52 65 50 61 72 73 65 28 20 30 2c 20 74 6c 6e 28 ReParse( 0, tln(
3cb0: 29 2d 31 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 95 cf )-1 );.....// ..
3cc0: 8d 58 92 ca 92 6d 0d 0a 09 46 69 72 65 5f 4b 45 .X...m...Fire_KE
3cd0: 59 57 4f 52 44 43 48 41 4e 47 45 28 29 3b 0d 0a YWORDCHANGE();..
3ce0: 7d 0d 0a 0d 0a 62 6f 6f 6c 20 44 6f 63 49 6d 70 }....bool DocImp
3cf0: 6c 3a 3a 52 65 50 61 72 73 65 28 20 75 6c 6f 6e l::ReParse( ulon
3d00: 67 20 73 2c 20 75 6c 6f 6e 67 20 65 20 29 0d 0a g s, ulong e )..
3d10: 7b 0d 0a 09 75 6c 6f 6e 67 20 69 3b 0d 0a 09 75 {...ulong i;...u
3d20: 63 68 61 72 20 63 6d 74 20 3d 20 74 65 78 74 5f char cmt = text_
3d30: 5b 73 5d 2e 69 73 4c 69 6e 65 48 65 61 64 43 6d [s].isLineHeadCm
3d40: 74 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 82 dc 82 b8 t();.....// ....
3d50: 82 cd 95 cf 8d 58 94 cd 88 cd 82 f0 8d c4 89 f0 .....X..........
3d60: 90 cd 0d 0a 09 66 6f 72 28 20 69 3d 73 3b 20 69 .....for( i=s; i
3d70: 3c 3d 65 3b 20 2b 2b 69 20 29 0d 0a 09 09 63 6d <=e; ++i )....cm
3d80: 74 20 3d 20 70 61 72 73 65 72 5f 2d 3e 50 61 72 t = parser_->Par
3d90: 73 65 28 20 74 65 78 74 5f 5b 69 5d 2c 20 63 6d se( text_[i], cm
3da0: 74 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83 52 83 81 t );.....// .R..
3db0: 83 93 83 67 83 41 83 45 83 67 8f f3 91 d4 82 c9 ...g.A.E.g......
3dc0: 95 cf 89 bb 82 aa 82 c8 82 a9 82 c1 82 bd 82 e7 ................
3dd0: 82 b1 82 b1 82 c5 82 a8 8f 49 82 a2 81 42 0d 0a .........I...B..
3de0: 09 69 66 28 20 69 3d 3d 74 6c 6e 28 29 20 7c 7c .if( i==tln() ||
3df0: 20 74 65 78 74 5f 5b 69 5d 2e 69 73 4c 69 6e 65 text_[i].isLine
3e00: 48 65 61 64 43 6d 74 28 29 3d 3d 63 6d 74 20 29 HeadCmt()==cmt )
3e10: 0d 0a 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 ....return false
3e20: 3b 0d 0a 0d 0a 09 2f 2f 20 97 e1 82 a6 82 ce 81 ;.....// .......
3e30: 41 2f 2a 20 82 aa 93 fc 97 cd 82 b3 82 ea 82 bd A/* ............
3e40: 8f ea 8d 87 82 c8 82 c7 82 cd 81 41 89 ba 82 cc ...........A....
3e50: 95 fb 82 cc 8d 73 82 dc 82 c5 0d 0a 09 2f 2f 20 .....s.......//
3e60: 83 52 83 81 83 93 83 67 83 41 83 45 83 67 8f f3 .R.....g.A.E.g..
3e70: 91 d4 82 cc 95 cf 89 bb 82 f0 93 60 92 42 82 b7 ...........`.B..
3e80: 82 e9 95 4b 97 76 82 aa 82 a0 82 e9 81 42 0d 0a ...K.v.......B..
3e90: 09 64 6f 0d 0a 09 09 63 6d 74 20 3d 20 74 65 78 .do....cmt = tex
3ea0: 74 5f 5b 69 2b 2b 5d 2e 54 72 61 6e 73 69 74 43 t_[i++].TransitC
3eb0: 6d 74 28 20 63 6d 74 20 29 3b 0d 0a 09 77 68 69 mt( cmt );...whi
3ec0: 6c 65 28 20 69 3c 74 6c 6e 28 29 20 26 26 20 74 le( i<tln() && t
3ed0: 65 78 74 5f 5b 69 5d 2e 69 73 4c 69 6e 65 48 65 ext_[i].isLineHe
3ee0: 61 64 43 6d 74 28 29 21 3d 63 6d 74 20 29 3b 0d adCmt()!=cmt );.
3ef0: 0a 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a ..return true;..
3f00: 7d 0d 0a 0d 0a 76 6f 69 64 20 44 6f 63 49 6d 70 }....void DocImp
3f10: 6c 3a 3a 53 65 74 43 6f 6d 6d 65 6e 74 42 69 74 l::SetCommentBit
3f20: 28 20 63 6f 6e 73 74 20 4c 69 6e 65 26 20 78 20 ( const Line& x
3f30: 29 20 63 6f 6e 73 74 0d 0a 7b 0d 0a 09 70 61 72 ) const..{...par
3f40: 73 65 72 5f 2d 3e 53 65 74 43 6f 6d 6d 65 6e 74 ser_->SetComment
3f50: 42 69 74 28 20 63 6f 6e 73 74 5f 63 61 73 74 3c Bit( const_cast<
3f60: 4c 69 6e 65 26 3e 28 78 29 20 29 3b 0d 0a 7d 0d Line&>(x) );..}.
3f70: 0a .