taskjuggler 0.0.5 → 0.0.6

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 (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -69,9 +69,23 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#M001113">::new</a></li>
72
+ <li><a href="#method-c-new">::new</a></li>
73
73
 
74
- <li><a href="#M001114">#dirname</a></li>
74
+ <li><a href="#method-i-close">#close</a></li>
75
+
76
+ <li><a href="#method-i-dirname">#dirname</a></li>
77
+
78
+ <li><a href="#method-i-eof%3F">#eof?</a></li>
79
+
80
+ <li><a href="#method-i-injectMacro">#injectMacro</a></li>
81
+
82
+ <li><a href="#method-i-line">#line</a></li>
83
+
84
+ <li><a href="#method-i-lineNo">#lineNo</a></li>
85
+
86
+ <li><a href="#method-i-peek">#peek</a></li>
87
+
88
+ <li><a href="#method-i-scan">#scan</a></li>
75
89
 
76
90
  </ul>
77
91
  </div>
@@ -88,6 +102,8 @@
88
102
  <h3 class="section-header">Files</h3>
89
103
  <ul>
90
104
 
105
+ <li class="file"><a href="../../CHANGELOG.html">CHANGELOG</a></li>
106
+
91
107
  <li class="file"><a href="../../COPYING.html">COPYING</a></li>
92
108
 
93
109
  <li class="file"><a href="../../README.html">README</a></li>
@@ -257,6 +273,8 @@
257
273
 
258
274
  <li><a href="../../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
259
275
 
276
+ <li><a href="../../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
277
+
260
278
  <li><a href="../../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
261
279
 
262
280
  <li><a href="../../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
@@ -271,6 +289,8 @@
271
289
 
272
290
  <li><a href="../../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
273
291
 
292
+ <li><a href="../../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
293
+
274
294
  <li><a href="../../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
275
295
 
276
296
  <li><a href="../../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
@@ -287,12 +307,16 @@
287
307
 
288
308
  <li><a href="../../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
289
309
 
310
+ <li><a href="../../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
311
+
290
312
  <li><a href="../../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
291
313
 
292
314
  <li><a href="../../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
293
315
 
294
316
  <li><a href="../../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
295
317
 
318
+ <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
319
+
296
320
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
297
321
 
298
322
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -311,6 +335,8 @@
311
335
 
312
336
  <li><a href="../../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
313
337
 
338
+ <li><a href="../../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
339
+
314
340
  <li><a href="../../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
315
341
 
316
342
  <li><a href="../../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
@@ -439,6 +465,8 @@
439
465
 
440
466
  <li><a href="../../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
441
467
 
468
+ <li><a href="../../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
469
+
442
470
  <li><a href="../../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
443
471
 
444
472
  <li><a href="../../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
@@ -483,8 +511,12 @@
483
511
 
484
512
  <li><a href="../../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
485
513
 
514
+ <li><a href="../../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
515
+
486
516
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
487
517
 
518
+ <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
519
+
488
520
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
489
521
 
490
522
  <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -511,6 +543,8 @@
511
543
 
512
544
  <li><a href="../../String.html">String</a></li>
513
545
 
546
+ <li><a href="../../StringIO.html">StringIO</a></li>
547
+
514
548
  </ul>
515
549
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
516
550
  </div>
@@ -544,14 +578,12 @@ completely processed.
544
578
  <h3 class="section-header">Attributes</h3>
545
579
 
546
580
 
547
- <div id="line-o-attribute-method" class="method-detail">
548
- <a name="lineNo"></a>
549
-
550
- <a name="lineNo="></a>
581
+ <div id="file-ame-attribute-method" class="method-detail">
582
+ <a name="fileName"></a>
551
583
 
552
584
  <div class="method-heading attribute-method-heading">
553
- <span class="method-name">lineNo</span><span
554
- class="attribute-access-type">[RW]</span>
585
+ <span class="method-name">fileName</span><span
586
+ class="attribute-access-type">[R]</span>
555
587
  </div>
556
588
 
557
589
  <div class="method-description">
@@ -561,14 +593,12 @@ completely processed.
561
593
  </div>
562
594
  </div>
563
595
 
564
- <div id="column-o-attribute-method" class="method-detail">
565
- <a name="columnNo"></a>
566
-
567
- <a name="columnNo="></a>
596
+ <div id="macro-tack-attribute-method" class="method-detail">
597
+ <a name="macroStack"></a>
568
598
 
569
599
  <div class="method-heading attribute-method-heading">
570
- <span class="method-name">columnNo</span><span
571
- class="attribute-access-type">[RW]</span>
600
+ <span class="method-name">macroStack</span><span
601
+ class="attribute-access-type">[R]</span>
572
602
  </div>
573
603
 
574
604
  <div class="method-description">
@@ -578,70 +608,252 @@ completely processed.
578
608
  </div>
579
609
  </div>
580
610
 
581
- <div id="line-attribute-method" class="method-detail">
582
- <a name="line"></a>
611
+ </div>
612
+
613
+
614
+ <!-- Methods -->
615
+
616
+ <div id="public-class-method-details" class="method-section section">
617
+ <h3 class="section-header">Public Class Methods</h3>
618
+
619
+
620
+ <div id="new-method" class="method-detail ">
621
+ <a name="method-c-new"></a>
622
+
623
+ <div class="method-heading">
583
624
 
584
- <a name="line="></a>
625
+ <span class="method-name">new</span><span
626
+ class="method-args">()</span>
627
+ <span class="method-click-advice">click to toggle source</span>
585
628
 
586
- <div class="method-heading attribute-method-heading">
587
- <span class="method-name">line</span><span
588
- class="attribute-access-type">[RW]</span>
589
629
  </div>
590
630
 
591
631
  <div class="method-description">
632
+
633
+
634
+
635
+
636
+
637
+ <div class="method-source-code"
638
+ id="new-source">
639
+ <pre>
640
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 57</span>
641
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
642
+ 58: <span class="ruby-ivar">@fileName</span> = <span class="ruby-keyword kw">nil</span>
643
+ 59: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
644
+ 60: <span class="ruby-ivar">@line</span> = <span class="ruby-keyword kw">nil</span>
645
+ 61: <span class="ruby-ivar">@pos</span> = <span class="ruby-value">0</span>
646
+ 62: <span class="ruby-ivar">@endPos</span> = <span class="ruby-value">1</span>
647
+ 63: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
648
+ 64: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-keyword kw">false</span>
649
+ 65: <span class="ruby-ivar">@macroStack</span> = []
650
+ 66: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-keyword kw">nil</span>
651
+ 67: <span class="ruby-keyword kw">end</span></pre>
652
+ </div>
653
+
654
+ </div>
655
+
592
656
 
657
+
593
658
 
594
-
595
- </div>
596
659
  </div>
597
-
598
- <div id="char-uffer-attribute-method" class="method-detail">
599
- <a name="charBuffer"></a>
660
+
661
+
662
+ </div>
663
+
664
+ <div id="public-instance-method-details" class="method-section section">
665
+ <h3 class="section-header">Public Instance Methods</h3>
666
+
667
+
668
+ <div id="close-method" class="method-detail ">
669
+ <a name="method-i-close"></a>
670
+
671
+ <div class="method-heading">
600
672
 
601
- <a name="charBuffer="></a>
673
+ <span class="method-name">close</span><span
674
+ class="method-args">()</span>
675
+ <span class="method-click-advice">click to toggle source</span>
602
676
 
603
- <div class="method-heading attribute-method-heading">
604
- <span class="method-name">charBuffer</span><span
605
- class="attribute-access-type">[RW]</span>
606
677
  </div>
607
678
 
608
679
  <div class="method-description">
680
+
681
+
682
+
683
+
684
+
685
+ <div class="method-source-code"
686
+ id="close-source">
687
+ <pre>
688
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 69</span>
689
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
690
+ 70: <span class="ruby-ivar">@stream</span> = <span class="ruby-keyword kw">nil</span>
691
+ 71: <span class="ruby-keyword kw">end</span></pre>
692
+ </div>
693
+
694
+ </div>
695
+
609
696
 
697
+
698
+
699
+ </div>
700
+
701
+
702
+ <div id="dirname-method" class="method-detail ">
703
+ <a name="method-i-dirname"></a>
704
+
705
+ <div class="method-heading">
610
706
 
707
+ <span class="method-name">dirname</span><span
708
+ class="method-args">()</span>
709
+ <span class="method-click-advice">click to toggle source</span>
611
710
 
612
711
  </div>
712
+
713
+ <div class="method-description">
714
+
715
+
716
+
717
+
718
+
719
+ <div class="method-source-code"
720
+ id="dirname-source">
721
+ <pre>
722
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 130</span>
723
+ 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
724
+ 131: <span class="ruby-ivar">@fileName</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@fileName</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
725
+ 132: <span class="ruby-keyword kw">end</span></pre>
726
+ </div>
727
+
728
+ </div>
729
+
730
+
731
+
732
+
613
733
  </div>
614
-
615
- <div id="file-ame-attribute-method" class="method-detail">
616
- <a name="fileName"></a>
734
+
735
+
736
+ <div id="eof--method" class="method-detail ">
737
+ <a name="method-i-eof%3F"></a>
738
+
739
+ <div class="method-heading">
740
+
741
+ <span class="method-name">eof?</span><span
742
+ class="method-args">()</span>
743
+ <span class="method-click-advice">click to toggle source</span>
617
744
 
618
- <div class="method-heading attribute-method-heading">
619
- <span class="method-name">fileName</span><span
620
- class="attribute-access-type">[R]</span>
621
745
  </div>
622
746
 
623
747
  <div class="method-description">
748
+
749
+
750
+
751
+
752
+
753
+ <div class="method-source-code"
754
+ id="eof--source">
755
+ <pre>
756
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 126</span>
757
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eof?</span>
758
+ 127: <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">eof?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
759
+ 128: <span class="ruby-keyword kw">end</span></pre>
760
+ </div>
761
+
762
+ </div>
763
+
764
+
765
+
624
766
 
767
+ </div>
768
+
769
+
770
+ <div id="inject-acro-method" class="method-detail ">
771
+ <a name="method-i-injectMacro"></a>
772
+
773
+ <div class="method-heading">
625
774
 
775
+ <span class="method-name">injectMacro</span><span
776
+ class="method-args">(macro, args, text)</span>
777
+ <span class="method-click-advice">click to toggle source</span>
626
778
 
627
779
  </div>
780
+
781
+ <div class="method-description">
782
+
783
+
784
+
785
+
786
+
787
+ <div class="method-source-code"
788
+ id="inject-acro-source">
789
+ <pre>
790
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 73</span>
791
+ 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>)
792
+ 74: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">length</span>
793
+ 75: <span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-value">0</span>, <span class="ruby-ivar">@pos</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@line</span>[<span class="ruby-ivar">@pos</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
794
+ 76: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
795
+ 77: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-ivar">@pos</span>
796
+ 78:
797
+ 79: <span class="ruby-comment cmt"># Simple detection for recursive macro calls.</span>
798
+ 80: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>
799
+ 81:
800
+ 82: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">MacroStackEntry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">text</span>, <span class="ruby-ivar">@nextMacroEnd</span>)
801
+ 83: <span class="ruby-keyword kw">true</span>
802
+ 84: <span class="ruby-keyword kw">end</span></pre>
803
+ </div>
804
+
805
+ </div>
806
+
807
+
808
+
809
+
628
810
  </div>
629
-
630
- </div>
631
-
632
811
 
633
- <!-- Methods -->
634
812
 
635
- <div id="public-class-method-details" class="method-section section">
636
- <h3 class="section-header">Public Class Methods</h3>
813
+ <div id="line-method" class="method-detail ">
814
+ <a name="method-i-line"></a>
815
+
816
+ <div class="method-heading">
817
+
818
+ <span class="method-name">line</span><span
819
+ class="method-args">()</span>
820
+ <span class="method-click-advice">click to toggle source</span>
821
+
822
+ </div>
823
+
824
+ <div class="method-description">
825
+
826
+ <p>
827
+ Return the already processed part of the current line.
828
+ </p>
829
+
830
+
831
+
832
+ <div class="method-source-code"
833
+ id="line-source">
834
+ <pre>
835
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 145</span>
836
+ 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">line</span>
837
+ 146: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@line</span>
838
+ 147:
839
+ 148: <span class="ruby-ivar">@line</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
840
+ 149: <span class="ruby-keyword kw">end</span></pre>
841
+ </div>
842
+
843
+ </div>
844
+
845
+
846
+
847
+
848
+ </div>
637
849
 
638
850
 
639
- <div id="new-method" class="method-detail ">
640
- <a name="M001113"></a>
851
+ <div id="line-o-method" class="method-detail ">
852
+ <a name="method-i-lineNo"></a>
641
853
 
642
854
  <div class="method-heading">
643
855
 
644
- <span class="method-name">new</span><span
856
+ <span class="method-name">lineNo</span><span
645
857
  class="method-args">()</span>
646
858
  <span class="method-click-advice">click to toggle source</span>
647
859
 
@@ -649,21 +861,24 @@ completely processed.
649
861
 
650
862
  <div class="method-description">
651
863
 
652
-
864
+ <p>
865
+ Return the number of the currently processed line.
866
+ </p>
653
867
 
654
868
 
655
869
 
656
870
  <div class="method-source-code"
657
- id="new-source">
871
+ id="line-o-source">
658
872
  <pre>
659
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 38</span>
660
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
661
- 39: <span class="ruby-ivar">@lineNo</span> = <span class="ruby-value">1</span>
662
- 40: <span class="ruby-ivar">@columnNo</span> = <span class="ruby-value">1</span>
663
- 41: <span class="ruby-ivar">@line</span> = <span class="ruby-value str">&quot;&quot;</span>
664
- 42: <span class="ruby-ivar">@charBuffer</span> = []
665
- 43: <span class="ruby-ivar">@fileName</span> = <span class="ruby-keyword kw">nil</span>
666
- 44: <span class="ruby-keyword kw">end</span></pre>
873
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 135</span>
874
+ 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lineNo</span>
875
+ 136: <span class="ruby-comment cmt"># The IO object counts the lines for us by counting the gets() calls.</span>
876
+ 137: <span class="ruby-identifier">currentLine</span> = <span class="ruby-ivar">@stream</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> <span class="ruby-operator">:</span> <span class="ruby-value">1</span>
877
+ 138: <span class="ruby-comment cmt"># If we've just read the LF, we have to add 1. The LF can only be the</span>
878
+ 139: <span class="ruby-comment cmt"># last character of the line.</span>
879
+ 140: <span class="ruby-identifier">currentLine</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@wrapped</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@line</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
880
+ 141: <span class="ruby-identifier">currentLine</span>
881
+ 142: <span class="ruby-keyword kw">end</span></pre>
667
882
  </div>
668
883
 
669
884
  </div>
@@ -674,19 +889,47 @@ completely processed.
674
889
  </div>
675
890
 
676
891
 
677
- </div>
678
-
679
- <div id="public-instance-method-details" class="method-section section">
680
- <h3 class="section-header">Public Instance Methods</h3>
892
+ <div id="peek-method" class="method-detail ">
893
+ <a name="method-i-peek"></a>
894
+
895
+ <div class="method-heading">
896
+
897
+ <span class="method-name">peek</span><span
898
+ class="method-args">(n)</span>
899
+ <span class="method-click-advice">click to toggle source</span>
900
+
901
+ </div>
902
+
903
+ <div class="method-description">
904
+
905
+
906
+
907
+
908
+
909
+ <div class="method-source-code"
910
+ id="peek-source">
911
+ <pre>
912
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 122</span>
913
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>)
914
+ 123: <span class="ruby-ivar">@scanner</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">peek</span>(<span class="ruby-identifier">n</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
915
+ 124: <span class="ruby-keyword kw">end</span></pre>
916
+ </div>
917
+
918
+ </div>
919
+
920
+
921
+
922
+
923
+ </div>
681
924
 
682
925
 
683
- <div id="dirname-method" class="method-detail ">
684
- <a name="M001114"></a>
926
+ <div id="scan-method" class="method-detail ">
927
+ <a name="method-i-scan"></a>
685
928
 
686
929
  <div class="method-heading">
687
930
 
688
- <span class="method-name">dirname</span><span
689
- class="method-args">()</span>
931
+ <span class="method-name">scan</span><span
932
+ class="method-args">(re)</span>
690
933
  <span class="method-click-advice">click to toggle source</span>
691
934
 
692
935
  </div>
@@ -698,12 +941,44 @@ completely processed.
698
941
 
699
942
 
700
943
  <div class="method-source-code"
701
- id="dirname-source">
944
+ id="scan-source">
702
945
  <pre>
703
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 46</span>
704
- 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirname</span>
705
- 47: <span class="ruby-ivar">@fileName</span> <span class="ruby-operator">?</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-ivar">@fileName</span>) <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>
706
- 48: <span class="ruby-keyword kw">end</span></pre>
946
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 86</span>
947
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)
948
+ 87: <span class="ruby-comment cmt"># We read the file line by line with gets(). If we don't have a line</span>
949
+ 88: <span class="ruby-comment cmt"># yet or we've reached the end of a line, we get the next one.</span>
950
+ 89: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">eos?</span>
951
+ 90: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">gets</span>)
952
+ 91: <span class="ruby-comment cmt"># Update activity meter about every 1024 lines.</span>
953
+ 92: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">activity</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@stream</span>.<span class="ruby-identifier">lineno</span> &amp; <span class="ruby-value">0x3FF</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
954
+ 93: <span class="ruby-comment cmt"># Check for DOS or Mac end of line signatures.</span>
955
+ 94: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
956
+ 95: <span class="ruby-comment cmt"># Mac: Convert CR into LF</span>
957
+ 96: <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] = <span class="ruby-value">\n\</span>
958
+ 97: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@line</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\r\</span>
959
+ 98: <span class="ruby-comment cmt"># DOS: Convert CR+LF into LF</span>
960
+ 99: <span class="ruby-ivar">@line</span> = <span class="ruby-ivar">@line</span>.<span class="ruby-identifier">chomp</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
961
+ 100: <span class="ruby-keyword kw">end</span>
962
+ 101: <span class="ruby-keyword kw">else</span>
963
+ 102: <span class="ruby-comment cmt"># We've reached the end of the current file.</span>
964
+ 103: <span class="ruby-ivar">@scanner</span> = <span class="ruby-keyword kw">nil</span>
965
+ 104: <span class="ruby-comment cmt"># Return special EOF symbol.</span>
966
+ 105: <span class="ruby-keyword kw">return</span> <span class="ruby-value">:scannerEOF</span>
967
+ 106: <span class="ruby-keyword kw">end</span>
968
+ 107: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@line</span>)
969
+ 108: <span class="ruby-ivar">@wrapped</span> = <span class="ruby-ivar">@line</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
970
+ 109: <span class="ruby-keyword kw">end</span>
971
+ 110: <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">token</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>)).<span class="ruby-identifier">nil?</span>
972
+ 111: <span class="ruby-comment cmt">#puts &quot;#{re.to_s[0..20]}: [#{token}]&quot;</span>
973
+ 112:
974
+ 113: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">pos</span>
975
+ 114: <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@nextMacroEnd</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@pos</span>
976
+ 115: <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
977
+ 116: <span class="ruby-ivar">@nextMacroEnd</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">endPos</span>
978
+ 117: <span class="ruby-keyword kw">end</span>
979
+ 118:
980
+ 119: <span class="ruby-identifier">token</span>
981
+ 120: <span class="ruby-keyword kw">end</span></pre>
707
982
  </div>
708
983
 
709
984
  </div>