taskjuggler 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. data/Rakefile +1 -0
  2. data/benchmarks/depends.tjp +2 -1
  3. data/benchmarks/htmltaskreport.tjp +2 -1
  4. data/doc/classes/AppConfig.html +124 -120
  5. data/doc/classes/Arguments.html +10 -6
  6. data/doc/classes/Object.html +229 -0
  7. data/doc/classes/String.html +35 -31
  8. data/doc/classes/TaskJuggler/Account.html +18 -18
  9. data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
  10. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  11. data/doc/classes/TaskJuggler/Allocation.html +34 -30
  12. data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
  13. data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
  14. data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
  15. data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
  16. data/doc/classes/TaskJuggler/Booking.html +22 -18
  17. data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
  18. data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
  19. data/doc/classes/TaskJuggler/CSVFile.html +28 -24
  20. data/doc/classes/TaskJuggler/Charge.html +22 -18
  21. data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
  22. data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
  23. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
  24. data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
  25. data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
  26. data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
  27. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
  28. data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
  29. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  30. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  31. data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
  32. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  33. data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
  34. data/doc/classes/TaskJuggler/GanttChart.html +236 -207
  35. data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
  36. data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
  37. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
  38. data/doc/classes/TaskJuggler/GanttLine.html +28 -24
  39. data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
  40. data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
  41. data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
  42. data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
  43. data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
  44. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  45. data/doc/classes/TaskJuggler/Interval.html +126 -120
  46. data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
  47. data/doc/classes/TaskJuggler/JobInfo.html +284 -0
  48. data/doc/classes/TaskJuggler/Journal.html +197 -0
  49. data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
  50. data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
  51. data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
  53. data/doc/classes/TaskJuggler/Limits.html +68 -62
  54. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  55. data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
  56. data/doc/classes/TaskJuggler/Log.html +72 -68
  57. data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
  58. data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
  59. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
  60. data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
  61. data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
  62. data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
  63. data/doc/classes/TaskJuggler/Macro.html +10 -6
  64. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  65. data/doc/classes/TaskJuggler/MacroTable.html +40 -36
  66. data/doc/classes/TaskJuggler/Message.html +16 -12
  67. data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
  68. data/doc/classes/TaskJuggler/Navigator.html +249 -0
  69. data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
  70. data/doc/classes/TaskJuggler/Project.html +1064 -678
  71. data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
  72. data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/PropertyList.html +114 -113
  74. data/doc/classes/TaskJuggler/PropertySet.html +355 -312
  75. data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
  76. data/doc/classes/TaskJuggler/Query.html +90 -85
  77. data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
  78. data/doc/classes/TaskJuggler/RTPReport.html +301 -0
  79. data/doc/classes/TaskJuggler/RealFormat.html +114 -57
  80. data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
  81. data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
  82. data/doc/classes/TaskJuggler/Report.html +82 -291
  83. data/doc/classes/TaskJuggler/ReportBase.html +448 -0
  84. data/doc/classes/TaskJuggler/ReportContext.html +243 -0
  85. data/doc/classes/TaskJuggler/ReportTable.html +158 -129
  86. data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
  87. data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
  88. data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
  89. data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
  90. data/doc/classes/TaskJuggler/Resource.html +12 -12
  91. data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
  92. data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
  93. data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
  94. data/doc/classes/TaskJuggler/RichText.html +52 -48
  95. data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
  96. data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
  97. data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
  98. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  99. data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
  100. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
  101. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
  102. data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
  103. data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
  104. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
  105. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  106. data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
  107. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
  108. data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
  109. data/doc/classes/TaskJuggler/Shift.html +18 -18
  110. data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
  111. data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
  112. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  113. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  114. data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
  115. data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
  116. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  117. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  118. data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
  119. data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
  120. data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
  121. data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
  122. data/doc/classes/TaskJuggler/TableReport.html +1036 -0
  123. data/doc/classes/TaskJuggler/Task.html +12 -12
  124. data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
  125. data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
  126. data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
  127. data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
  128. data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
  129. data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
  130. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
  131. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  132. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
  133. data/doc/classes/TaskJuggler/TextParser.html +203 -140
  134. data/doc/classes/TaskJuggler/TextReport.html +364 -0
  135. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  136. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
  137. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
  138. data/doc/classes/TaskJuggler/TextScanner.html +334 -240
  139. data/doc/classes/TaskJuggler/TjException.html +6 -6
  140. data/doc/classes/TaskJuggler/TjTime.html +547 -497
  141. data/doc/classes/TaskJuggler/TjpExample.html +29 -25
  142. data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
  143. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
  144. data/doc/classes/TaskJuggler/UserManual.html +54 -54
  145. data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
  146. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
  147. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  148. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  149. data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
  150. data/doc/classes/TaskJuggler/XMLElement.html +70 -58
  151. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  152. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  153. data/doc/classes/TaskJuggler.html +266 -183
  154. data/doc/files/COPYING.html +1 -1
  155. data/doc/files/README.html +1 -1
  156. data/doc/files/lib/AccountScenario_rb.html +1 -1
  157. data/doc/files/lib/Account_rb.html +1 -1
  158. data/doc/files/lib/Allocation_rb.html +1 -1
  159. data/doc/files/lib/AppConfig_rb.html +1 -1
  160. data/doc/files/lib/AttributeBase_rb.html +11 -1
  161. data/doc/files/lib/AttributeDefinition_rb.html +1 -1
  162. data/doc/files/lib/Attributes_rb.html +1 -1
  163. data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
  164. data/doc/files/lib/Booking_rb.html +1 -1
  165. data/doc/files/lib/ChargeSet_rb.html +1 -1
  166. data/doc/files/lib/Charge_rb.html +1 -1
  167. data/doc/files/lib/HTMLDocument_rb.html +1 -1
  168. data/doc/files/lib/Interval_rb.html +1 -1
  169. data/doc/files/lib/Journal_rb.html +106 -0
  170. data/doc/files/lib/KeywordArray_rb.html +106 -0
  171. data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
  172. data/doc/files/lib/Limits_rb.html +1 -1
  173. data/doc/files/lib/Log_rb.html +1 -1
  174. data/doc/files/lib/LogicalExpression_rb.html +1 -3
  175. data/doc/files/lib/LogicalFunction_rb.html +1 -1
  176. data/doc/files/lib/LogicalOperation_rb.html +1 -1
  177. data/doc/files/lib/MacroParser_rb.html +1 -1
  178. data/doc/files/lib/MacroTable_rb.html +1 -1
  179. data/doc/files/lib/MessageHandler_rb.html +1 -1
  180. data/doc/files/lib/Message_rb.html +1 -1
  181. data/doc/files/lib/ProjectFileParser_rb.html +5 -1
  182. data/doc/files/lib/Project_rb.html +5 -1
  183. data/doc/files/lib/PropertyList_rb.html +1 -1
  184. data/doc/files/lib/PropertySet_rb.html +1 -1
  185. data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
  186. data/doc/files/lib/Query_rb.html +1 -1
  187. data/doc/files/lib/RTPNavigator_rb.html +120 -0
  188. data/doc/files/lib/RTPReport_rb.html +118 -0
  189. data/doc/files/lib/RealFormat_rb.html +1 -1
  190. data/doc/files/lib/ResourceScenario_rb.html +1 -1
  191. data/doc/files/lib/Resource_rb.html +1 -1
  192. data/doc/files/lib/RichTextDocument_rb.html +1 -1
  193. data/doc/files/lib/RichTextElement_rb.html +1 -1
  194. data/doc/files/lib/RichTextParser_rb.html +1 -1
  195. data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
  196. data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
  197. data/doc/files/lib/RichTextScanner_rb.html +1 -1
  198. data/doc/files/lib/RichTextSnip_rb.html +1 -1
  199. data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
  200. data/doc/files/lib/RichText_rb.html +1 -1
  201. data/doc/files/lib/ScenarioData_rb.html +1 -1
  202. data/doc/files/lib/Scenario_rb.html +1 -1
  203. data/doc/files/lib/Scoreboard_rb.html +1 -1
  204. data/doc/files/lib/ShiftAssignments_rb.html +1 -1
  205. data/doc/files/lib/ShiftScenario_rb.html +1 -1
  206. data/doc/files/lib/Shift_rb.html +1 -1
  207. data/doc/files/lib/SourceFileInfo_rb.html +1 -1
  208. data/doc/files/lib/SyntaxReference_rb.html +1 -1
  209. data/doc/files/lib/TOCEntry_rb.html +1 -1
  210. data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
  211. data/doc/files/lib/TableOfContents_rb.html +1 -1
  212. data/doc/files/lib/TaskDependency_rb.html +1 -1
  213. data/doc/files/lib/TaskJuggler_rb.html +1 -1
  214. data/doc/files/lib/TaskScenario_rb.html +1 -1
  215. data/doc/files/lib/Task_rb.html +1 -1
  216. data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
  217. data/doc/files/lib/TextParser/Rule_rb.html +1 -1
  218. data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
  219. data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
  220. data/doc/files/lib/TextParser_rb.html +1 -1
  221. data/doc/files/lib/TextScanner_rb.html +1 -1
  222. data/doc/files/lib/Tj3Config_rb.html +1 -1
  223. data/doc/files/lib/TjException_rb.html +1 -1
  224. data/doc/files/lib/TjTime_rb.html +1 -1
  225. data/doc/files/lib/TjpExample_rb.html +1 -1
  226. data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
  227. data/doc/files/lib/UTF8String_rb.html +1 -1
  228. data/doc/files/lib/UserManual_rb.html +1 -1
  229. data/doc/files/lib/WorkingHours_rb.html +1 -1
  230. data/doc/files/lib/XMLDocument_rb.html +1 -1
  231. data/doc/files/lib/XMLElement_rb.html +1 -1
  232. data/doc/files/lib/deep_copy_rb.html +106 -0
  233. data/doc/files/lib/ms_test_rb.html +90 -0
  234. data/doc/files/lib/reports/CSVFile_rb.html +1 -1
  235. data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
  236. data/doc/files/lib/reports/GanttChart_rb.html +1 -1
  237. data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
  238. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  239. data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
  240. data/doc/files/lib/reports/GanttLine_rb.html +1 -1
  241. data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
  242. data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
  243. data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
  244. data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
  245. data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
  246. data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
  247. data/doc/files/lib/reports/ReportBase_rb.html +106 -0
  248. data/doc/files/lib/reports/ReportContext_rb.html +106 -0
  249. data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
  250. data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
  251. data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
  252. data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
  253. data/doc/files/lib/reports/ReportTable_rb.html +1 -1
  254. data/doc/files/lib/reports/Report_rb.html +8 -2
  255. data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
  256. data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
  257. data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
  258. data/doc/files/lib/reports/TextReport_rb.html +116 -0
  259. data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
  260. data/doc/files/lib/taskjuggler3_rb.html +61 -56
  261. data/doc/files/lib/tj3man_rb.html +1 -1
  262. data/doc/fr_class_index.html +41 -3
  263. data/doc/fr_file_index.html +21 -5
  264. data/doc/fr_method_index.html +1069 -959
  265. data/examples/ContactList.html +1467 -0
  266. data/examples/Deliveries.html +485 -0
  267. data/examples/Development.html +2525 -0
  268. data/examples/Overview.html +747 -0
  269. data/examples/Resource Graph.html +616 -0
  270. data/examples/tutorial.tjp +63 -67
  271. data/lib/AttributeBase.rb +27 -31
  272. data/lib/AttributeDefinition.rb +12 -7
  273. data/lib/Attributes.rb +134 -34
  274. data/lib/Interval.rb +2 -0
  275. data/lib/Journal.rb +44 -0
  276. data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
  277. data/lib/KeywordDocumentation.rb +84 -47
  278. data/lib/Limits.rb +7 -5
  279. data/lib/LogicalExpression.rb +1 -1
  280. data/lib/LogicalOperation.rb +33 -0
  281. data/lib/Project.rb +313 -99
  282. data/lib/ProjectFileParser.rb +88 -11
  283. data/lib/PropertyList.rb +2 -1
  284. data/lib/PropertySet.rb +13 -4
  285. data/lib/PropertyTreeNode.rb +34 -15
  286. data/lib/Query.rb +2 -1
  287. data/lib/RTPNavigator.rb +53 -0
  288. data/lib/RTPReport.rb +62 -0
  289. data/lib/RealFormat.rb +28 -10
  290. data/lib/RichTextElement.rb +18 -12
  291. data/lib/RichTextParser.rb +1 -0
  292. data/lib/RichTextProtocolExample.rb +8 -11
  293. data/lib/RichTextProtocolHandler.rb +11 -1
  294. data/lib/RichTextScanner.rb +308 -164
  295. data/lib/RichTextSyntaxRules.rb +24 -0
  296. data/lib/TableColumnDefinition.rb +5 -1
  297. data/lib/TaskJuggler.rb +3 -2
  298. data/lib/TaskScenario.rb +123 -31
  299. data/lib/TextParser.rb +14 -3
  300. data/lib/TextScanner.rb +210 -34
  301. data/lib/Tj3Config.rb +1 -1
  302. data/lib/TjTime.rb +15 -0
  303. data/lib/TjpExample.rb +1 -1
  304. data/lib/TjpSyntaxRules.rb +674 -473
  305. data/lib/WorkingHours.rb +1 -1
  306. data/lib/XMLElement.rb +11 -3
  307. data/lib/deep_copy.rb +72 -0
  308. data/lib/ms_test.rb +27 -0
  309. data/lib/reports/ColumnTable.rb +7 -5
  310. data/lib/reports/GanttChart.rb +60 -34
  311. data/lib/reports/GanttHeader.rb +1 -1
  312. data/lib/reports/GanttRouter.rb +7 -5
  313. data/lib/reports/Navigator.rb +72 -0
  314. data/lib/reports/Report.rb +58 -73
  315. data/lib/reports/ReportBase.rb +241 -0
  316. data/lib/reports/ReportContext.rb +41 -0
  317. data/lib/reports/ReportTable.rb +7 -2
  318. data/lib/reports/ReportTableCell.rb +3 -3
  319. data/lib/reports/ResourceListRE.rb +19 -26
  320. data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
  321. data/lib/reports/TaskListRE.rb +16 -24
  322. data/lib/reports/TextReport.rb +87 -0
  323. data/lib/reports/TjpExportRE.rb +55 -50
  324. data/lib/taskjuggler3.rb +6 -1
  325. data/manual/Getting_Started +57 -6
  326. data/manual/How_To_Contribute +2 -4
  327. data/manual/Intro +2 -2
  328. data/manual/Reporting_Bugs +9 -2
  329. data/manual/Rich_Text_Attributes +41 -0
  330. data/manual/Tutorial +219 -173
  331. data/tasks/test.rake +3 -0
  332. data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
  333. data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
  334. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
  335. data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
  336. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
  337. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
  338. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  339. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  340. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  341. data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
  342. data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
  343. data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
  344. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
  345. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
  346. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  347. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
  348. data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
  349. data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
  350. data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
  351. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
  352. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
  353. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
  354. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
  355. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
  356. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
  357. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
  358. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
  359. data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
  360. data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
  361. data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
  362. data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
  363. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
  364. data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
  365. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
  366. data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
  367. data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
  368. data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
  369. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
  370. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
  371. data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
  372. data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
  373. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
  374. data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
  375. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
  376. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
  377. data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
  378. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
  379. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
  380. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
  381. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
  382. data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
  383. data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
  384. data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
  385. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
  386. data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
  387. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
  388. data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
  389. data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
  390. data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
  391. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
  392. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
  393. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
  394. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
  395. data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
  396. data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
  397. data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
  398. data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
  399. data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
  400. data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
  401. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
  402. data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
  403. data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
  404. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
  405. data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
  406. data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
  407. data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
  408. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
  409. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
  410. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
  411. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
  412. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
  413. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
  414. data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
  415. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
  416. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
  417. data/test/all.rb +1 -16
  418. data/test/test_CSV-Reports.rb +8 -5
  419. data/test/test_Query.rb +2 -2
  420. data/test/test_RichText.rb +95 -0
  421. data/test/test_Scheduler.rb +8 -4
  422. data/test/test_Syntax.rb +8 -4
  423. data/test/test_deep_copy.rb +83 -0
  424. metadata +549 -487
  425. data/benchmarks/UTF-8-Strings.rb +0 -58
  426. data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
  427. data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
  428. data/lib/reports/ReportElement.rb +0 -427
  429. data/test/TestSuite/Syntax/Correct/csvtest +0 -16
  430. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
  431. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
  432. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
@@ -70,8 +70,12 @@
70
70
  <td><strong>Parent:</strong></td>
71
71
  <td>
72
72
 
73
+ <a href="../Object.html">
74
+
73
75
  Object
74
76
 
77
+ </a>
78
+
75
79
  </td>
76
80
  </tr>
77
81
 
@@ -88,8 +92,8 @@
88
92
  The <a href="RichTextScanner.html">RichTextScanner</a> is used by the <a
89
93
  href="RichTextParser.html">RichTextParser</a> to chop the input text into
90
94
  digestable tokens. The parser and the scanner only communicate over <a
91
- href="RichTextScanner.html#M000610">RichTextScanner#nextToken</a> and <a
92
- href="RichTextScanner.html#M000611">RichTextScanner#returnToken</a>. The
95
+ href="RichTextScanner.html#M000939">RichTextScanner#nextToken</a> and <a
96
+ href="RichTextScanner.html#M000940">RichTextScanner#returnToken</a>. The
93
97
  scanner can break the text into words and special tokens.
94
98
  </p>
95
99
 
@@ -103,17 +107,17 @@ scanner can break the text into words and special tokens.
103
107
 
104
108
  <div class="name-list">
105
109
 
106
- <a href="#M000614">error</a>&nbsp;&nbsp;
110
+ <a href="#M000943">error</a>&nbsp;&nbsp;
107
111
 
108
- <a href="#M000613">fileName</a>&nbsp;&nbsp;
112
+ <a href="#M000942">fileName</a>&nbsp;&nbsp;
109
113
 
110
- <a href="#M000609">new</a>&nbsp;&nbsp;
114
+ <a href="#M000938">new</a>&nbsp;&nbsp;
111
115
 
112
- <a href="#M000610">nextToken</a>&nbsp;&nbsp;
116
+ <a href="#M000939">nextToken</a>&nbsp;&nbsp;
113
117
 
114
- <a href="#M000611">returnToken</a>&nbsp;&nbsp;
118
+ <a href="#M000940">returnToken</a>&nbsp;&nbsp;
115
119
 
116
- <a href="#M000612">sourceFileInfo</a>&nbsp;&nbsp;
120
+ <a href="#M000941">sourceFileInfo</a>&nbsp;&nbsp;
117
121
 
118
122
  </div>
119
123
  </div>
@@ -134,12 +138,12 @@ scanner can break the text into words and special tokens.
134
138
  <h3 class="section-bar">Public Class methods</h3>
135
139
 
136
140
 
137
- <div id="method-M000609" class="method-detail">
138
- <a name="M000609"></a>
141
+ <div id="method-M000938" class="method-detail">
142
+ <a name="M000938"></a>
139
143
 
140
144
  <div class="method-heading">
141
145
 
142
- <a href="#M000609" class="method-signature">
146
+ <a href="#M000938" class="method-signature">
143
147
 
144
148
  <span class="method-name">new</span><span class="method-args">(text)</span>
145
149
 
@@ -155,8 +159,8 @@ initialize all state variables.
155
159
  </p>
156
160
 
157
161
  <p><a class="source-toggle" href="#"
158
- onclick="toggleCode('M000609-source');return false;">[Source]</a></p>
159
- <div class="method-source-code" id="M000609-source">
162
+ onclick="toggleCode('M000938-source');return false;">[Source]</a></p>
163
+ <div class="method-source-code" id="M000938-source">
160
164
  <pre>
161
165
  <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 24</span>
162
166
  24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>)
@@ -177,12 +181,16 @@ initialize all state variables.
177
181
  39: <span class="ruby-comment cmt"># This is the position of the start of the currently processed line.</span>
178
182
  40: <span class="ruby-comment cmt"># It's only used for error reporting.</span>
179
183
  41: <span class="ruby-ivar">@lineStart</span> = <span class="ruby-value">0</span>
180
- 42: <span class="ruby-comment cmt"># Most of the wiki markup interpretation can be turned on/off by using</span>
181
- 43: <span class="ruby-comment cmt"># &lt;nowiki&gt;...&lt;/nowiki&gt; in the text. This flag keeps this state.</span>
182
- 44: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">true</span>
183
- 45: <span class="ruby-comment cmt"># Enable to trigger printout instead of exception.</span>
184
- 46: <span class="ruby-ivar">@debug</span> = <span class="ruby-keyword kw">false</span>
185
- 47: <span class="ruby-keyword kw">end</span>
184
+ 42: <span class="ruby-comment cmt"># This variable stores the mode that the parser is operating in. The</span>
185
+ 43: <span class="ruby-comment cmt"># following modes are supported:</span>
186
+ 44: <span class="ruby-comment cmt"># :wiki : accept supported MediaWiki subset plus TJ extensions</span>
187
+ 45: <span class="ruby-comment cmt"># :nowiki : ignore most markup except for the &lt;/nowiki&gt; token</span>
188
+ 46: <span class="ruby-comment cmt"># :funcarg : parse name and parameters of an block or inline parser</span>
189
+ 47: <span class="ruby-comment cmt"># function.</span>
190
+ 48: <span class="ruby-ivar">@mode</span> = <span class="ruby-identifier">:wiki</span>
191
+ 49: <span class="ruby-comment cmt"># Enable to trigger printout instead of exception.</span>
192
+ 50: <span class="ruby-ivar">@debug</span> = <span class="ruby-keyword kw">false</span>
193
+ 51: <span class="ruby-keyword kw">end</span>
186
194
  </pre>
187
195
  </div>
188
196
 
@@ -193,12 +201,12 @@ initialize all state variables.
193
201
  <h3 class="section-bar">Public Instance methods</h3>
194
202
 
195
203
 
196
- <div id="method-M000614" class="method-detail">
197
- <a name="M000614"></a>
204
+ <div id="method-M000943" class="method-detail">
205
+ <a name="M000943"></a>
198
206
 
199
207
  <div class="method-heading">
200
208
 
201
- <a href="#M000614" class="method-signature">
209
+ <a href="#M000943" class="method-signature">
202
210
 
203
211
  <span class="method-name">error</span><span class="method-args">(id, text, foo)</span>
204
212
 
@@ -213,19 +221,19 @@ The parser uses this function to report any errors during parsing.
213
221
  </p>
214
222
 
215
223
  <p><a class="source-toggle" href="#"
216
- onclick="toggleCode('M000614-source');return false;">[Source]</a></p>
217
- <div class="method-source-code" id="M000614-source">
224
+ onclick="toggleCode('M000943-source');return false;">[Source]</a></p>
225
+ <div class="method-source-code" id="M000943-source">
218
226
  <pre>
219
- <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 253</span>
220
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">foo</span>)
221
- 254: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
222
- 255: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Line #{@lineNo}: #{text}\n&quot;</span> <span class="ruby-operator">+</span>
223
- 256: <span class="ruby-node">&quot;#{@text[@lineStart, @pos - @lineStart]}&quot;</span>
224
- 257: <span class="ruby-keyword kw">else</span>
225
- 258: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RichTextException</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-ivar">@lineNo</span>, <span class="ruby-identifier">text</span>,
226
- 259: <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@lineStart</span>, <span class="ruby-ivar">@pos</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineStart</span>])
227
- 260: <span class="ruby-keyword kw">end</span>
228
- 261: <span class="ruby-keyword kw">end</span>
227
+ <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 110</span>
228
+ 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">foo</span>)
229
+ 111: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
230
+ 112: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Line #{@lineNo}: #{text}\n&quot;</span> <span class="ruby-operator">+</span>
231
+ 113: <span class="ruby-node">&quot;#{@text[@lineStart, @pos - @lineStart]}&quot;</span>
232
+ 114: <span class="ruby-keyword kw">else</span>
233
+ 115: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RichTextException</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-ivar">@lineNo</span>, <span class="ruby-identifier">text</span>,
234
+ 116: <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@lineStart</span>, <span class="ruby-ivar">@pos</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineStart</span>])
235
+ 117: <span class="ruby-keyword kw">end</span>
236
+ 118: <span class="ruby-keyword kw">end</span>
229
237
  </pre>
230
238
  </div>
231
239
 
@@ -233,12 +241,12 @@ The parser uses this function to report any errors during parsing.
233
241
  </div>
234
242
 
235
243
 
236
- <div id="method-M000613" class="method-detail">
237
- <a name="M000613"></a>
244
+ <div id="method-M000942" class="method-detail">
245
+ <a name="M000942"></a>
238
246
 
239
247
  <div class="method-heading">
240
248
 
241
- <a href="#M000613" class="method-signature">
249
+ <a href="#M000942" class="method-signature">
242
250
 
243
251
  <span class="method-name">fileName</span><span class="method-args">()</span>
244
252
 
@@ -254,13 +262,13 @@ don&#8217;t have a file name, we just return &#8216;input text&#8217;.
254
262
  </p>
255
263
 
256
264
  <p><a class="source-toggle" href="#"
257
- onclick="toggleCode('M000613-source');return false;">[Source]</a></p>
258
- <div class="method-source-code" id="M000613-source">
265
+ onclick="toggleCode('M000942-source');return false;">[Source]</a></p>
266
+ <div class="method-source-code" id="M000942-source">
259
267
  <pre>
260
- <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 248</span>
261
- 248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
262
- 249: <span class="ruby-value str">'input text'</span>
263
- 250: <span class="ruby-keyword kw">end</span>
268
+ <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 105</span>
269
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
270
+ 106: <span class="ruby-value str">'input text'</span>
271
+ 107: <span class="ruby-keyword kw">end</span>
264
272
  </pre>
265
273
  </div>
266
274
 
@@ -268,12 +276,12 @@ don&#8217;t have a file name, we just return &#8216;input text&#8217;.
268
276
  </div>
269
277
 
270
278
 
271
- <div id="method-M000610" class="method-detail">
272
- <a name="M000610"></a>
279
+ <div id="method-M000939" class="method-detail">
280
+ <a name="M000939"></a>
273
281
 
274
282
  <div class="method-heading">
275
283
 
276
- <a href="#M000610" class="method-signature">
284
+ <a href="#M000939" class="method-signature">
277
285
 
278
286
  <span class="method-name">nextToken</span><span class="method-args">()</span>
279
287
 
@@ -288,185 +296,38 @@ Return the next token from the input text.
288
296
  </p>
289
297
 
290
298
  <p><a class="source-toggle" href="#"
291
- onclick="toggleCode('M000610-source');return false;">[Source]</a></p>
292
- <div class="method-source-code" id="M000610-source">
299
+ onclick="toggleCode('M000939-source');return false;">[Source]</a></p>
300
+ <div class="method-source-code" id="M000939-source">
293
301
  <pre>
294
- <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 57</span>
295
- 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
296
- 58: <span class="ruby-comment cmt"># If we have a returned token, this is returned first.</span>
297
- 59: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokenBuffer</span>
298
- 60: <span class="ruby-identifier">tok</span> = <span class="ruby-ivar">@tokenBuffer</span>
299
- 61: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
300
- 62: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tok</span>
301
- 63: <span class="ruby-keyword kw">end</span>
302
- 64:
303
- 65: <span class="ruby-comment cmt"># Some characters have only a special meaning at the start of the line.</span>
304
- 66: <span class="ruby-comment cmt"># When the last token pushed the cursor into a new line, this flag is set</span>
305
- 67: <span class="ruby-comment cmt"># to true.</span>
306
- 68: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@beginOfLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@wikiEnabled</span>
307
- 69: <span class="ruby-comment cmt"># Reset the flag again.</span>
308
- 70: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">false</span>
309
- 71:
310
- 72: <span class="ruby-comment cmt"># We already know that the last newline was a real linebreak. Further</span>
311
- 73: <span class="ruby-comment cmt"># newlines can safely be ignored.</span>
312
- 74: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
313
- 75:
314
- 76: <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>)
315
- 77: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
316
- 78: <span class="ruby-comment cmt"># Headings start with 2 or more = and must be followed by a space.</span>
317
- 79: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">4</span>)
318
- 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
319
- 81: <span class="ruby-comment cmt"># 1 = does not mean anything. Push it back and process it as normal</span>
320
- 82: <span class="ruby-comment cmt"># text further down.</span>
321
- 83: <span class="ruby-identifier">returnChar</span>
322
- 84: <span class="ruby-keyword kw">else</span>
323
- 85: <span class="ruby-comment cmt"># Between the = characters and the title text must be exactly one</span>
324
- 86: <span class="ruby-comment cmt"># space.</span>
325
- 87: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">&quot;TITLE#{level - 1}&quot;</span>, <span class="ruby-value str">'='</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
326
- 88: <span class="ruby-comment cmt"># If that's missing, The = are treated as normal text further down.</span>
327
- 89: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
328
- 90: <span class="ruby-keyword kw">end</span>
329
- 91: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
330
- 92: <span class="ruby-comment cmt"># Horizontal ruler. Must have exactly 4 -.</span>
331
- 93: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">4</span>)
332
- 94: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">&quot;HLINE&quot;</span>, <span class="ruby-value str">'-'</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
333
- 95: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
334
- 96: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'*'</span>
335
- 97: <span class="ruby-comment cmt"># Bullet lists start with one to three * characters.</span>
336
- 98: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'*'</span>)
337
- 99: <span class="ruby-comment cmt"># Between the * characters and the bullet text must be exactly one</span>
338
- 100: <span class="ruby-comment cmt"># space.</span>
339
- 101: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">&quot;BULLET#{level}&quot;</span>, <span class="ruby-value str">'*'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
340
- 102: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
341
- 103: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
342
- 104: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
343
- 105: <span class="ruby-comment cmt"># Numbered list start with one to three # characters.</span>
344
- 106: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'#'</span>)
345
- 107: <span class="ruby-comment cmt"># Between the # characters and the bullet text must be exactly one</span>
346
- 108: <span class="ruby-comment cmt"># space.</span>
347
- 109: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">&quot;NUMBER#{level}&quot;</span>, <span class="ruby-value str">'#'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
348
- 110: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
349
- 111: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
350
- 112: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>
351
- 113: <span class="ruby-comment cmt"># Lines that start with a space are treated as verbatim text.</span>
352
- 114: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">&quot;PRE&quot;</span>, <span class="ruby-identifier">readCode</span> ] <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">peek</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;\n&quot;</span>
353
- 115: <span class="ruby-keyword kw">else</span>
354
- 116: <span class="ruby-comment cmt"># If the character is not a known control character we push it back</span>
355
- 117: <span class="ruby-comment cmt"># and treat it as normal text further down.</span>
356
- 118: <span class="ruby-identifier">returnChar</span>
357
- 119: <span class="ruby-keyword kw">end</span>
358
- 120: <span class="ruby-keyword kw">end</span>
359
- 121:
360
- 122: <span class="ruby-comment cmt"># Not all sequences of inline markup characters are control sequences. In</span>
361
- 123: <span class="ruby-comment cmt"># case we detect a sequence that has not the right number of characters,</span>
362
- 124: <span class="ruby-comment cmt"># we push them back and start over with this flag set to true.</span>
363
- 125: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
364
- 126:
365
- 127: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
366
- 128: <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
367
- 129: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">nil?</span>
368
- 130: <span class="ruby-comment cmt"># We've reached the end of the text.</span>
369
- 131: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span> ]
370
- 132: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\t&quot;</span>
371
- 133: <span class="ruby-comment cmt"># Sequences of tabs or spaces are treated as token boundaries, but</span>
372
- 134: <span class="ruby-comment cmt"># otherwise they are ignored.</span>
373
- 135: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">&quot;\t&quot;</span>)
374
- 136: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
375
- 137: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ignoreInlineMarkup</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@wikiEnabled</span>
376
- 138: <span class="ruby-comment cmt"># Sequence of 2 ' means italic, 3 ' means bold, 4 ' means monospaced</span>
377
- 139: <span class="ruby-comment cmt"># code, 5 ' means italic and bold. Anything else is just normal text.</span>
378
- 140: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">&quot;'&quot;</span>, <span class="ruby-value">5</span>)
379
- 141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
380
- 142: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'ITALIC'</span>, <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
381
- 143: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span>
382
- 144: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BOLD'</span>, <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
383
- 145: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
384
- 146: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'CODE'</span>, <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
385
- 147: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">5</span>
386
- 148: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BOLDITALIC'</span>, <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
387
- 149: <span class="ruby-keyword kw">else</span>
388
- 150: <span class="ruby-comment cmt"># We have not found the right syntax. Treat the found characters as</span>
389
- 151: <span class="ruby-comment cmt"># normal text. Push all ' back and start again but ignoring the '</span>
390
- 152: <span class="ruby-comment cmt"># code for once.</span>
391
- 153: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
392
- 154: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
393
- 155: <span class="ruby-keyword kw">next</span>
394
- 156: <span class="ruby-keyword kw">end</span>
395
- 157: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ignoreInlineMarkup</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@wikiEnabled</span>
396
- 158: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">4</span>)
397
- 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
398
- 160: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">&quot;TITLE#{level - 1}END&quot;</span>, <span class="ruby-value str">'='</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
399
- 161: <span class="ruby-keyword kw">else</span>
400
- 162: <span class="ruby-comment cmt"># We have not found the right syntax. Treat found characters as</span>
401
- 163: <span class="ruby-comment cmt"># normal text. Push all = back and start again but ignoring the =</span>
402
- 164: <span class="ruby-comment cmt"># code for once.</span>
403
- 165: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
404
- 166: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
405
- 167: <span class="ruby-keyword kw">next</span>
406
- 168: <span class="ruby-keyword kw">end</span>
407
- 169: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'['</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@wikiEnabled</span>
408
- 170: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'['</span>, <span class="ruby-value">2</span>)
409
- 171: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'HREF'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'REF'</span>, <span class="ruby-value str">'['</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
410
- 172: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">']'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@wikiEnabled</span>
411
- 173: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">']'</span>, <span class="ruby-value">2</span>)
412
- 174: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'HREFEND'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'REFEND'</span>, <span class="ruby-value str">']'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
413
- 175: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;\n&quot;</span>
414
- 176: <span class="ruby-comment cmt"># Newlines are pretty important as they can terminate blocks and turn</span>
415
- 177: <span class="ruby-comment cmt"># the next character into the start of a control sequence.</span>
416
- 178: <span class="ruby-comment cmt"># Hard linebreaks consist of a newline followed by another newline or</span>
417
- 179: <span class="ruby-comment cmt"># any of the begin-of-line control characters.</span>
418
- 180: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-value str">&quot;\n*# =-&quot;</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
419
- 181: <span class="ruby-identifier">returnChar</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;\n&quot;</span>
420
- 182: <span class="ruby-comment cmt"># The next character may be a control character.</span>
421
- 183: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
422
- 184: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-value str">&quot;\n&quot;</span> ]
423
- 185: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">nil?</span>
424
- 186: <span class="ruby-comment cmt"># We hit the end of the text.</span>
425
- 187: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span> ]
426
- 188: <span class="ruby-keyword kw">else</span>
427
- 189: <span class="ruby-comment cmt"># Single line breaks are treated as spaces. Return the char after</span>
428
- 190: <span class="ruby-comment cmt"># the newline and start with this one again.</span>
429
- 191: <span class="ruby-identifier">returnChar</span>
430
- 192: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
431
- 193: <span class="ruby-keyword kw">end</span>
432
- 194: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'&lt;'</span>
433
- 195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'nowiki&gt;'</span>)
434
- 196: <span class="ruby-comment cmt"># Turn most wiki markup interpretation off.</span>
435
- 197: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'nowiki&gt;'</span>.<span class="ruby-identifier">length</span>
436
- 198: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">false</span>
437
- 199: <span class="ruby-keyword kw">next</span>
438
- 200: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'/nowiki&gt;'</span>)
439
- 201: <span class="ruby-comment cmt"># Turn most wiki markup interpretation on.</span>
440
- 202: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/nowiki&gt;'</span>.<span class="ruby-identifier">length</span>
441
- 203: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">true</span>
442
- 204: <span class="ruby-keyword kw">next</span>
443
- 205: <span class="ruby-keyword kw">else</span>
444
- 206: <span class="ruby-identifier">returnChar</span>
445
- 207: <span class="ruby-keyword kw">end</span>
446
- 208: <span class="ruby-keyword kw">else</span>
447
- 209: <span class="ruby-comment cmt"># Reset this flag again.</span>
448
- 210: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
449
- 211: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
450
- 212: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
451
- 213: <span class="ruby-comment cmt"># Now we can collect characters of a word until we hit a whitespace.</span>
452
- 214: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-value str">&quot; \n\t&quot;</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
453
- 215: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@wikiEnabled</span>
454
- 216: <span class="ruby-comment cmt"># Or at least to ' characters in a row.</span>
455
- 217: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">peek</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;'&quot;</span>
456
- 218: <span class="ruby-comment cmt"># Or a ] or &lt;</span>
457
- 219: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-value str">']&lt;'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
458
- 220: <span class="ruby-keyword kw">else</span>
459
- 221: <span class="ruby-comment cmt"># Make sure we find the &lt;/nowiki&gt; tag even within a word.</span>
460
- 222: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'&lt;'</span>
461
- 223: <span class="ruby-keyword kw">end</span>
462
- 224: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
463
- 225: <span class="ruby-keyword kw">end</span>
464
- 226: <span class="ruby-comment cmt"># Return the character that indicated the word end.</span>
465
- 227: <span class="ruby-identifier">returnChar</span>
466
- 228: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-identifier">str</span> ]
467
- 229: <span class="ruby-keyword kw">end</span>
468
- 230: <span class="ruby-keyword kw">end</span>
469
- 231: <span class="ruby-keyword kw">end</span>
302
+ <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 61</span>
303
+ 61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
304
+ 62: <span class="ruby-comment cmt"># If we have a returned token, this is returned first.</span>
305
+ 63: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokenBuffer</span>
306
+ 64: <span class="ruby-identifier">tok</span> = <span class="ruby-ivar">@tokenBuffer</span>
307
+ 65: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
308
+ 66: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tok</span>
309
+ 67: <span class="ruby-keyword kw">end</span>
310
+ 68:
311
+ 69: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:funcarg</span>
312
+ 70: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nextTokenFuncArg</span>
313
+ 71: <span class="ruby-keyword kw">end</span>
314
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@beginOfLine</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:wiki</span>
315
+ 73: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">res</span> = <span class="ruby-identifier">nextTokenWikiBOL</span>)
316
+ 74: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
317
+ 75: <span class="ruby-keyword kw">end</span>
318
+ 76: <span class="ruby-keyword kw">end</span>
319
+ 77:
320
+ 78: <span class="ruby-comment cmt"># Many inline control character sequences consit of multiple characters.</span>
321
+ 79: <span class="ruby-comment cmt"># In case of incomplete sequences, we roll back to the start character</span>
322
+ 80: <span class="ruby-comment cmt"># and set the ignoreInlineMarkup flag to simply treat them as normal</span>
323
+ 81: <span class="ruby-comment cmt"># text.</span>
324
+ 82: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
325
+ 83: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
326
+ 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> = (<span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:wiki</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">nextTokenWikiInline</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">nextTokenNoWikiInline</span>)
327
+ 85: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
328
+ 86: <span class="ruby-keyword kw">end</span>
329
+ 87: <span class="ruby-keyword kw">end</span>
330
+ 88: <span class="ruby-keyword kw">end</span>
470
331
  </pre>
471
332
  </div>
472
333
 
@@ -474,12 +335,12 @@ Return the next token from the input text.
474
335
  </div>
475
336
 
476
337
 
477
- <div id="method-M000611" class="method-detail">
478
- <a name="M000611"></a>
338
+ <div id="method-M000940" class="method-detail">
339
+ <a name="M000940"></a>
479
340
 
480
341
  <div class="method-heading">
481
342
 
482
- <a href="#M000611" class="method-signature">
343
+ <a href="#M000940" class="method-signature">
483
344
 
484
345
  <span class="method-name">returnToken</span><span class="method-args">(token)</span>
485
346
 
@@ -494,16 +355,16 @@ Return the last issued token to the token buffer.
494
355
  </p>
495
356
 
496
357
  <p><a class="source-toggle" href="#"
497
- onclick="toggleCode('M000611-source');return false;">[Source]</a></p>
498
- <div class="method-source-code" id="M000611-source">
358
+ onclick="toggleCode('M000940-source');return false;">[Source]</a></p>
359
+ <div class="method-source-code" id="M000940-source">
499
360
  <pre>
500
- <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 234</span>
501
- 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
502
- 235: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
503
- 236: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">'Token buffer overflow!'</span>
504
- 237: <span class="ruby-keyword kw">end</span>
505
- 238: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
506
- 239: <span class="ruby-keyword kw">end</span>
361
+ <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 91</span>
362
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
363
+ 92: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
364
+ 93: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">'Token buffer overflow!'</span>
365
+ 94: <span class="ruby-keyword kw">end</span>
366
+ 95: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
367
+ 96: <span class="ruby-keyword kw">end</span>
507
368
  </pre>
508
369
  </div>
509
370
 
@@ -511,12 +372,12 @@ Return the last issued token to the token buffer.
511
372
  </div>
512
373
 
513
374
 
514
- <div id="method-M000612" class="method-detail">
515
- <a name="M000612"></a>
375
+ <div id="method-M000941" class="method-detail">
376
+ <a name="M000941"></a>
516
377
 
517
378
  <div class="method-heading">
518
379
 
519
- <a href="#M000612" class="method-signature">
380
+ <a href="#M000941" class="method-signature">
520
381
 
521
382
  <span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
522
383
 
@@ -531,13 +392,13 @@ Return the last issued token to the token buffer.
531
392
  </p>
532
393
 
533
394
  <p><a class="source-toggle" href="#"
534
- onclick="toggleCode('M000612-source');return false;">[Source]</a></p>
535
- <div class="method-source-code" id="M000612-source">
395
+ onclick="toggleCode('M000941-source');return false;">[Source]</a></p>
396
+ <div class="method-source-code" id="M000941-source">
536
397
  <pre>
537
- <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 242</span>
538
- 242: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
539
- 243: [ <span class="ruby-ivar">@lineNo</span>, <span class="ruby-ivar">@pos</span> ]
540
- 244: <span class="ruby-keyword kw">end</span>
398
+ <span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 99</span>
399
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
400
+ 100: [ <span class="ruby-ivar">@lineNo</span>, <span class="ruby-ivar">@pos</span> ]
401
+ 101: <span class="ruby-keyword kw">end</span>
541
402
  </pre>
542
403
  </div>
543
404