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
@@ -53,9 +53,9 @@
53
53
  <td>
54
54
 
55
55
 
56
- <a href="../../files/lib/TextParser_rb.html">
56
+ <a href="../../files/lib/TextParser/StackElement_rb.html">
57
57
 
58
- lib/TextParser.rb
58
+ lib/TextParser/StackElement.rb
59
59
 
60
60
  </a>
61
61
 
@@ -63,9 +63,9 @@
63
63
  <br />
64
64
 
65
65
 
66
- <a href="../../files/lib/TextParser/Pattern_rb.html">
66
+ <a href="../../files/lib/TextParser/TokenDoc_rb.html">
67
67
 
68
- lib/TextParser/Pattern.rb
68
+ lib/TextParser/TokenDoc.rb
69
69
 
70
70
  </a>
71
71
 
@@ -83,9 +83,9 @@
83
83
  <br />
84
84
 
85
85
 
86
- <a href="../../files/lib/TextParser/TokenDoc_rb.html">
86
+ <a href="../../files/lib/TextParser/Pattern_rb.html">
87
87
 
88
- lib/TextParser/TokenDoc.rb
88
+ lib/TextParser/Pattern.rb
89
89
 
90
90
  </a>
91
91
 
@@ -93,9 +93,9 @@
93
93
  <br />
94
94
 
95
95
 
96
- <a href="../../files/lib/TextParser/StackElement_rb.html">
96
+ <a href="../../files/lib/TextParser_rb.html">
97
97
 
98
- lib/TextParser/StackElement.rb
98
+ lib/TextParser.rb
99
99
 
100
100
  </a>
101
101
 
@@ -110,8 +110,12 @@
110
110
  <td><strong>Parent:</strong></td>
111
111
  <td>
112
112
 
113
+ <a href="../Object.html">
114
+
113
115
  Object
114
116
 
117
+ </a>
118
+
115
119
  </td>
116
120
  </tr>
117
121
 
@@ -125,16 +129,36 @@
125
129
 
126
130
  <div id="description">
127
131
  <p>
128
- encoding: UTF-8
132
+ The <a href="TextParser.html">TextParser</a> implements a regular LALR
133
+ parser. But it uses a recursive rule traversor instead of the more commonly
134
+ found state machine generated by yacc-like tools. Since stack depths is not
135
+ really an issue with a Ruby implementation this approach has one big
136
+ advantage. The syntax of the parser can be modified during parsing. This
137
+ allows support for languages that can extend themself. The <a
138
+ href="../TaskJuggler.html">TaskJuggler</a> syntax is such an beast.
139
+ Traditional yacc generated parsers would fail with such a syntax.
129
140
  </p>
130
- <h1>TextParser/StackElement.rb &#8212; The <a href="../TaskJuggler.html">TaskJuggler</a> III <a href="Project.html">Project</a> Management Software</h1>
131
141
  <p>
132
- Copyright &#169; 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
142
+ This class is just a base class. A complete parser would derive from this
143
+ class and implement the rule set and the functions _nextToken()_ and
144
+ _returnToken()_. It also needs to set the array <em>variables</em> to
145
+ declare all variables ($SOMENAME) that the scanner may deliver.
133
146
  </p>
134
147
  <p>
135
- This program is free software; you can redistribute it and/or modify it
136
- under the terms of version 2 of the GNU General Public License as published
137
- by the Free Software Foundation.
148
+ To describe the syntax the functions <a
149
+ href="TextParser.html#M000241">TextParser#pattern</a>, <a
150
+ href="TextParser.html#M000242">TextParser#optional</a> and <a
151
+ href="TextParser.html#M000243">TextParser#repeatable</a> can be used. When
152
+ the rule set is changed during parsing, <a
153
+ href="TextParser.html#M000244">TextParser#updateParserTables</a> must be
154
+ called to make the changes effective. The parser can also document the
155
+ syntax automatically. To document a pattern, the functions TextParser#doc,
156
+ TextParser#descr, TextParser#also and TextParser#arg can be used.
157
+ </p>
158
+ <p>
159
+ To start parsing the input the function <a
160
+ href="TextParser.html#M000245">TextParser#parse</a> needs to be called with
161
+ the name of the start rule.
138
162
  </p>
139
163
 
140
164
  </div>
@@ -147,27 +171,29 @@ by the Free Software Foundation.
147
171
 
148
172
  <div class="name-list">
149
173
 
150
- <a href="#M000459">error</a>&nbsp;&nbsp;
174
+ <a href="#M000248">error</a>&nbsp;&nbsp;
175
+
176
+ <a href="#M000239">initRules</a>&nbsp;&nbsp;
151
177
 
152
- <a href="#M000450">initRules</a>&nbsp;&nbsp;
178
+ <a href="#M000247">matchingRules</a>&nbsp;&nbsp;
153
179
 
154
- <a href="#M000458">matchingRules</a>&nbsp;&nbsp;
180
+ <a href="#M000238">new</a>&nbsp;&nbsp;
155
181
 
156
- <a href="#M000449">new</a>&nbsp;&nbsp;
182
+ <a href="#M000240">newRule</a>&nbsp;&nbsp;
157
183
 
158
- <a href="#M000451">newRule</a>&nbsp;&nbsp;
184
+ <a href="#M000242">optional</a>&nbsp;&nbsp;
159
185
 
160
- <a href="#M000453">optional</a>&nbsp;&nbsp;
186
+ <a href="#M000245">parse</a>&nbsp;&nbsp;
161
187
 
162
- <a href="#M000456">parse</a>&nbsp;&nbsp;
188
+ <a href="#M000241">pattern</a>&nbsp;&nbsp;
163
189
 
164
- <a href="#M000452">pattern</a>&nbsp;&nbsp;
190
+ <a href="#M000243">repeatable</a>&nbsp;&nbsp;
165
191
 
166
- <a href="#M000454">repeatable</a>&nbsp;&nbsp;
192
+ <a href="#M000246">sourceFileInfo</a>&nbsp;&nbsp;
167
193
 
168
- <a href="#M000457">sourceFileInfo</a>&nbsp;&nbsp;
194
+ <a href="#M000244">updateParserTables</a>&nbsp;&nbsp;
169
195
 
170
- <a href="#M000455">updateParserTables</a>&nbsp;&nbsp;
196
+ <a href="#M000249">warning</a>&nbsp;&nbsp;
171
197
 
172
198
  </div>
173
199
  </div>
@@ -217,12 +243,12 @@ Class <a href="TextParser/TokenDoc.html" class="link">TaskJuggler::TextParser::T
217
243
  <h3 class="section-bar">Public Class methods</h3>
218
244
 
219
245
 
220
- <div id="method-M000449" class="method-detail">
221
- <a name="M000449"></a>
246
+ <div id="method-M000238" class="method-detail">
247
+ <a name="M000238"></a>
222
248
 
223
249
  <div class="method-heading">
224
250
 
225
- <a href="#M000449" class="method-signature">
251
+ <a href="#M000238" class="method-signature">
226
252
 
227
253
  <span class="method-name">new</span><span class="method-args">()</span>
228
254
 
@@ -237,8 +263,8 @@ Create a new <a href="TextParser.html">TextParser</a> object.
237
263
  </p>
238
264
 
239
265
  <p><a class="source-toggle" href="#"
240
- onclick="toggleCode('M000449-source');return false;">[Source]</a></p>
241
- <div class="method-source-code" id="M000449-source">
266
+ onclick="toggleCode('M000238-source');return false;">[Source]</a></p>
267
+ <div class="method-source-code" id="M000238-source">
242
268
  <pre>
243
269
  <span class="ruby-comment cmt"># File lib/TextParser.rb, line 70</span>
244
270
  70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
@@ -260,12 +286,12 @@ Create a new <a href="TextParser.html">TextParser</a> object.
260
286
  <h3 class="section-bar">Public Instance methods</h3>
261
287
 
262
288
 
263
- <div id="method-M000459" class="method-detail">
264
- <a name="M000459"></a>
289
+ <div id="method-M000248" class="method-detail">
290
+ <a name="M000248"></a>
265
291
 
266
292
  <div class="method-heading">
267
293
 
268
- <a href="#M000459" class="method-signature">
294
+ <a href="#M000248" class="method-signature">
269
295
 
270
296
  <span class="method-name">error</span><span class="method-args">(id, text, property = nil)</span>
271
297
 
@@ -276,13 +302,13 @@ Create a new <a href="TextParser.html">TextParser</a> object.
276
302
  <div class="method-description">
277
303
 
278
304
  <p><a class="source-toggle" href="#"
279
- onclick="toggleCode('M000459-source');return false;">[Source]</a></p>
280
- <div class="method-source-code" id="M000459-source">
305
+ onclick="toggleCode('M000248-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M000248-source">
281
307
  <pre>
282
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 174</span>
283
- 174: <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">property</span> = <span class="ruby-keyword kw">nil</span>)
284
- 175: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
285
- 176: <span class="ruby-keyword kw">end</span>
308
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 181</span>
309
+ 181: <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">property</span> = <span class="ruby-keyword kw">nil</span>)
310
+ 182: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
311
+ 183: <span class="ruby-keyword kw">end</span>
286
312
  </pre>
287
313
  </div>
288
314
 
@@ -290,12 +316,12 @@ Create a new <a href="TextParser.html">TextParser</a> object.
290
316
  </div>
291
317
 
292
318
 
293
- <div id="method-M000450" class="method-detail">
294
- <a name="M000450"></a>
319
+ <div id="method-M000239" class="method-detail">
320
+ <a name="M000239"></a>
295
321
 
296
322
  <div class="method-heading">
297
323
 
298
- <a href="#M000450" class="method-signature">
324
+ <a href="#M000239" class="method-signature">
299
325
 
300
326
  <span class="method-name">initRules</span><span class="method-args">()</span>
301
327
 
@@ -311,8 +337,8 @@ rules.
311
337
  </p>
312
338
 
313
339
  <p><a class="source-toggle" href="#"
314
- onclick="toggleCode('M000450-source');return false;">[Source]</a></p>
315
- <div class="method-source-code" id="M000450-source">
340
+ onclick="toggleCode('M000239-source');return false;">[Source]</a></p>
341
+ <div class="method-source-code" id="M000239-source">
316
342
  <pre>
317
343
  <span class="ruby-comment cmt"># File lib/TextParser.rb, line 81</span>
318
344
  81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initRules</span>
@@ -332,12 +358,12 @@ rules.
332
358
  </div>
333
359
 
334
360
 
335
- <div id="method-M000458" class="method-detail">
336
- <a name="M000458"></a>
361
+ <div id="method-M000247" class="method-detail">
362
+ <a name="M000247"></a>
337
363
 
338
364
  <div class="method-heading">
339
365
 
340
- <a href="#M000458" class="method-signature">
366
+ <a href="#M000247" class="method-signature">
341
367
 
342
368
  <span class="method-name">matchingRules</span><span class="method-args">(keyword)</span>
343
369
 
@@ -348,18 +374,18 @@ rules.
348
374
  <div class="method-description">
349
375
 
350
376
  <p><a class="source-toggle" href="#"
351
- onclick="toggleCode('M000458-source');return false;">[Source]</a></p>
352
- <div class="method-source-code" id="M000458-source">
377
+ onclick="toggleCode('M000247-source');return false;">[Source]</a></p>
378
+ <div class="method-source-code" id="M000247-source">
353
379
  <pre>
354
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 165</span>
355
- 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matchingRules</span>(<span class="ruby-identifier">keyword</span>)
356
- 166: <span class="ruby-identifier">matches</span> = []
357
- 167: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
358
- 168: <span class="ruby-identifier">patIdx</span> = <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">matchingPatternIndex</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>)
359
- 169: <span class="ruby-identifier">matches</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">patIdx</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">patIdx</span>
360
- 170: <span class="ruby-keyword kw">end</span>
361
- 171: <span class="ruby-identifier">matches</span>
362
- 172: <span class="ruby-keyword kw">end</span>
380
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 172</span>
381
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matchingRules</span>(<span class="ruby-identifier">keyword</span>)
382
+ 173: <span class="ruby-identifier">matches</span> = []
383
+ 174: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
384
+ 175: <span class="ruby-identifier">patIdx</span> = <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">matchingPatternIndex</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>)
385
+ 176: <span class="ruby-identifier">matches</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">rule</span>, <span class="ruby-identifier">patIdx</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">patIdx</span>
386
+ 177: <span class="ruby-keyword kw">end</span>
387
+ 178: <span class="ruby-identifier">matches</span>
388
+ 179: <span class="ruby-keyword kw">end</span>
363
389
  </pre>
364
390
  </div>
365
391
 
@@ -367,14 +393,14 @@ rules.
367
393
  </div>
368
394
 
369
395
 
370
- <div id="method-M000451" class="method-detail">
371
- <a name="M000451"></a>
396
+ <div id="method-M000240" class="method-detail">
397
+ <a name="M000240"></a>
372
398
 
373
399
  <div class="method-heading">
374
400
 
375
- <a href="#M000451" class="method-signature">
401
+ <a href="#M000240" class="method-signature">
376
402
 
377
- <span class="method-name">newRule</span><span class="method-args">(name)</span>
403
+ <span class="method-name">newRule</span><span class="method-args">(name) {|| ...}</span>
378
404
 
379
405
  </a>
380
406
 
@@ -385,22 +411,29 @@ rules.
385
411
  <p>
386
412
  Add a new rule to the rule set. <em>name</em> must be a unique identifier.
387
413
  The function also sets the class variable @cr to the new rule. Subsequent
388
- calls to <a href="TextParser.html#M000452">TextParser#pattern</a>, <a
389
- href="TextParser.html#M000453">TextParser#optional</a> or <a
390
- href="TextParser.html#M000454">TextParser#repeatable</a> will then
414
+ calls to <a href="TextParser.html#M000241">TextParser#pattern</a>, <a
415
+ href="TextParser.html#M000242">TextParser#optional</a> or <a
416
+ href="TextParser.html#M000243">TextParser#repeatable</a> will then
391
417
  implicitely operate on the most recently added rule.
392
418
  </p>
393
419
 
394
420
  <p><a class="source-toggle" href="#"
395
- onclick="toggleCode('M000451-source');return false;">[Source]</a></p>
396
- <div class="method-source-code" id="M000451-source">
421
+ onclick="toggleCode('M000240-source');return false;">[Source]</a></p>
422
+ <div class="method-source-code" id="M000240-source">
397
423
  <pre>
398
424
  <span class="ruby-comment cmt"># File lib/TextParser.rb, line 97</span>
399
425
  97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>)
400
426
  98: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: Rule #{name} already exists&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>)
401
427
  99:
402
- 100: <span class="ruby-ivar">@rules</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-ivar">@cr</span> = <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">Rule</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
403
- 101: <span class="ruby-keyword kw">end</span>
428
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
429
+ 101: <span class="ruby-identifier">saveCr</span> = <span class="ruby-ivar">@cr</span>
430
+ 102: <span class="ruby-ivar">@rules</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-ivar">@cr</span> = <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">Rule</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
431
+ 103: <span class="ruby-keyword kw">yield</span>
432
+ 104: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">saveCr</span>
433
+ 105: <span class="ruby-keyword kw">else</span>
434
+ 106: <span class="ruby-ivar">@rules</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-ivar">@cr</span> = <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">Rule</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
435
+ 107: <span class="ruby-keyword kw">end</span>
436
+ 108: <span class="ruby-keyword kw">end</span>
404
437
  </pre>
405
438
  </div>
406
439
 
@@ -408,12 +441,12 @@ implicitely operate on the most recently added rule.
408
441
  </div>
409
442
 
410
443
 
411
- <div id="method-M000453" class="method-detail">
412
- <a name="M000453"></a>
444
+ <div id="method-M000242" class="method-detail">
445
+ <a name="M000242"></a>
413
446
 
414
447
  <div class="method-heading">
415
448
 
416
- <a href="#M000453" class="method-signature">
449
+ <a href="#M000242" class="method-signature">
417
450
 
418
451
  <span class="method-name">optional</span><span class="method-args">()</span>
419
452
 
@@ -429,13 +462,13 @@ elements.
429
462
  </p>
430
463
 
431
464
  <p><a class="source-toggle" href="#"
432
- onclick="toggleCode('M000453-source');return false;">[Source]</a></p>
433
- <div class="method-source-code" id="M000453-source">
465
+ onclick="toggleCode('M000242-source');return false;">[Source]</a></p>
466
+ <div class="method-source-code" id="M000242-source">
434
467
  <pre>
435
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 120</span>
436
- 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optional</span>
437
- 121: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setOptional</span>
438
- 122: <span class="ruby-keyword kw">end</span>
468
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 127</span>
469
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optional</span>
470
+ 128: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setOptional</span>
471
+ 129: <span class="ruby-keyword kw">end</span>
439
472
  </pre>
440
473
  </div>
441
474
 
@@ -443,14 +476,14 @@ elements.
443
476
  </div>
444
477
 
445
478
 
446
- <div id="method-M000456" class="method-detail">
447
- <a name="M000456"></a>
479
+ <div id="method-M000245" class="method-detail">
480
+ <a name="M000245"></a>
448
481
 
449
482
  <div class="method-heading">
450
483
 
451
- <a href="#M000456" class="method-signature">
484
+ <a href="#M000245" class="method-signature">
452
485
 
453
- <span class="method-name">parse</span><span class="method-args">(ruleName, enforceEndOfFile = true)</span>
486
+ <span class="method-name">parse</span><span class="method-args">(ruleName)</span>
454
487
 
455
488
  </a>
456
489
 
@@ -465,23 +498,23 @@ top-level parser rule that was specified by <em>ruleName</em>.
465
498
  </p>
466
499
 
467
500
  <p><a class="source-toggle" href="#"
468
- onclick="toggleCode('M000456-source');return false;">[Source]</a></p>
469
- <div class="method-source-code" id="M000456-source">
501
+ onclick="toggleCode('M000245-source');return false;">[Source]</a></p>
502
+ <div class="method-source-code" id="M000245-source">
470
503
  <pre>
471
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 143</span>
472
- 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">ruleName</span>, <span class="ruby-identifier">enforceEndOfFile</span> = <span class="ruby-keyword kw">true</span>)
473
- 144: <span class="ruby-ivar">@stack</span> = []
474
- 145: <span class="ruby-ivar">@@expectedTokens</span> = []
475
- 146: <span class="ruby-identifier">updateParserTables</span>
476
- 147: <span class="ruby-keyword kw">begin</span>
477
- 148: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">parseRule</span>(<span class="ruby-ivar">@rules</span>[<span class="ruby-identifier">ruleName</span>])
478
- 149: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
479
- 150: <span class="ruby-comment cmt"># error('parse_error', $!.message)</span>
480
- 151: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
481
- 152: <span class="ruby-keyword kw">end</span>
482
- 153:
483
- 154: <span class="ruby-identifier">result</span>
484
- 155: <span class="ruby-keyword kw">end</span>
504
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 150</span>
505
+ 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">ruleName</span>)
506
+ 151: <span class="ruby-ivar">@stack</span> = []
507
+ 152: <span class="ruby-ivar">@@expectedTokens</span> = []
508
+ 153: <span class="ruby-identifier">updateParserTables</span>
509
+ 154: <span class="ruby-keyword kw">begin</span>
510
+ 155: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">parseRule</span>(<span class="ruby-ivar">@rules</span>[<span class="ruby-identifier">ruleName</span>])
511
+ 156: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TjException</span>
512
+ 157: <span class="ruby-comment cmt"># error('parse_error', $!.message)</span>
513
+ 158: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
514
+ 159: <span class="ruby-keyword kw">end</span>
515
+ 160:
516
+ 161: <span class="ruby-identifier">result</span>
517
+ 162: <span class="ruby-keyword kw">end</span>
485
518
  </pre>
486
519
  </div>
487
520
 
@@ -489,12 +522,12 @@ top-level parser rule that was specified by <em>ruleName</em>.
489
522
  </div>
490
523
 
491
524
 
492
- <div id="method-M000452" class="method-detail">
493
- <a name="M000452"></a>
525
+ <div id="method-M000241" class="method-detail">
526
+ <a name="M000241"></a>
494
527
 
495
528
  <div class="method-heading">
496
529
 
497
- <a href="#M000452" class="method-signature">
530
+ <a href="#M000241" class="method-signature">
498
531
 
499
532
  <span class="method-name">pattern</span><span class="method-args">(tokens, func = nil)</span>
500
533
 
@@ -527,13 +560,13 @@ completed the processing of this rule.
527
560
  </p>
528
561
 
529
562
  <p><a class="source-toggle" href="#"
530
- onclick="toggleCode('M000452-source');return false;">[Source]</a></p>
531
- <div class="method-source-code" id="M000452-source">
563
+ onclick="toggleCode('M000241-source');return false;">[Source]</a></p>
564
+ <div class="method-source-code" id="M000241-source">
532
565
  <pre>
533
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 114</span>
534
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pattern</span>(<span class="ruby-identifier">tokens</span>, <span class="ruby-identifier">func</span> = <span class="ruby-keyword kw">nil</span>)
535
- 115: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">addPattern</span>(<span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">Pattern</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tokens</span>, <span class="ruby-identifier">func</span>))
536
- 116: <span class="ruby-keyword kw">end</span>
566
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 121</span>
567
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pattern</span>(<span class="ruby-identifier">tokens</span>, <span class="ruby-identifier">func</span> = <span class="ruby-keyword kw">nil</span>)
568
+ 122: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">addPattern</span>(<span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">Pattern</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">tokens</span>, <span class="ruby-identifier">func</span>))
569
+ 123: <span class="ruby-keyword kw">end</span>
537
570
  </pre>
538
571
  </div>
539
572
 
@@ -541,12 +574,12 @@ completed the processing of this rule.
541
574
  </div>
542
575
 
543
576
 
544
- <div id="method-M000454" class="method-detail">
545
- <a name="M000454"></a>
577
+ <div id="method-M000243" class="method-detail">
578
+ <a name="M000243"></a>
546
579
 
547
580
  <div class="method-heading">
548
581
 
549
- <a href="#M000454" class="method-signature">
582
+ <a href="#M000243" class="method-signature">
550
583
 
551
584
  <span class="method-name">repeatable</span><span class="method-args">()</span>
552
585
 
@@ -562,13 +595,13 @@ elements.
562
595
  </p>
563
596
 
564
597
  <p><a class="source-toggle" href="#"
565
- onclick="toggleCode('M000454-source');return false;">[Source]</a></p>
566
- <div class="method-source-code" id="M000454-source">
598
+ onclick="toggleCode('M000243-source');return false;">[Source]</a></p>
599
+ <div class="method-source-code" id="M000243-source">
567
600
  <pre>
568
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 126</span>
569
- 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">repeatable</span>
570
- 127: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setRepeatable</span>
571
- 128: <span class="ruby-keyword kw">end</span>
601
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 133</span>
602
+ 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">repeatable</span>
603
+ 134: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setRepeatable</span>
604
+ 135: <span class="ruby-keyword kw">end</span>
572
605
  </pre>
573
606
  </div>
574
607
 
@@ -576,12 +609,12 @@ elements.
576
609
  </div>
577
610
 
578
611
 
579
- <div id="method-M000457" class="method-detail">
580
- <a name="M000457"></a>
612
+ <div id="method-M000246" class="method-detail">
613
+ <a name="M000246"></a>
581
614
 
582
615
  <div class="method-heading">
583
616
 
584
- <a href="#M000457" class="method-signature">
617
+ <a href="#M000246" class="method-signature">
585
618
 
586
619
  <span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
587
620
 
@@ -599,14 +632,14 @@ nil if we don&#8217;t have a current position.
599
632
  </p>
600
633
 
601
634
  <p><a class="source-toggle" href="#"
602
- onclick="toggleCode('M000457-source');return false;">[Source]</a></p>
603
- <div class="method-source-code" id="M000457-source">
635
+ onclick="toggleCode('M000246-source');return false;">[Source]</a></p>
636
+ <div class="method-source-code" id="M000246-source">
604
637
  <pre>
605
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 160</span>
606
- 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
607
- 161: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">empty?</span>
608
- 162: <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">sourceFileInfo</span>
609
- 163: <span class="ruby-keyword kw">end</span>
638
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 167</span>
639
+ 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
640
+ 168: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">empty?</span>
641
+ 169: <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">sourceFileInfo</span>
642
+ 170: <span class="ruby-keyword kw">end</span>
610
643
  </pre>
611
644
  </div>
612
645
 
@@ -614,12 +647,12 @@ nil if we don&#8217;t have a current position.
614
647
  </div>
615
648
 
616
649
 
617
- <div id="method-M000455" class="method-detail">
618
- <a name="M000455"></a>
650
+ <div id="method-M000244" class="method-detail">
651
+ <a name="M000244"></a>
619
652
 
620
653
  <div class="method-heading">
621
654
 
622
- <a href="#M000455" class="method-signature">
655
+ <a href="#M000244" class="method-signature">
623
656
 
624
657
  <span class="method-name">updateParserTables</span><span class="method-args">()</span>
625
658
 
@@ -632,21 +665,51 @@ nil if we don&#8217;t have a current position.
632
665
  <p>
633
666
  This function needs to be called whenever new rules or patterns have been
634
667
  added and before the next call to <a
635
- href="TextParser.html#M000456">TextParser#parse</a>.
668
+ href="TextParser.html#M000245">TextParser#parse</a>.
636
669
  </p>
637
670
 
638
671
  <p><a class="source-toggle" href="#"
639
- onclick="toggleCode('M000455-source');return false;">[Source]</a></p>
640
- <div class="method-source-code" id="M000455-source">
672
+ onclick="toggleCode('M000244-source');return false;">[Source]</a></p>
673
+ <div class="method-source-code" id="M000244-source">
674
+ <pre>
675
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 139</span>
676
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updateParserTables</span>
677
+ 140: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">transitions</span> = {} }
678
+ 141: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
679
+ 142: <span class="ruby-identifier">getTransitions</span>(<span class="ruby-identifier">rule</span>)
680
+ 143: <span class="ruby-identifier">checkRule</span>(<span class="ruby-identifier">rule</span>)
681
+ 144: <span class="ruby-keyword kw">end</span>
682
+ 145: <span class="ruby-keyword kw">end</span>
683
+ </pre>
684
+ </div>
685
+
686
+ </div>
687
+ </div>
688
+
689
+
690
+ <div id="method-M000249" class="method-detail">
691
+ <a name="M000249"></a>
692
+
693
+ <div class="method-heading">
694
+
695
+ <a href="#M000249" class="method-signature">
696
+
697
+ <span class="method-name">warning</span><span class="method-args">(id, text, property = nil)</span>
698
+
699
+ </a>
700
+
701
+ </div>
702
+
703
+ <div class="method-description">
704
+
705
+ <p><a class="source-toggle" href="#"
706
+ onclick="toggleCode('M000249-source');return false;">[Source]</a></p>
707
+ <div class="method-source-code" id="M000249-source">
641
708
  <pre>
642
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 132</span>
643
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updateParserTables</span>
644
- 133: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span> <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">transitions</span> = {} }
645
- 134: <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rule</span><span class="ruby-operator">|</span>
646
- 135: <span class="ruby-identifier">getTransitions</span>(<span class="ruby-identifier">rule</span>)
647
- 136: <span class="ruby-identifier">checkRule</span>(<span class="ruby-identifier">rule</span>)
648
- 137: <span class="ruby-keyword kw">end</span>
649
- 138: <span class="ruby-keyword kw">end</span>
709
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 185</span>
710
+ 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
711
+ 186: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
712
+ 187: <span class="ruby-keyword kw">end</span>
650
713
  </pre>
651
714
  </div>
652
715