tdiary 3.2.2.20130518 → 3.2.2.20130527

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +17 -11
  4. data/Rakefile +2 -0
  5. data/config.ru +2 -1
  6. data/tdiary.gemspec +7 -0
  7. data/tdiary.rb +6 -2
  8. data/tdiary/cli.rb +27 -1
  9. data/tdiary/environment.rb +0 -1
  10. data/tdiary/tasks/release.rake +7 -1
  11. data/tdiary/version.rb +1 -1
  12. metadata +87 -132
  13. data/vendor/hikidoc-0.0.6/COPYING +0 -28
  14. data/vendor/hikidoc-0.0.6/NEWS +0 -30
  15. data/vendor/hikidoc-0.0.6/NEWS.ja +0 -30
  16. data/vendor/hikidoc-0.0.6/README +0 -86
  17. data/vendor/hikidoc-0.0.6/README.ja +0 -83
  18. data/vendor/hikidoc-0.0.6/Rakefile +0 -68
  19. data/vendor/hikidoc-0.0.6/TextFormattingRules +0 -320
  20. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +0 -318
  21. data/vendor/hikidoc-0.0.6/bin/hikidoc +0 -66
  22. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +0 -914
  23. data/vendor/hikidoc-0.0.6/setup.rb +0 -1360
  24. data/vendor/hikidoc-0.0.6/test/run-test.rb +0 -13
  25. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +0 -506
  26. data/vendor/imagesize-0.1.1/Manifest.txt +0 -19
  27. data/vendor/imagesize-0.1.1/README.txt +0 -49
  28. data/vendor/imagesize-0.1.1/lib/image_size.rb +0 -305
  29. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +0 -9
  30. data/vendor/imagesize-0.1.1/setup.rb +0 -1585
  31. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  32. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  33. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  34. data/vendor/imagesize-0.1.1/test/cursor.xbm +0 -6
  35. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  36. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  37. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  38. data/vendor/imagesize-0.1.1/test/pgm.pgm +0 -5
  39. data/vendor/imagesize-0.1.1/test/test.xpm +0 -38
  40. data/vendor/imagesize-0.1.1/test/test_helper.rb +0 -2
  41. data/vendor/imagesize-0.1.1/test/test_image_size.rb +0 -71
  42. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  43. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  44. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  45. data/vendor/rdtool-0.6.38/COPYING.txt +0 -339
  46. data/vendor/rdtool-0.6.38/Gemfile +0 -3
  47. data/vendor/rdtool-0.6.38/HISTORY +0 -318
  48. data/vendor/rdtool-0.6.38/LGPL-2.1 +0 -502
  49. data/vendor/rdtool-0.6.38/LICENSE.txt +0 -58
  50. data/vendor/rdtool-0.6.38/README.html +0 -66
  51. data/vendor/rdtool-0.6.38/README.ja.html +0 -73
  52. data/vendor/rdtool-0.6.38/README.rd +0 -76
  53. data/vendor/rdtool-0.6.38/README.rd.ja +0 -85
  54. data/vendor/rdtool-0.6.38/Rakefile +0 -152
  55. data/vendor/rdtool-0.6.38/TODO +0 -22
  56. data/vendor/rdtool-0.6.38/bin/rd2 +0 -283
  57. data/vendor/rdtool-0.6.38/bin/rdswap.rb +0 -207
  58. data/vendor/rdtool-0.6.38/doc/rd-draft.html +0 -456
  59. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +0 -466
  60. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +0 -479
  61. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +0 -487
  62. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +0 -114
  63. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +0 -65
  64. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +0 -55
  65. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +0 -46
  66. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +0 -18
  67. data/vendor/rdtool-0.6.38/lib/rd/element.rb +0 -160
  68. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +0 -255
  69. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +0 -14
  70. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +0 -233
  71. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +0 -14
  72. data/vendor/rdtool-0.6.38/lib/rd/list.rb +0 -57
  73. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +0 -11
  74. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +0 -57
  75. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +0 -30
  76. data/vendor/rdtool-0.6.38/lib/rd/package.rb +0 -4
  77. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +0 -14
  78. data/vendor/rdtool-0.6.38/lib/rd/post-install +0 -1
  79. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +0 -18
  80. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +0 -69
  81. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +0 -37
  82. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +0 -86
  83. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +0 -266
  84. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +0 -34
  85. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +0 -490
  86. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +0 -67
  87. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +0 -251
  88. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +0 -19
  89. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +0 -32
  90. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +0 -518
  91. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +0 -1061
  92. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +0 -15
  93. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +0 -503
  94. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +0 -1243
  95. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +0 -214
  96. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +0 -114
  97. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +0 -14
  98. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +0 -103
  99. data/vendor/rdtool-0.6.38/lib/rd/version.rb +0 -41
  100. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +0 -86
  101. data/vendor/rdtool-0.6.38/rdtool.gemspec +0 -125
  102. data/vendor/rdtool-0.6.38/setup.rb +0 -1596
  103. data/vendor/rdtool-0.6.38/test/data/includee1.html +0 -1
  104. data/vendor/rdtool-0.6.38/test/data/includee2.html +0 -1
  105. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +0 -1
  106. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  107. data/vendor/rdtool-0.6.38/test/data/label.rbl +0 -2
  108. data/vendor/rdtool-0.6.38/test/data/label2.rbl +0 -2
  109. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +0 -1
  110. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  111. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +0 -6
  112. data/vendor/rdtool-0.6.38/test/dummy.rb +0 -33
  113. data/vendor/rdtool-0.6.38/test/temp-dir.rb +0 -19
  114. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +0 -46
  115. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +0 -219
  116. data/vendor/rdtool-0.6.38/test/test-document-element.rb +0 -46
  117. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +0 -66
  118. data/vendor/rdtool-0.6.38/test/test-element.rb +0 -46
  119. data/vendor/rdtool-0.6.38/test/test-headline.rb +0 -80
  120. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +0 -46
  121. data/vendor/rdtool-0.6.38/test/test-list-item.rb +0 -54
  122. data/vendor/rdtool-0.6.38/test/test-list.rb +0 -53
  123. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +0 -73
  124. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +0 -170
  125. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +0 -33
  126. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +0 -48
  127. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +0 -41
  128. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +0 -156
  129. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +0 -43
  130. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +0 -496
  131. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +0 -17
  132. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +0 -29
  133. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +0 -202
  134. data/vendor/rdtool-0.6.38/test/test-reference.rb +0 -132
  135. data/vendor/rdtool-0.6.38/test/test-search-file.rb +0 -22
  136. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +0 -41
  137. data/vendor/rdtool-0.6.38/test/test-textblock.rb +0 -44
  138. data/vendor/rdtool-0.6.38/test/test-tree.rb +0 -82
  139. data/vendor/rdtool-0.6.38/test/test-version.rb +0 -57
  140. data/vendor/rdtool-0.6.38/test/test-visitor.rb +0 -230
  141. data/vendor/rdtool-0.6.38/utils/rd-mode.el +0 -464
@@ -1,15 +0,0 @@
1
-
2
- require 'rd/tree'
3
- require 'rd/rd-struct'
4
-
5
- module RD
6
- # for backward-compatibility.
7
- class RDTree < Tree
8
- def initialize(src_str, include_paths = [], do_parse = true)
9
- super(DocumentStructure::RD, src_str, include_paths)
10
- parse() if do_parse
11
- end
12
- end
13
-
14
- RDElement = Element
15
- end
@@ -1,503 +0,0 @@
1
-
2
- class RDInlineParser
3
-
4
- preclow
5
- nonassoc EX_LOW
6
- left QUOTE BAR SLASH BACK_SLASH URL OTHER
7
- REF_OPEN FOOTNOTE_OPEN FOOTNOTE_CLOSE
8
- nonassoc EX_HIGH
9
- prechigh
10
-
11
- token EM_OPEN EM_CLOSE
12
- CODE_OPEN CODE_CLOSE
13
- VAR_OPEN VAR_CLOSE
14
- KBD_OPEN KBD_CLOSE
15
- INDEX_OPEN INDEX_CLOSE
16
- REF_OPEN REF_CLOSE
17
- FOOTNOTE_OPEN FOOTNOTE_CLOSE
18
- VERB_OPEN VERB_CLOSE
19
- BAR QUOTE SLASH BACK_SLASH URL OTHER EX_LOW EX_HIGH
20
-
21
- rule
22
- content : elements
23
- ;
24
- elements : elements element { result.push(val[1]) }
25
- | element { result = val }
26
- ;
27
- element : emphasis
28
- | code
29
- | var
30
- | keyboard
31
- | index
32
- | reference
33
- | footnote
34
- | verb
35
- | normal_str_ele
36
- ;
37
-
38
- emphasis : EM_OPEN content EM_CLOSE {
39
- result = Emphasis.new
40
- add_children_to_element(result, *val[1])
41
- }
42
- ;
43
- code : CODE_OPEN content CODE_CLOSE {
44
- result = Code.new
45
- add_children_to_element(result, *val[1])
46
- }
47
- ;
48
- var : VAR_OPEN content VAR_CLOSE {
49
- result = Var.new
50
- add_children_to_element(result, *val[1])
51
- }
52
- ;
53
- keyboard : KBD_OPEN content KBD_CLOSE {
54
- result = Keyboard.new
55
- add_children_to_element(result, *val[1])
56
- }
57
- ;
58
- index : INDEX_OPEN content INDEX_CLOSE {
59
- result = Index.new
60
- add_children_to_element(result, *val[1])
61
- }
62
- ;
63
-
64
- # Refernce
65
- # ((<subst|filename/element_label>))
66
-
67
- reference : REF_OPEN substitute ref_label REF_CLOSE
68
- { result = Reference.new(val[2])
69
- add_children_to_element(result, *val[1])
70
- }
71
- | REF_OPEN ref_label2 REF_CLOSE
72
- {
73
- result = make_reference_from_label(val[1])
74
- }
75
- ;
76
-
77
- ref_label : URL ref_url_strings { result = Reference::URL.new(val[1]) }
78
- | filename element_label
79
- { result = Reference::TemporaryLabel.new(val[1],
80
- val[0]) }
81
- | element_label
82
- { result = Reference::TemporaryLabel.new(val[0]) }
83
- | filename { result = Reference::TemporaryLabel.new([], val[0]) }
84
- ;
85
- ref_label2 : URL ref_url_strings { result = Reference::URL.new(val[1]) }
86
- | filename element_label2
87
- { result = Reference::TemporaryLabel.new(val[1],
88
- val[0]) }
89
- | element_label2
90
- { result = Reference::TemporaryLabel.new(val[0]) }
91
- | filename { result = Reference::TemporaryLabel.new([],
92
- val[0]) }
93
- ;
94
- substitute : ref_subst_content BAR
95
- | QUOTE ref_subst_content_q QUOTE BAR
96
- { result = val[1] }
97
- | QUOTE ref_subst_strings_q QUOTE BAR
98
- { result = [StringElement.new(val[1])] }
99
- ;
100
-
101
- filename : ref_subst_strings_first SLASH
102
- | QUOTE ref_subst_strings_q QUOTE SLASH
103
- { result = val[1] }
104
- ;
105
-
106
- # when substitute part exists
107
- element_label : ref_subst_strings_first
108
- { result = [StringElement.new(val[0])] }
109
- | QUOTE ref_subst_strings_q QUOTE
110
- { result = [StringElement.new(val[1])] }
111
- ;
112
- # when substitute part doesn't exist
113
- # in this case, element label can contain Inlines
114
- element_label2 : ref_subst_content
115
- | QUOTE ref_subst_content_q QUOTE
116
- { result = val[1] }
117
- | QUOTE ref_subst_strings_q QUOTE
118
- { result = [StringElement.new(val[1])] }
119
- ;
120
-
121
- ref_subst_content : ref_subst_ele2 ref_subst_eles
122
- { result = val[1].unshift(val[0]) }
123
- | ref_subst_str_ele_first ref_subst_eles
124
- { result = val[1].unshift(val[0]) }
125
- | ref_subst_str_ele_first
126
- { result = val }
127
- | ref_subst_ele2 { result = val }
128
- ;
129
- ref_subst_content_q : ref_subst_eles_q
130
- ;
131
- ref_subst_eles : ref_subst_eles ref_subst_ele
132
- { result.push(val[1]) }
133
- | ref_subst_ele { result = val }
134
- ;
135
- ref_subst_eles_q : ref_subst_eles_q ref_subst_ele_q
136
- { result.push(val[1]) }
137
- | ref_subst_ele_q { result = val }
138
- ;
139
- ref_subst_ele2 : emphasis
140
- | code
141
- | var
142
- | keyboard
143
- | index
144
- | verb
145
- ;
146
- ref_subst_ele : ref_subst_ele2
147
- | ref_subst_str_ele
148
- ;
149
- ref_subst_ele_q : ref_subst_ele2
150
- | ref_subst_str_ele_q
151
- ;
152
-
153
- ref_subst_str_ele : ref_subst_strings = EX_LOW
154
- { result = StringElement.new(val[0]) }
155
- ;
156
- ref_subst_str_ele_first : ref_subst_strings_first
157
- { result = StringElement.new(val[0]) }
158
- ;
159
- ref_subst_str_ele_q : ref_subst_strings_q = EX_LOW
160
- { result = StringElement.new(val[0]) }
161
- ;
162
-
163
- ref_subst_strings : ref_subst_strings ref_subst_string3
164
- { result << val[1] }
165
- | ref_subst_string3
166
- ;
167
- # if it is first element of substitute, it can't contain
168
- # URL on head.
169
- ref_subst_strings_first : ref_subst_string ref_subst_strings = EX_HIGH
170
- { result << val[1] }
171
- | ref_subst_string = EX_LOW
172
- ;
173
- ref_subst_strings_q : ref_subst_strings_q ref_subst_string_q
174
- { result << val[1] }
175
- | ref_subst_string_q
176
- ;
177
-
178
- ref_subst_string : OTHER
179
- | BACK_SLASH
180
- | REF_OPEN
181
- | FOOTNOTE_OPEN
182
- | FOOTNOTE_CLOSE
183
- ;
184
- ref_subst_string2 : ref_subst_string
185
- | URL
186
- ;
187
- ref_subst_string3 : ref_subst_string2
188
- | QUOTE
189
- ;
190
- ref_subst_string_q : ref_subst_string2
191
- | BAR
192
- | SLASH
193
- ;
194
- # end subst
195
-
196
- # string in url
197
- ref_url_strings : ref_url_strings ref_url_string { result << val[1] }
198
- | ref_url_string
199
- ;
200
-
201
- ref_url_string : OTHER
202
- | BACK_SLASH BACK_SLASH
203
- | URL
204
- | SLASH
205
- | BAR
206
- | QUOTE
207
- | EM_OPEN
208
- | EM_CLOSE
209
- | CODE_OPEN
210
- | CODE_CLOSE
211
- | VAR_OPEN
212
- | VAR_CLOSE
213
- | KBD_OPEN
214
- | KBD_CLOSE
215
- | INDEX_OPEN
216
- | INDEX_CLOSE
217
- | REF_OPEN
218
- | FOOTNOTE_OPEN
219
- | FOOTNOTE_CLOSE
220
- | VERB_OPEN
221
- | VERB_CLOSE
222
- ;
223
-
224
- # end url
225
- # end Reference
226
-
227
- footnote : FOOTNOTE_OPEN content FOOTNOTE_CLOSE {
228
- result = Footnote.new
229
- add_children_to_element(result, *val[1])
230
- }
231
- ;
232
- verb : VERB_OPEN verb_strings VERB_CLOSE {
233
- result = Verb.new(val[1]) }
234
- ;
235
-
236
-
237
- # normal string
238
- # OTHER, QUOTE, BAR, SLASH, BACK_SLASH, URL
239
- normal_string : OTHER
240
- | QUOTE
241
- | BAR
242
- | SLASH
243
- | BACK_SLASH
244
- | URL
245
- ;
246
- normal_strings : normal_strings normal_string
247
- { result << val[1] }
248
-
249
- | normal_string
250
- ;
251
- normal_str_ele : normal_strings = EX_LOW
252
- { result = StringElement.new(val[0]) }
253
- ;
254
-
255
- # in verb
256
- verb_string : verb_normal_string
257
- | BACK_SLASH verb_normal_string { result = val[1] }
258
- | BACK_SLASH VERB_CLOSE { result = val[1] }
259
- | BACK_SLASH BACK_SLASH { result = val[1] }
260
- ;
261
-
262
- verb_normal_string : OTHER
263
- | QUOTE
264
- | BAR
265
- | SLASH
266
- | EM_OPEN
267
- | EM_CLOSE
268
- | CODE_OPEN
269
- | CODE_CLOSE
270
- | VAR_OPEN
271
- | VAR_CLOSE
272
- | KBD_OPEN
273
- | KBD_CLOSE
274
- | INDEX_OPEN
275
- | INDEX_CLOSE
276
- | REF_OPEN
277
- | REF_CLOSE
278
- | FOOTNOTE_OPEN
279
- | FOOTNOTE_CLOSE
280
- | VERB_OPEN
281
- | URL
282
- ;
283
-
284
- verb_strings : verb_strings verb_string { result << val[1] }
285
- | verb_string
286
- ;
287
- /* verb_str_ele : verb_strings
288
- ; */
289
- end
290
-
291
- ---- inner
292
- include ParserUtility
293
- extend Forwardable
294
-
295
- EM_OPEN = '((*'
296
- EM_OPEN_RE = /\A#{Regexp.quote(EM_OPEN)}/
297
- EM_CLOSE = '*))'
298
- EM_CLOSE_RE = /\A#{Regexp.quote(EM_CLOSE)}/
299
- CODE_OPEN = '(({'
300
- CODE_OPEN_RE = /\A#{Regexp.quote(CODE_OPEN)}/
301
- CODE_CLOSE = '}))'
302
- CODE_CLOSE_RE = /\A#{Regexp.quote(CODE_CLOSE)}/
303
- VAR_OPEN = '((|'
304
- VAR_OPEN_RE = /\A#{Regexp.quote(VAR_OPEN)}/
305
- VAR_CLOSE = '|))'
306
- VAR_CLOSE_RE = /\A#{Regexp.quote(VAR_CLOSE)}/
307
- KBD_OPEN = '((%'
308
- KBD_OPEN_RE = /\A#{Regexp.quote(KBD_OPEN)}/
309
- KBD_CLOSE = '%))'
310
- KBD_CLOSE_RE = /\A#{Regexp.quote(KBD_CLOSE)}/
311
- INDEX_OPEN = '((:'
312
- INDEX_OPEN_RE = /\A#{Regexp.quote(INDEX_OPEN)}/
313
- INDEX_CLOSE = ':))'
314
- INDEX_CLOSE_RE = /\A#{Regexp.quote(INDEX_CLOSE)}/
315
- REF_OPEN = '((<'
316
- REF_OPEN_RE = /\A#{Regexp.quote(REF_OPEN)}/
317
- REF_CLOSE = '>))'
318
- REF_CLOSE_RE = /\A#{Regexp.quote(REF_CLOSE)}/
319
- FOOTNOTE_OPEN = '((-'
320
- FOOTNOTE_OPEN_RE = /\A#{Regexp.quote(FOOTNOTE_OPEN)}/
321
- FOOTNOTE_CLOSE = '-))'
322
- FOOTNOTE_CLOSE_RE = /\A#{Regexp.quote(FOOTNOTE_CLOSE)}/
323
- VERB_OPEN = "(('"
324
- VERB_OPEN_RE = /\A#{Regexp.quote(VERB_OPEN)}/
325
- VERB_CLOSE = "'))"
326
- VERB_CLOSE_RE = /\A#{Regexp.quote(VERB_CLOSE)}/
327
-
328
- BAR = "|"
329
- BAR_RE = /\A#{Regexp.quote(BAR)}/
330
- QUOTE = '"'
331
- QUOTE_RE = /\A#{Regexp.quote(QUOTE)}/
332
- SLASH = "/"
333
- SLASH_RE = /\A#{Regexp.quote(SLASH)}/
334
- BACK_SLASH = "\\"
335
- BACK_SLASH_RE = /\A#{Regexp.quote(BACK_SLASH)}/
336
- URL = "URL:"
337
- URL_RE = /\A#{Regexp.quote(URL)}/
338
-
339
- # Workaround for Regexp option change of Ruby 1.5.x
340
- other_re_mode = Regexp::EXTENDED
341
- if RUBY_VERSION > "1.5"
342
- other_re_mode |= Regexp::MULTILINE
343
- else
344
- other_re_mode |= Regexp::POSIXLINE
345
- end
346
-
347
- OTHER_RE = Regexp.new(
348
- "\\A.+?(?=#{Regexp.quote(EM_OPEN)}|#{Regexp.quote(EM_CLOSE)}|
349
- #{Regexp.quote(CODE_OPEN)}|#{Regexp.quote(CODE_CLOSE)}|
350
- #{Regexp.quote(VAR_OPEN)}|#{Regexp.quote(VAR_CLOSE)}|
351
- #{Regexp.quote(KBD_OPEN)}|#{Regexp.quote(KBD_CLOSE)}|
352
- #{Regexp.quote(INDEX_OPEN)}|#{Regexp.quote(INDEX_CLOSE)}|
353
- #{Regexp.quote(REF_OPEN)}|#{Regexp.quote(REF_CLOSE)}|
354
- #{Regexp.quote(FOOTNOTE_OPEN)}|#{Regexp.quote(FOOTNOTE_CLOSE)}|
355
- #{Regexp.quote(VERB_OPEN)}|#{Regexp.quote(VERB_CLOSE)}|
356
- #{Regexp.quote(BAR)}|
357
- #{Regexp.quote(QUOTE)}|
358
- #{Regexp.quote(SLASH)}|
359
- #{Regexp.quote(BACK_SLASH)}|
360
- #{Regexp.quote(URL)})", other_re_mode)
361
-
362
- def initialize(bp)
363
- @blockp = bp
364
- end
365
-
366
- def_delegator(:@blockp, :tree)
367
-
368
- def parse(src)
369
- @src = StringScanner.new(src)
370
- @pre = ""
371
- @yydebug = true
372
- do_parse
373
- end
374
-
375
- def next_token
376
- return [false, false] if @src.eos?
377
- # p @src.rest if @yydebug
378
- if ret = @src.scan(EM_OPEN_RE)
379
- @pre << ret
380
- [:EM_OPEN, ret]
381
- elsif ret = @src.scan(EM_CLOSE_RE)
382
- @pre << ret
383
- [:EM_CLOSE, ret]
384
- elsif ret = @src.scan(CODE_OPEN_RE)
385
- @pre << ret
386
- [:CODE_OPEN, ret]
387
- elsif ret = @src.scan(CODE_CLOSE_RE)
388
- @pre << ret
389
- [:CODE_CLOSE, ret]
390
- elsif ret = @src.scan(VAR_OPEN_RE)
391
- @pre << ret
392
- [:VAR_OPEN, ret]
393
- elsif ret = @src.scan(VAR_CLOSE_RE)
394
- @pre << ret
395
- [:VAR_CLOSE, ret]
396
- elsif ret = @src.scan(KBD_OPEN_RE)
397
- @pre << ret
398
- [:KBD_OPEN, ret]
399
- elsif ret = @src.scan(KBD_CLOSE_RE)
400
- @pre << ret
401
- [:KBD_CLOSE, ret]
402
- elsif ret = @src.scan(INDEX_OPEN_RE)
403
- @pre << ret
404
- [:INDEX_OPEN, ret]
405
- elsif ret = @src.scan(INDEX_CLOSE_RE)
406
- @pre << ret
407
- [:INDEX_CLOSE, ret]
408
- elsif ret = @src.scan(REF_OPEN_RE)
409
- @pre << ret
410
- [:REF_OPEN, ret]
411
- elsif ret = @src.scan(REF_CLOSE_RE)
412
- @pre << ret
413
- [:REF_CLOSE, ret]
414
- elsif ret = @src.scan(FOOTNOTE_OPEN_RE)
415
- @pre << ret
416
- [:FOOTNOTE_OPEN, ret]
417
- elsif ret = @src.scan(FOOTNOTE_CLOSE_RE)
418
- @pre << ret
419
- [:FOOTNOTE_CLOSE, ret]
420
- elsif ret = @src.scan(VERB_OPEN_RE)
421
- @pre << ret
422
- [:VERB_OPEN, ret]
423
- elsif ret = @src.scan(VERB_CLOSE_RE)
424
- @pre << ret
425
- [:VERB_CLOSE, ret]
426
- elsif ret = @src.scan(BAR_RE)
427
- @pre << ret
428
- [:BAR, ret]
429
- elsif ret = @src.scan(QUOTE_RE)
430
- @pre << ret
431
- [:QUOTE, ret]
432
- elsif ret = @src.scan(SLASH_RE)
433
- @pre << ret
434
- [:SLASH, ret]
435
- elsif ret = @src.scan(BACK_SLASH_RE)
436
- @pre << ret
437
- [:BACK_SLASH, ret]
438
- elsif ret = @src.scan(URL_RE)
439
- @pre << ret
440
- [:URL, ret]
441
- elsif ret = @src.scan(OTHER_RE)
442
- @pre << ret
443
- [:OTHER, ret]
444
- else
445
- ret = @src.rest
446
- @pre << ret
447
- @src.terminate
448
- [:OTHER, ret]
449
- end
450
- end
451
-
452
- def make_reference_from_label(label)
453
- # Reference.new_from_label_under_document_struct(label, tree.document_struct)
454
- Reference.new_from_label_without_document_struct(label)
455
- end
456
-
457
- def on_error(et, ev, values)
458
- lines_of_rest = (RUBY_VERSION >= '1.9.0' ? @src.rest.lines.to_a.length : @src.rest.to_a.length )
459
- prev_words = prev_words_on_error(ev)
460
- at = 4 + prev_words.length
461
- message = <<-MSG
462
- RD syntax error: line #{@blockp.line_index - lines_of_rest}:
463
- ...#{prev_words} #{(ev||'')} #{next_words_on_error()} ...
464
- MSG
465
- message << " " * at + "^" * (ev ? ev.length : 0) + "\n"
466
- raise ParseError, message
467
- end
468
-
469
- def prev_words_on_error(ev)
470
- pre = @pre
471
- if ev and /#{Regexp.quote(ev)}$/ =~ pre
472
- pre = $`
473
- end
474
- last_line(pre)
475
- end
476
-
477
- def last_line(src)
478
- if n = src.rindex("\n")
479
- src[(n+1) .. -1]
480
- else
481
- src
482
- end
483
- end
484
- private :last_line
485
-
486
- def next_words_on_error
487
- if n = @src.rest.index("\n")
488
- @src.rest[0 .. (n-1)]
489
- else
490
- @src.rest
491
- end
492
- end
493
-
494
- ---- header
495
-
496
- require "rd/parser-util"
497
- require "forwardable"
498
- require "strscan"
499
-
500
- module RD
501
- ---- footer
502
- end # end of module RD
503
-