taskjuggler 0.0.6 → 0.0.7

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 (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -95,7 +95,7 @@
95
95
 
96
96
  <li><a href="#method-i-terminalSymbol%3F">#terminalSymbol?</a></li>
97
97
 
98
- <li><a href="#method-i-terminalToken">#terminalToken</a></li>
98
+ <li><a href="#method-i-terminalTokens">#terminalTokens</a></li>
99
99
 
100
100
  <li><a href="#method-i-to_s">#to_s</a></li>
101
101
 
@@ -195,6 +195,10 @@
195
195
 
196
196
  <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
197
197
 
198
+ <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
199
+
200
+ <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
201
+
198
202
  <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
199
203
 
200
204
  <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -267,8 +271,6 @@
267
271
 
268
272
  <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
269
273
 
270
- <li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
271
-
272
274
  <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
273
275
 
274
276
  <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -333,6 +335,8 @@
333
335
 
334
336
  <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
335
337
 
338
+ <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
339
+
336
340
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
337
341
 
338
342
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -379,8 +383,6 @@
379
383
 
380
384
  <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
381
385
 
382
- <li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
383
-
384
386
  <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
385
387
 
386
388
  <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -421,6 +423,8 @@
421
423
 
422
424
  <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
423
425
 
426
+ <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
427
+
424
428
  <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
425
429
 
426
430
  <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -531,6 +535,8 @@
531
535
 
532
536
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
533
537
 
538
+ <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
539
+
534
540
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
535
541
 
536
542
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -1205,12 +1211,12 @@ Returns true if the i-th token is a terminal symbol.
1205
1211
  </div>
1206
1212
 
1207
1213
 
1208
- <div id="terminal-oken-method" class="method-detail ">
1209
- <a name="method-i-terminalToken"></a>
1214
+ <div id="terminal-okens-method" class="method-detail ">
1215
+ <a name="method-i-terminalTokens"></a>
1210
1216
 
1211
1217
  <div class="method-heading">
1212
1218
 
1213
- <span class="method-name">terminalToken</span><span
1219
+ <span class="method-name">terminalTokens</span><span
1214
1220
  class="method-args">(rules, index = 0)</span>
1215
1221
  <span class="method-click-advice">click to toggle source</span>
1216
1222
 
@@ -1221,33 +1227,37 @@ Returns true if the i-th token is a terminal symbol.
1221
1227
  <p>
1222
1228
  Find recursively the first terminal token of this pattern. If an index is
1223
1229
  specified start the search at this n-th pattern token instead of the first.
1224
- The return value is either nil or a [ token, pattern ] tuple.
1230
+ The return value is an Array of [ token, pattern ] tuple.
1225
1231
  </p>
1226
1232
 
1227
1233
 
1228
1234
 
1229
1235
  <div class="method-source-code"
1230
- id="terminal-oken-source">
1236
+ id="terminal-okens-source">
1231
1237
  <pre>
1232
1238
  <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 146</span>
1233
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminalToken</span>(<span class="ruby-identifier">rules</span>, <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>)
1239
+ 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminalTokens</span>(<span class="ruby-identifier">rules</span>, <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>)
1234
1240
  147: <span class="ruby-comment cmt"># Terminal token start with an underscore or dollar character.</span>
1235
- 148: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">__</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">$$</span>
1236
- 149: <span class="ruby-keyword kw">return</span> [ <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>].<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>), <span class="ruby-keyword kw">self</span> ]
1237
- 150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">!!</span>
1238
- 151: <span class="ruby-comment cmt"># Token starting with a bang reference another rule. We have to continue</span>
1239
- 152: <span class="ruby-comment cmt"># the search at this rule. First, we get rid of the bang to get the rule</span>
1240
- 153: <span class="ruby-comment cmt"># name.</span>
1241
- 154: <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>].<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
1242
- 155: <span class="ruby-comment cmt"># Then find the rule</span>
1243
- 156: <span class="ruby-identifier">rule</span> = <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>]
1244
- 157: <span class="ruby-comment cmt"># The rule may only have a single pattern. If not, then this pattern has</span>
1245
- 158: <span class="ruby-comment cmt"># no terminal token.</span>
1246
- 159: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1</span>
1247
- 160: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">terminalToken</span>(<span class="ruby-identifier">rules</span>)
1248
- 161: <span class="ruby-keyword kw">end</span>
1249
- 162: <span class="ruby-keyword kw">nil</span>
1250
- 163: <span class="ruby-keyword kw">end</span></pre>
1241
+ 148: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">__</span>
1242
+ 149: <span class="ruby-keyword kw">return</span> [ [ <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>], <span class="ruby-keyword kw">self</span> ] ]
1243
+ 150: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">$$</span>
1244
+ 151: <span class="ruby-keyword kw">return</span> []
1245
+ 152: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">!!</span>
1246
+ 153: <span class="ruby-comment cmt"># Token starting with a bang reference another rule. We have to</span>
1247
+ 154: <span class="ruby-comment cmt"># continue the search at this rule. First, we get rid of the bang to</span>
1248
+ 155: <span class="ruby-comment cmt"># get the rule name.</span>
1249
+ 156: <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>][<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
1250
+ 157: <span class="ruby-comment cmt"># Then find the rule</span>
1251
+ 158: <span class="ruby-identifier">rule</span> = <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>]
1252
+ 159: <span class="ruby-comment cmt"># The rule may only have a single pattern. If not, then this pattern</span>
1253
+ 160: <span class="ruby-comment cmt"># has no terminal token.</span>
1254
+ 161: <span class="ruby-identifier">tts</span> = []
1255
+ 162: <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">tts</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">terminalTokens</span>(<span class="ruby-identifier">rules</span>, <span class="ruby-value">0</span>) }
1256
+ 163: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tts</span>
1257
+ 164: <span class="ruby-keyword kw">else</span>
1258
+ 165: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unexpected token #{tokens[index]}&quot;</span>
1259
+ 166: <span class="ruby-keyword kw">end</span>
1260
+ 167: <span class="ruby-keyword kw">end</span></pre>
1251
1261
  </div>
1252
1262
 
1253
1263
  </div>
@@ -1278,10 +1288,10 @@ The return value is either nil or a [ token, pattern ] tuple.
1278
1288
  <div class="method-source-code"
1279
1289
  id="to-s-source">
1280
1290
  <pre>
1281
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 247</span>
1282
- 247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1283
- 248: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
1284
- 249: <span class="ruby-keyword kw">end</span></pre>
1291
+ <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 251</span>
1292
+ 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1293
+ 252: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>)
1294
+ 253: <span class="ruby-keyword kw">end</span></pre>
1285
1295
  </div>
1286
1296
 
1287
1297
  </div>
@@ -1316,10 +1326,10 @@ the wrapper function that sets up the stack.
1316
1326
  <div class="method-source-code"
1317
1327
  id="to-syntax-source">
1318
1328
  <pre>
1319
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 168</span>
1320
- 168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span> = <span class="ruby-value">0</span>)
1321
- 169: <span class="ruby-identifier">to_syntax_r</span>({}, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1322
- 170: <span class="ruby-keyword kw">end</span></pre>
1329
+ <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 172</span>
1330
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span> = <span class="ruby-value">0</span>)
1331
+ 173: <span class="ruby-identifier">to_syntax_r</span>({}, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1332
+ 174: <span class="ruby-keyword kw">end</span></pre>
1323
1333
  </div>
1324
1334
 
1325
1335
  </div>
@@ -1350,81 +1360,81 @@ the wrapper function that sets up the stack.
1350
1360
  <div class="method-source-code"
1351
1361
  id="to-syntax-r-source">
1352
1362
  <pre>
1353
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 172</span>
1354
- 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax_r</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1355
- 173: <span class="ruby-comment cmt"># If we find ourself on the stack we hit a recursive pattern. This is used</span>
1356
- 174: <span class="ruby-comment cmt"># in repetitions.</span>
1357
- 175: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>]
1358
- 176: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'[, ... ]'</span>
1359
- 177: <span class="ruby-keyword kw">end</span>
1360
- 178:
1361
- 179: <span class="ruby-comment cmt"># &quot;Push&quot; us on the stack.</span>
1362
- 180: <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-keyword kw">true</span>
1363
- 181:
1364
- 182: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
1365
- 183: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1366
- 184: <span class="ruby-comment cmt"># Analyze the tokens of the pattern skipping the first 'skip' tokens.</span>
1367
- 185: <span class="ruby-identifier">skip</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-ivar">@lastSyntaxToken</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1368
- 186: <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>]
1369
- 187: <span class="ruby-comment cmt"># If the first token is a _{ the pattern describes optional attributes.</span>
1370
- 188: <span class="ruby-comment cmt"># They are represented by a standard idiom.</span>
1371
- 189: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1372
- 190: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1373
- 191: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'{ &lt;attributes&gt; }'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'_{'</span>
1374
- 192: <span class="ruby-keyword kw">else</span>
1375
- 193: <span class="ruby-comment cmt"># Separate the syntax elemens by a whitespace.</span>
1376
- 194: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span>
1377
- 195: <span class="ruby-keyword kw">end</span>
1378
- 196:
1379
- 197: <span class="ruby-identifier">typeId</span> = <span class="ruby-identifier">token</span>[<span class="ruby-value">0</span>]
1380
- 198: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">token</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">token</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
1381
- 199:
1382
- 200: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>]
1383
- 201: <span class="ruby-comment cmt"># The argument is documented in the syntax definition. We copy the</span>
1384
- 202: <span class="ruby-comment cmt"># entry as we need to modify it.</span>
1385
- 203: <span class="ruby-identifier">argDoc</span> = <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">dup</span>
1386
- 204:
1387
- 205: <span class="ruby-comment cmt"># A documented argument without a name is a terminal token. We use the</span>
1388
- 206: <span class="ruby-comment cmt"># terminal symbol as name.</span>
1389
- 207: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1390
- 208: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{token}&quot;</span>
1391
- 209: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">token</span>
1392
- 210: <span class="ruby-keyword kw">else</span>
1393
- 211: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{@args[i].name}&gt;&quot;</span>
1394
- 212: <span class="ruby-keyword kw">end</span>
1395
- 213: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1396
- 214:
1397
- 215: <span class="ruby-comment cmt"># Documented arguments don't have the type set yet. Use the token</span>
1398
- 216: <span class="ruby-comment cmt"># value for that.</span>
1399
- 217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">typeId</span> <span class="ruby-operator">==</span> <span class="ruby-value">$$</span>
1400
- 218: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-node">&quot;&lt;#{token}&gt;&quot;</span>
1401
- 219: <span class="ruby-keyword kw">end</span>
1402
- 220: <span class="ruby-keyword kw">else</span>
1403
- 221: <span class="ruby-comment cmt"># Undocumented tokens are recursively expanded.</span>
1404
- 222: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">typeId</span>
1405
- 223: <span class="ruby-keyword kw">when</span> <span class="ruby-value">__</span>
1406
- 224: <span class="ruby-comment cmt"># Literals are shown as such.</span>
1407
- 225: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">token</span>
1408
- 226: <span class="ruby-keyword kw">when</span> <span class="ruby-value">$$</span>
1409
- 227: <span class="ruby-comment cmt"># Variables are enclosed by angle brackets.</span>
1410
- 228: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">token</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>
1411
- 229: <span class="ruby-keyword kw">when</span> <span class="ruby-value">!!</span>
1412
- 230: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span>
1413
- 231: <span class="ruby-operator">!</span><span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">doc</span>.<span class="ruby-identifier">nil?</span>
1414
- 232: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span>,
1415
- 233: <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>]))
1416
- 234: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>
1417
- 235: <span class="ruby-keyword kw">else</span>
1418
- 236: <span class="ruby-comment cmt"># References are followed recursively.</span>
1419
- 237: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-value">0</span>)
1420
- 238: <span class="ruby-keyword kw">end</span>
1421
- 239: <span class="ruby-keyword kw">end</span>
1422
- 240: <span class="ruby-keyword kw">end</span>
1423
- 241: <span class="ruby-keyword kw">end</span>
1424
- 242: <span class="ruby-comment cmt"># Remove us from the &quot;stack&quot; again.</span>
1425
- 243: <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-keyword kw">self</span>)
1426
- 244: <span class="ruby-identifier">str</span>
1427
- 245: <span class="ruby-keyword kw">end</span></pre>
1363
+ <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 176</span>
1364
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax_r</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1365
+ 177: <span class="ruby-comment cmt"># If we find ourself on the stack we hit a recursive pattern. This is used</span>
1366
+ 178: <span class="ruby-comment cmt"># in repetitions.</span>
1367
+ 179: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>]
1368
+ 180: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'[, ... ]'</span>
1369
+ 181: <span class="ruby-keyword kw">end</span>
1370
+ 182:
1371
+ 183: <span class="ruby-comment cmt"># &quot;Push&quot; us on the stack.</span>
1372
+ 184: <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-keyword kw">true</span>
1373
+ 185:
1374
+ 186: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
1375
+ 187: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1376
+ 188: <span class="ruby-comment cmt"># Analyze the tokens of the pattern skipping the first 'skip' tokens.</span>
1377
+ 189: <span class="ruby-identifier">skip</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-ivar">@lastSyntaxToken</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1378
+ 190: <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>]
1379
+ 191: <span class="ruby-comment cmt"># If the first token is a _{ the pattern describes optional attributes.</span>
1380
+ 192: <span class="ruby-comment cmt"># They are represented by a standard idiom.</span>
1381
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1382
+ 194: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1383
+ 195: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'{ &lt;attributes&gt; }'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'_{'</span>
1384
+ 196: <span class="ruby-keyword kw">else</span>
1385
+ 197: <span class="ruby-comment cmt"># Separate the syntax elemens by a whitespace.</span>
1386
+ 198: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span>
1387
+ 199: <span class="ruby-keyword kw">end</span>
1388
+ 200:
1389
+ 201: <span class="ruby-identifier">typeId</span> = <span class="ruby-identifier">token</span>[<span class="ruby-value">0</span>]
1390
+ 202: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">token</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">token</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
1391
+ 203:
1392
+ 204: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>]
1393
+ 205: <span class="ruby-comment cmt"># The argument is documented in the syntax definition. We copy the</span>
1394
+ 206: <span class="ruby-comment cmt"># entry as we need to modify it.</span>
1395
+ 207: <span class="ruby-identifier">argDoc</span> = <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">dup</span>
1396
+ 208:
1397
+ 209: <span class="ruby-comment cmt"># A documented argument without a name is a terminal token. We use the</span>
1398
+ 210: <span class="ruby-comment cmt"># terminal symbol as name.</span>
1399
+ 211: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1400
+ 212: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{token}&quot;</span>
1401
+ 213: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">token</span>
1402
+ 214: <span class="ruby-keyword kw">else</span>
1403
+ 215: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{@args[i].name}&gt;&quot;</span>
1404
+ 216: <span class="ruby-keyword kw">end</span>
1405
+ 217: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1406
+ 218:
1407
+ 219: <span class="ruby-comment cmt"># Documented arguments don't have the type set yet. Use the token</span>
1408
+ 220: <span class="ruby-comment cmt"># value for that.</span>
1409
+ 221: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">typeId</span> <span class="ruby-operator">==</span> <span class="ruby-value">$$</span>
1410
+ 222: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-node">&quot;&lt;#{token}&gt;&quot;</span>
1411
+ 223: <span class="ruby-keyword kw">end</span>
1412
+ 224: <span class="ruby-keyword kw">else</span>
1413
+ 225: <span class="ruby-comment cmt"># Undocumented tokens are recursively expanded.</span>
1414
+ 226: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">typeId</span>
1415
+ 227: <span class="ruby-keyword kw">when</span> <span class="ruby-value">__</span>
1416
+ 228: <span class="ruby-comment cmt"># Literals are shown as such.</span>
1417
+ 229: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">token</span>
1418
+ 230: <span class="ruby-keyword kw">when</span> <span class="ruby-value">$$</span>
1419
+ 231: <span class="ruby-comment cmt"># Variables are enclosed by angle brackets.</span>
1420
+ 232: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">token</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>
1421
+ 233: <span class="ruby-keyword kw">when</span> <span class="ruby-value">!!</span>
1422
+ 234: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span>
1423
+ 235: <span class="ruby-operator">!</span><span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">doc</span>.<span class="ruby-identifier">nil?</span>
1424
+ 236: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span>,
1425
+ 237: <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>]))
1426
+ 238: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>
1427
+ 239: <span class="ruby-keyword kw">else</span>
1428
+ 240: <span class="ruby-comment cmt"># References are followed recursively.</span>
1429
+ 241: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">token</span>].<span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-value">0</span>)
1430
+ 242: <span class="ruby-keyword kw">end</span>
1431
+ 243: <span class="ruby-keyword kw">end</span>
1432
+ 244: <span class="ruby-keyword kw">end</span>
1433
+ 245: <span class="ruby-keyword kw">end</span>
1434
+ 246: <span class="ruby-comment cmt"># Remove us from the &quot;stack&quot; again.</span>
1435
+ 247: <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-keyword kw">self</span>)
1436
+ 248: <span class="ruby-identifier">str</span>
1437
+ 249: <span class="ruby-keyword kw">end</span></pre>
1428
1438
  </div>
1429
1439
 
1430
1440
  </div>
@@ -1461,14 +1471,14 @@ the wrapper function that sets up the stack.
1461
1471
  <div class="method-source-code"
1462
1472
  id="add-rg-oc-source">
1463
1473
  <pre>
1464
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 253</span>
1465
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1466
- 254: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Error'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1467
- 255: <span class="ruby-identifier">argDocs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
1468
- 256: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>
1469
- 257: <span class="ruby-keyword kw">end</span>
1470
- 258: <span class="ruby-identifier">argDocs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">argDoc</span>
1471
- 259: <span class="ruby-keyword kw">end</span></pre>
1474
+ <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 257</span>
1475
+ 257: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1476
+ 258: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Error'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1477
+ 259: <span class="ruby-identifier">argDocs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
1478
+ 260: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>
1479
+ 261: <span class="ruby-keyword kw">end</span>
1480
+ 262: <span class="ruby-identifier">argDocs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">argDoc</span>
1481
+ 263: <span class="ruby-keyword kw">end</span></pre>
1472
1482
  </div>
1473
1483
 
1474
1484
  </div>
@@ -189,6 +189,10 @@
189
189
 
190
190
  <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
191
191
 
192
+ <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
193
+
194
+ <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
195
+
192
196
  <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
193
197
 
194
198
  <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -261,8 +265,6 @@
261
265
 
262
266
  <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
263
267
 
264
- <li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
265
-
266
268
  <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
267
269
 
268
270
  <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -327,6 +329,8 @@
327
329
 
328
330
  <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
329
331
 
332
+ <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
333
+
330
334
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
331
335
 
332
336
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -373,8 +377,6 @@
373
377
 
374
378
  <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
375
379
 
376
- <li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
377
-
378
380
  <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
379
381
 
380
382
  <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -415,6 +417,8 @@
415
417
 
416
418
  <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
417
419
 
420
+ <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
421
+
418
422
  <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
419
423
 
420
424
  <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -525,6 +529,8 @@
525
529
 
526
530
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
527
531
 
532
+ <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
533
+
528
534
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
529
535
 
530
536
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -820,17 +826,22 @@ be of type <a href="Pattern.html">TextParser::Pattern</a>.
820
826
  156: <span class="ruby-node">&quot;#{@repeatable ? &quot;[repeatable]&quot; : &quot;&quot;}&quot;</span>
821
827
  157: <span class="ruby-ivar">@patterns</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
822
828
  158: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot; Pattern: \&quot;#{@patterns[i]}\&quot;&quot;</span>
823
- 159: <span class="ruby-ivar">@transitions</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
824
- 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">__</span>
825
- 161: <span class="ruby-identifier">token</span> = <span class="ruby-value str">&quot;\&quot;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\&quot;&quot;</span>
826
- 162: <span class="ruby-keyword kw">else</span>
827
- 163: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
828
- 164: <span class="ruby-keyword kw">end</span>
829
- 165: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot; #{token} -&gt; #{rule.name}&quot;</span>
830
- 166: <span class="ruby-keyword kw">end</span>
831
- 167: <span class="ruby-keyword kw">end</span>
832
- 168: <span class="ruby-identifier">puts</span>
833
- 169: <span class="ruby-keyword kw">end</span></pre>
829
+ 159: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@transitions</span>[<span class="ruby-identifier">i</span>]
830
+ 160: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;No transitions for this pattern!&quot;</span>
831
+ 161: <span class="ruby-keyword kw">next</span>
832
+ 162: <span class="ruby-keyword kw">end</span>
833
+ 163:
834
+ 164: <span class="ruby-ivar">@transitions</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
835
+ 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">__</span>
836
+ 166: <span class="ruby-identifier">token</span> = <span class="ruby-value str">&quot;\&quot;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\&quot;&quot;</span>
837
+ 167: <span class="ruby-keyword kw">else</span>
838
+ 168: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-value">1</span>, <span class="ruby-identifier">key</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
839
+ 169: <span class="ruby-keyword kw">end</span>
840
+ 170: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot; #{token} -&gt; #{rule.name}&quot;</span>
841
+ 171: <span class="ruby-keyword kw">end</span>
842
+ 172: <span class="ruby-keyword kw">end</span>
843
+ 173: <span class="ruby-identifier">puts</span>
844
+ 174: <span class="ruby-keyword kw">end</span></pre>
834
845
  </div>
835
846
 
836
847
  </div>
@@ -165,6 +165,10 @@
165
165
 
166
166
  <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
167
167
 
168
+ <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
169
+
170
+ <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
171
+
168
172
  <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
169
173
 
170
174
  <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -237,8 +241,6 @@
237
241
 
238
242
  <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
239
243
 
240
- <li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
241
-
242
244
  <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
243
245
 
244
246
  <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -303,6 +305,8 @@
303
305
 
304
306
  <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
307
 
308
+ <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
309
+
306
310
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
307
311
 
308
312
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -349,8 +353,6 @@
349
353
 
350
354
  <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
351
355
 
352
- <li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
353
-
354
356
  <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
355
357
 
356
358
  <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -391,6 +393,8 @@
391
393
 
392
394
  <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
393
395
 
396
+ <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
397
+
394
398
  <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
395
399
 
396
400
  <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -501,6 +505,8 @@
501
505
 
502
506
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
503
507
 
508
+ <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
509
+
504
510
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
511
 
506
512
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>