taskjuggler 0.0.7 → 0.0.8

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 (415) hide show
  1. data/CHANGELOG +119 -0
  2. data/benchmarks/allocatedSlots.tjp +1602 -0
  3. data/benchmarks/booking.tjp +40 -30
  4. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
  5. data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
  6. data/benchmarks/gantt.tjp +57 -0
  7. data/benchmarks/htmltaskreport.tjp +26 -1
  8. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
  9. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
  10. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
  11. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
  12. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
  13. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
  14. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
  15. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
  16. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
  17. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
  18. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
  19. data/benchmarks/profile.clt +36082 -0
  20. data/benchmarks/profile.html +58182 -0
  21. data/benchmarks/runbench.rb +6 -0
  22. data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
  23. data/doc/AppConfig.html +85 -37
  24. data/doc/Arguments.html +11 -1
  25. data/doc/CHANGELOG.html +131 -2
  26. data/doc/COPYING.html +11 -1
  27. data/doc/Object.html +12 -3
  28. data/doc/README.html +11 -1
  29. data/doc/RuntimeConfig.html +11 -1
  30. data/doc/String.html +11 -1
  31. data/doc/StringIO.html +11 -1
  32. data/doc/TaskJuggler.html +250 -219
  33. data/doc/TaskJuggler/Account.html +11 -1
  34. data/doc/TaskJuggler/AccountAttribute.html +11 -1
  35. data/doc/TaskJuggler/AccountScenario.html +11 -1
  36. data/doc/TaskJuggler/Allocation.html +11 -1
  37. data/doc/TaskJuggler/AllocationAttribute.html +11 -1
  38. data/doc/TaskJuggler/AttributeBase.html +11 -1
  39. data/doc/TaskJuggler/AttributeDefinition.html +11 -1
  40. data/doc/TaskJuggler/BatchProcessor.html +11 -1
  41. data/doc/TaskJuggler/Booking.html +11 -1
  42. data/doc/TaskJuggler/BookingListAttribute.html +11 -1
  43. data/doc/TaskJuggler/BooleanAttribute.html +11 -1
  44. data/doc/TaskJuggler/CSVFile.html +12 -2
  45. data/doc/TaskJuggler/CellSettingPattern.html +11 -1
  46. data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
  47. data/doc/TaskJuggler/Charge.html +11 -1
  48. data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
  49. data/doc/TaskJuggler/ChargeSet.html +11 -1
  50. data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
  51. data/doc/TaskJuggler/CollisionDetector.html +1063 -0
  52. data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
  53. data/doc/TaskJuggler/ColumnTable.html +11 -1
  54. data/doc/TaskJuggler/Daemon.html +11 -1
  55. data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
  56. data/doc/TaskJuggler/DataCacheEntry.html +711 -0
  57. data/doc/TaskJuggler/DateAttribute.html +11 -1
  58. data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
  59. data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
  60. data/doc/TaskJuggler/DurationAttribute.html +16 -5
  61. data/doc/TaskJuggler/FileList.html +11 -1
  62. data/doc/TaskJuggler/FileRecord.html +11 -1
  63. data/doc/TaskJuggler/FixnumAttribute.html +19 -9
  64. data/doc/TaskJuggler/FlagListAttribute.html +29 -19
  65. data/doc/TaskJuggler/FloatAttribute.html +23 -13
  66. data/doc/TaskJuggler/FormatListAttribute.html +19 -9
  67. data/doc/TaskJuggler/GanttChart.html +94 -133
  68. data/doc/TaskJuggler/GanttContainer.html +11 -1
  69. data/doc/TaskJuggler/GanttHeader.html +11 -1
  70. data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
  71. data/doc/TaskJuggler/GanttLine.html +11 -1
  72. data/doc/TaskJuggler/GanttLoadStack.html +11 -1
  73. data/doc/TaskJuggler/GanttMilestone.html +11 -1
  74. data/doc/TaskJuggler/GanttRouter.html +247 -596
  75. data/doc/TaskJuggler/GanttTaskBar.html +11 -1
  76. data/doc/TaskJuggler/HTMLDocument.html +11 -1
  77. data/doc/TaskJuggler/HTMLGraphics.html +11 -1
  78. data/doc/TaskJuggler/Interval.html +11 -1
  79. data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
  80. data/doc/TaskJuggler/JobInfo.html +11 -1
  81. data/doc/TaskJuggler/Journal.html +11 -1
  82. data/doc/TaskJuggler/JournalEntry.html +11 -1
  83. data/doc/TaskJuggler/JournalEntryList.html +11 -1
  84. data/doc/TaskJuggler/KeywordArray.html +11 -1
  85. data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
  86. data/doc/TaskJuggler/Limits.html +11 -1
  87. data/doc/TaskJuggler/Limits/Limit.html +11 -1
  88. data/doc/TaskJuggler/LimitsAttribute.html +24 -14
  89. data/doc/TaskJuggler/ListAttributeBase.html +11 -1
  90. data/doc/TaskJuggler/Log.html +11 -1
  91. data/doc/TaskJuggler/LogFile.html +11 -1
  92. data/doc/TaskJuggler/LogicalAttribute.html +11 -1
  93. data/doc/TaskJuggler/LogicalExpression.html +11 -1
  94. data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
  95. data/doc/TaskJuggler/LogicalFlag.html +11 -1
  96. data/doc/TaskJuggler/LogicalFunction.html +11 -1
  97. data/doc/TaskJuggler/LogicalOperation.html +11 -1
  98. data/doc/TaskJuggler/Macro.html +11 -1
  99. data/doc/TaskJuggler/MacroTable.html +11 -1
  100. data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
  101. data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
  102. data/doc/TaskJuggler/Message.html +11 -1
  103. data/doc/TaskJuggler/MessageHandler.html +11 -1
  104. data/doc/TaskJuggler/Navigator.html +12 -2
  105. data/doc/TaskJuggler/NavigatorElement.html +11 -1
  106. data/doc/TaskJuggler/NikuProject.html +11 -1
  107. data/doc/TaskJuggler/NikuReport.html +11 -1
  108. data/doc/TaskJuggler/NikuResource.html +11 -1
  109. data/doc/TaskJuggler/NodeListAttribute.html +17 -7
  110. data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
  111. data/doc/TaskJuggler/ProcessIntercom.html +11 -1
  112. data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
  113. data/doc/TaskJuggler/Project.html +587 -500
  114. data/doc/TaskJuggler/ProjectBroker.html +11 -1
  115. data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
  116. data/doc/TaskJuggler/ProjectFileParser.html +205 -192
  117. data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
  118. data/doc/TaskJuggler/ProjectRecord.html +11 -1
  119. data/doc/TaskJuggler/ProjectServer.html +11 -1
  120. data/doc/TaskJuggler/ProjectServerIface.html +11 -1
  121. data/doc/TaskJuggler/PropertyAttribute.html +19 -9
  122. data/doc/TaskJuggler/PropertyList.html +95 -83
  123. data/doc/TaskJuggler/PropertySet.html +11 -1
  124. data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
  125. data/doc/TaskJuggler/Query.html +234 -232
  126. data/doc/TaskJuggler/RTFHandlers.html +11 -1
  127. data/doc/TaskJuggler/RTFNavigator.html +11 -1
  128. data/doc/TaskJuggler/RTFQuery.html +11 -1
  129. data/doc/TaskJuggler/RTFReport.html +11 -1
  130. data/doc/TaskJuggler/RTFReportLink.html +11 -1
  131. data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
  132. data/doc/TaskJuggler/RealFormat.html +12 -2
  133. data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
  134. data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
  135. data/doc/TaskJuggler/Report.html +96 -113
  136. data/doc/TaskJuggler/ReportBase.html +161 -152
  137. data/doc/TaskJuggler/ReportContext.html +11 -1
  138. data/doc/TaskJuggler/ReportServer.html +59 -48
  139. data/doc/TaskJuggler/ReportServerIface.html +51 -41
  140. data/doc/TaskJuggler/ReportServerRecord.html +11 -1
  141. data/doc/TaskJuggler/ReportServlet.html +11 -1
  142. data/doc/TaskJuggler/ReportTable.html +46 -25
  143. data/doc/TaskJuggler/ReportTableCell.html +296 -275
  144. data/doc/TaskJuggler/ReportTableColumn.html +14 -4
  145. data/doc/TaskJuggler/ReportTableLegend.html +11 -1
  146. data/doc/TaskJuggler/ReportTableLine.html +19 -7
  147. data/doc/TaskJuggler/Resource.html +12 -2
  148. data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
  149. data/doc/TaskJuggler/ResourceListRE.html +11 -1
  150. data/doc/TaskJuggler/ResourceScenario.html +708 -565
  151. data/doc/TaskJuggler/RichText.html +54 -36
  152. data/doc/TaskJuggler/RichTextAttribute.html +31 -21
  153. data/doc/TaskJuggler/RichTextDocument.html +11 -1
  154. data/doc/TaskJuggler/RichTextElement.html +11 -1
  155. data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
  156. data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
  157. data/doc/TaskJuggler/RichTextImage.html +11 -1
  158. data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
  159. data/doc/TaskJuggler/RichTextParser.html +88 -33
  160. data/doc/TaskJuggler/RichTextScanner.html +45 -35
  161. data/doc/TaskJuggler/RichTextSnip.html +11 -1
  162. data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
  163. data/doc/TaskJuggler/Scenario.html +11 -1
  164. data/doc/TaskJuggler/ScenarioData.html +11 -1
  165. data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
  166. data/doc/TaskJuggler/Scoreboard.html +92 -73
  167. data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
  168. data/doc/TaskJuggler/SheetReceiver.html +11 -1
  169. data/doc/TaskJuggler/SheetSender.html +11 -1
  170. data/doc/TaskJuggler/Shift.html +11 -1
  171. data/doc/TaskJuggler/ShiftAssignment.html +11 -1
  172. data/doc/TaskJuggler/ShiftAssignments.html +11 -1
  173. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
  174. data/doc/TaskJuggler/ShiftScenario.html +11 -1
  175. data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
  176. data/doc/TaskJuggler/SortListAttribute.html +21 -11
  177. data/doc/TaskJuggler/SourceFileInfo.html +11 -1
  178. data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
  179. data/doc/TaskJuggler/StatusSheetReport.html +11 -1
  180. data/doc/TaskJuggler/StatusSheetSender.html +112 -11
  181. data/doc/TaskJuggler/StringAttribute.html +23 -13
  182. data/doc/TaskJuggler/SymbolAttribute.html +19 -9
  183. data/doc/TaskJuggler/SyntaxReference.html +80 -71
  184. data/doc/TaskJuggler/TOCEntry.html +11 -1
  185. data/doc/TaskJuggler/TSResourceRecord.html +11 -1
  186. data/doc/TaskJuggler/TSTaskRecord.html +11 -1
  187. data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
  188. data/doc/TaskJuggler/TableOfContents.html +11 -1
  189. data/doc/TaskJuggler/TableReport.html +422 -411
  190. data/doc/TaskJuggler/Task.html +11 -1
  191. data/doc/TaskJuggler/TaskDependency.html +11 -1
  192. data/doc/TaskJuggler/TaskListAttribute.html +33 -23
  193. data/doc/TaskJuggler/TaskListRE.html +11 -1
  194. data/doc/TaskJuggler/TaskScenario.html +2007 -1919
  195. data/doc/TaskJuggler/TextFormatter.html +11 -1
  196. data/doc/TaskJuggler/TextParser.html +421 -612
  197. data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
  198. data/doc/TaskJuggler/TextParser/Rule.html +224 -152
  199. data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
  200. data/doc/TaskJuggler/TextParser/State.html +989 -0
  201. data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
  202. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
  203. data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
  204. data/doc/TaskJuggler/TextReport.html +11 -1
  205. data/doc/TaskJuggler/TextScanner.html +285 -273
  206. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
  207. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
  208. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
  209. data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
  210. data/doc/TaskJuggler/TimeSheet.html +11 -1
  211. data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
  212. data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
  213. data/doc/TaskJuggler/TimeSheetReport.html +11 -1
  214. data/doc/TaskJuggler/TimeSheetSender.html +11 -1
  215. data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
  216. data/doc/TaskJuggler/TimeSheets.html +11 -1
  217. data/doc/TaskJuggler/Tj3AppBase.html +11 -1
  218. data/doc/TaskJuggler/Tj3Client.html +11 -1
  219. data/doc/TaskJuggler/Tj3Daemon.html +11 -1
  220. data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
  221. data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
  222. data/doc/TaskJuggler/Tj3SsSender.html +11 -1
  223. data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
  224. data/doc/TaskJuggler/Tj3TsSender.html +11 -1
  225. data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
  226. data/doc/TaskJuggler/TjException.html +11 -1
  227. data/doc/TaskJuggler/TjTime.html +474 -324
  228. data/doc/TaskJuggler/TjpExample.html +11 -1
  229. data/doc/TaskJuggler/TjpExportRE.html +11 -1
  230. data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
  231. data/doc/TaskJuggler/URLParameter.html +11 -1
  232. data/doc/TaskJuggler/UserManual.html +11 -1
  233. data/doc/TaskJuggler/VimSyntax.html +11 -1
  234. data/doc/TaskJuggler/WebServer.html +11 -1
  235. data/doc/TaskJuggler/WorkingHours.html +295 -221
  236. data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
  237. data/doc/TaskJuggler/XMLBlob.html +11 -1
  238. data/doc/TaskJuggler/XMLComment.html +11 -1
  239. data/doc/TaskJuggler/XMLDocument.html +11 -1
  240. data/doc/TaskJuggler/XMLElement.html +11 -1
  241. data/doc/TaskJuggler/XMLNamedText.html +11 -1
  242. data/doc/TaskJuggler/XMLText.html +11 -1
  243. data/doc/index.html +694 -624
  244. data/doc/lib/AppConfig_rb.html +1 -1
  245. data/doc/lib/Attributes_rb.html +1 -1
  246. data/doc/lib/Booking_rb.html +1 -1
  247. data/doc/lib/DataCache_rb.html +69 -0
  248. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  249. data/doc/lib/ProjectFileParser_rb.html +1 -1
  250. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  251. data/doc/lib/Project_rb.html +1 -1
  252. data/doc/lib/PropertyList_rb.html +1 -1
  253. data/doc/lib/Query_rb.html +1 -1
  254. data/doc/lib/RealFormat_rb.html +1 -1
  255. data/doc/lib/ResourceScenario_rb.html +1 -1
  256. data/doc/lib/Resource_rb.html +1 -1
  257. data/doc/lib/RichTextParser_rb.html +1 -1
  258. data/doc/lib/RichTextScanner_rb.html +1 -1
  259. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  260. data/doc/lib/RichText_rb.html +1 -1
  261. data/doc/lib/Scoreboard_rb.html +1 -1
  262. data/doc/lib/StatusSheetSender_rb.html +1 -1
  263. data/doc/lib/SyntaxReference_rb.html +1 -1
  264. data/doc/lib/TaskJuggler_rb.html +1 -1
  265. data/doc/lib/TaskScenario_rb.html +3 -1
  266. data/doc/lib/TextParser/Pattern_rb.html +3 -1
  267. data/doc/lib/TextParser/Rule_rb.html +3 -1
  268. data/doc/lib/TextParser/StackElement_rb.html +3 -1
  269. data/doc/lib/TextParser/State_rb.html +65 -0
  270. data/doc/lib/TextParser_rb.html +1 -1
  271. data/doc/lib/TextScanner_rb.html +1 -1
  272. data/doc/lib/Tj3Config_rb.html +1 -1
  273. data/doc/lib/TjTime_rb.html +1 -1
  274. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  275. data/doc/lib/WorkingHours_rb.html +3 -1
  276. data/doc/lib/daemon/ReportServer_rb.html +1 -1
  277. data/doc/lib/reports/CSVFile_rb.html +1 -1
  278. data/doc/lib/reports/CollisionDetector_rb.html +67 -0
  279. data/doc/lib/reports/GanttChart_rb.html +1 -1
  280. data/doc/lib/reports/GanttRouter_rb.html +3 -1
  281. data/doc/lib/reports/Navigator_rb.html +1 -1
  282. data/doc/lib/reports/ReportBase_rb.html +1 -1
  283. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  284. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  285. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  286. data/doc/lib/reports/ReportTable_rb.html +1 -1
  287. data/doc/lib/reports/Report_rb.html +1 -1
  288. data/doc/lib/reports/TableReport_rb.html +1 -1
  289. data/doc/lib/taskjuggler3_rb.html +1 -1
  290. data/examples/tutorial.tjp +1 -2
  291. data/lib/AppConfig.rb +10 -4
  292. data/lib/Attributes.rb +4 -4
  293. data/lib/DataCache.rb +124 -0
  294. data/lib/KeywordDocumentation.rb +5 -5
  295. data/lib/Project.rb +54 -10
  296. data/lib/ProjectFileParser.rb +10 -9
  297. data/lib/ProjectFileScanner.rb +38 -25
  298. data/lib/PropertyList.rb +6 -4
  299. data/lib/Query.rb +0 -8
  300. data/lib/RealFormat.rb +1 -1
  301. data/lib/Resource.rb +1 -1
  302. data/lib/ResourceScenario.rb +96 -31
  303. data/lib/RichText.rb +17 -5
  304. data/lib/RichTextParser.rb +22 -9
  305. data/lib/RichTextScanner.rb +34 -34
  306. data/lib/RichTextSyntaxRules.rb +41 -36
  307. data/lib/Scoreboard.rb +16 -7
  308. data/lib/StatusSheetSender.rb +63 -0
  309. data/lib/SyntaxReference.rb +9 -10
  310. data/lib/TaskJuggler.rb +28 -4
  311. data/lib/TaskScenario.rb +66 -19
  312. data/lib/TextParser.rb +219 -384
  313. data/lib/TextParser/Pattern.rb +168 -49
  314. data/lib/TextParser/Rule.rb +33 -17
  315. data/lib/TextParser/StackElement.rb +42 -2
  316. data/lib/TextParser/State.rb +175 -0
  317. data/lib/TextScanner.rb +19 -15
  318. data/lib/Tj3Config.rb +1 -1
  319. data/lib/TjTime.rb +111 -3
  320. data/lib/TjpSyntaxRules.rb +122 -66
  321. data/lib/WorkingHours.rb +91 -186
  322. data/lib/daemon/ReportServer.rb +3 -2
  323. data/lib/reports/CSVFile.rb +1 -1
  324. data/lib/reports/CollisionDetector.rb +177 -0
  325. data/lib/reports/GanttChart.rb +25 -41
  326. data/lib/reports/GanttRouter.rb +104 -233
  327. data/lib/reports/Navigator.rb +1 -1
  328. data/lib/reports/Report.rb +9 -33
  329. data/lib/reports/ReportBase.rb +0 -1
  330. data/lib/reports/ReportTable.rb +19 -8
  331. data/lib/reports/ReportTableCell.rb +61 -25
  332. data/lib/reports/ReportTableColumn.rb +2 -2
  333. data/lib/reports/ReportTableLine.rb +4 -2
  334. data/lib/reports/TableReport.rb +1 -0
  335. data/lib/taskjuggler3.rb +0 -1
  336. data/manual/Installation +7 -3
  337. data/manual/Intro +12 -10
  338. data/manual/The_TaskJuggler_Syntax +4 -4
  339. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
  340. data/test/TestSuite/CSV-Reports/genrefs +1 -1
  341. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
  342. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
  343. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
  344. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
  345. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
  346. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
  347. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
  348. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
  349. data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
  350. data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
  351. data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
  352. data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
  353. data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
  354. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  355. data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
  356. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
  357. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
  358. data/test/TestSuite/StatusSheets/run +2 -0
  359. data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
  360. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
  361. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
  362. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
  363. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  364. data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
  365. data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
  366. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  367. data/test/TestSuite/TimeSheets/run +1 -1
  368. data/test/test_CSV-Reports.rb +2 -4
  369. data/test/test_CollisionDetector.rb +85 -0
  370. data/test/test_Project.rb +2 -2
  371. data/test/test_ProjectFileScanner.rb +73 -31
  372. data/test/test_Query.rb +2 -2
  373. data/test/test_ReportGenerator.rb +1 -1
  374. data/test/test_RichText.rb +4 -4
  375. data/test/test_WorkingHours.rb +150 -11
  376. metadata +75 -67
  377. data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
  378. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
  379. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
  380. data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
  381. data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
  382. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
  383. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  384. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
  385. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  386. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  387. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  388. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  389. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  390. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  391. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  392. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  393. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  394. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  395. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  396. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  397. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
  398. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
  399. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  400. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  401. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  402. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  403. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  404. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  405. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  406. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  407. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  408. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  409. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  410. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
  411. data/test/TestSuite/StatusSheets/resrep.tji +0 -7
  412. data/test/TestSuite/StatusSheets/tj3d.log +0 -312
  413. data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
  414. data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
  415. data/test/TestSuite/TimeSheets/statussheets.log +0 -1
@@ -175,12 +175,18 @@
175
175
 
176
176
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
177
177
 
178
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
179
+
178
180
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
179
181
 
180
182
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
181
183
 
182
184
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
183
185
 
186
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
187
+
188
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
189
+
184
190
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
185
191
 
186
192
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -287,7 +293,7 @@
287
293
 
288
294
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
289
295
 
290
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
296
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
291
297
 
292
298
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
293
299
 
@@ -467,6 +473,10 @@
467
473
 
468
474
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
469
475
 
476
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
479
+
470
480
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
471
481
 
472
482
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -157,12 +157,18 @@
157
157
 
158
158
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
159
159
 
160
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
161
+
160
162
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
161
163
 
162
164
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
163
165
 
164
166
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
165
167
 
168
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
169
+
170
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
171
+
166
172
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
167
173
 
168
174
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -269,7 +275,7 @@
269
275
 
270
276
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
271
277
 
272
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
278
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
273
279
 
274
280
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
275
281
 
@@ -449,6 +455,10 @@
449
455
 
450
456
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
451
457
 
458
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
461
+
452
462
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
453
463
 
454
464
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -218,12 +218,18 @@
218
218
 
219
219
  <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
220
220
 
221
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
222
+
221
223
  <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
222
224
 
223
225
  <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
224
226
 
225
227
  <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
226
228
 
229
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
230
+
231
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
232
+
227
233
  <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
228
234
 
229
235
  <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
@@ -330,7 +336,7 @@
330
336
 
331
337
  <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
332
338
 
333
- <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
339
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
334
340
 
335
341
  <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
336
342
 
@@ -510,6 +516,10 @@
510
516
 
511
517
  <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
512
518
 
519
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
520
+
521
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
522
+
513
523
  <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
514
524
 
515
525
  <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
@@ -675,13 +685,14 @@ that is used for error reporting.
675
685
  39:
676
686
  40: <span class="ruby-comment cmt"># Define the token types that the ProjectFileScanner may return for</span>
677
687
  41: <span class="ruby-comment cmt"># variable elements.</span>
678
- 42: <span class="ruby-ivar">@variables</span> = <span class="ruby-node">%( INTEGER FLOAT DATE TIME STRING LITERAL ID ID_WITH_COLON
679
- 43: ABSOLUTE_ID MACRO )</span>
688
+ 42: <span class="ruby-ivar">@variables</span> = [ <span class="ruby-value">:INTEGER</span>, <span class="ruby-value">:FLOAT</span>, <span class="ruby-value">:DATE</span>, <span class="ruby-value">:TIME</span>, <span class="ruby-value">:STRING</span>, <span class="ruby-value">:LITERAL</span>,
689
+ 43: <span class="ruby-value">:ID</span>, <span class="ruby-value">:ID_WITH_COLON</span>, <span class="ruby-value">:ABSOLUTE_ID</span>, <span class="ruby-value">:MACRO</span> ]
680
690
  44:
681
691
  45: <span class="ruby-identifier">initRules</span>
682
- 46:
683
- 47: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
684
- 48: <span class="ruby-keyword kw">end</span></pre>
692
+ 46: <span class="ruby-identifier">updateParserTables</span>
693
+ 47:
694
+ 48: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
695
+ 49: <span class="ruby-keyword kw">end</span></pre>
685
696
  </div>
686
697
 
687
698
  </div>
@@ -721,10 +732,10 @@ processing has been completed.
721
732
  <div class="method-source-code"
722
733
  id="close-source">
723
734
  <pre>
724
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 68</span>
725
- 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
726
- 69: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
727
- 70: <span class="ruby-keyword kw">end</span></pre>
735
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 69</span>
736
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
737
+ 70: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
738
+ 71: <span class="ruby-keyword kw">end</span></pre>
728
739
  </div>
729
740
 
730
741
  </div>
@@ -759,10 +770,10 @@ text string of the token.
759
770
  <div class="method-source-code"
760
771
  id="next-oken-source">
761
772
  <pre>
762
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 75</span>
763
- 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
764
- 76: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
765
- 77: <span class="ruby-keyword kw">end</span></pre>
773
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 76</span>
774
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
775
+ 77: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
776
+ 78: <span class="ruby-keyword kw">end</span></pre>
766
777
  </div>
767
778
 
768
779
  </div>
@@ -796,20 +807,20 @@ set of TJP files.
796
807
  <div class="method-source-code"
797
808
  id="open-source">
798
809
  <pre>
799
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 52</span>
800
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>, <span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
801
- 53: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">ProjectFileScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
802
- 54: <span class="ruby-comment cmt"># We need the ProjectFileScanner object for error reporting.</span>
803
- 55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fileNameIsBuffer</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
804
- 56: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
805
- 57: <span class="ruby-value str">'\.tjp\ extension'</span>)
806
- 58: <span class="ruby-keyword kw">end</span>
807
- 59: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
808
- 60:
809
- 61: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
810
- 62: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
811
- 63: <span class="ruby-identifier">initFileStack</span>
812
- 64: <span class="ruby-keyword kw">end</span></pre>
810
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 53</span>
811
+ 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">master</span>, <span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
812
+ 54: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">ProjectFileScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>, <span class="ruby-ivar">@messageHandler</span>)
813
+ 55: <span class="ruby-comment cmt"># We need the ProjectFileScanner object for error reporting.</span>
814
+ 56: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">master</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">fileNameIsBuffer</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">file</span>[<span class="ruby-value">4</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'.tjp'</span>
815
+ 57: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'illegal_extension'</span>, <span class="ruby-value str">&quot;Project file name must end with &quot;</span> <span class="ruby-operator">+</span>
816
+ 58: <span class="ruby-value str">'\.tjp\ extension'</span>)
817
+ 59: <span class="ruby-keyword kw">end</span>
818
+ 60: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
819
+ 61:
820
+ 62: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
821
+ 63: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
822
+ 64: <span class="ruby-identifier">initFileStack</span>
823
+ 65: <span class="ruby-keyword kw">end</span></pre>
813
824
  </div>
814
825
 
815
826
  </div>
@@ -840,13 +851,13 @@ set of TJP files.
840
851
  <div class="method-source-code"
841
852
  id="parse-eport-ttributes-source">
842
853
  <pre>
843
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 102</span>
844
- 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">attributes</span>)
845
- 103: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>)
846
- 104: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">report</span>
847
- 105: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">project</span>
848
- 106: <span class="ruby-identifier">parse</span>(<span class="ruby-value str">'reportAttributes'</span>)
849
- 107: <span class="ruby-keyword kw">end</span></pre>
854
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 103</span>
855
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parseReportAttributes</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">attributes</span>)
856
+ 104: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">attributes</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>)
857
+ 105: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">report</span>
858
+ 106: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">project</span>
859
+ 107: <span class="ruby-identifier">parse</span>(<span class="ruby-value str">'reportAttributes'</span>)
860
+ 108: <span class="ruby-keyword kw">end</span></pre>
850
861
  </div>
851
862
 
852
863
  </div>
@@ -882,10 +893,10 @@ look-ahead functionality.
882
893
  <div class="method-source-code"
883
894
  id="return-oken-source">
884
895
  <pre>
885
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 83</span>
886
- 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
887
- 84: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
888
- 85: <span class="ruby-keyword kw">end</span></pre>
896
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 84</span>
897
+ 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
898
+ 85: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
899
+ 86: <span class="ruby-keyword kw">end</span></pre>
889
900
  </div>
890
901
 
891
902
  </div>
@@ -921,18 +932,18 @@ href="ProjectFileScanner.html">ProjectFileScanner</a>.
921
932
  <div class="method-source-code"
922
933
  id="set-lobal-acros-source">
923
934
  <pre>
924
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 90</span>
925
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
926
- 91: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
927
- 92: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
928
- 93: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
929
- 94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
930
- 95: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
931
- 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
932
- 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'today'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].
933
- 98: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
934
- 99: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
935
- 100: <span class="ruby-keyword kw">end</span></pre>
935
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 91</span>
936
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
937
+ 92: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
938
+ 93: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
939
+ 94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
940
+ 95: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
941
+ 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
942
+ 97: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
943
+ 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">addMacro</span>(<span class="ruby-constant">Macro</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'today'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].
944
+ 99: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
945
+ 100: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
946
+ 101: <span class="ruby-keyword kw">end</span></pre>
936
947
  </div>
937
948
 
938
949
  </div>
@@ -1044,11 +1055,11 @@ generate the documentation for the patterns of this rule.
1044
1055
  <div class="method-source-code"
1045
1056
  id="also-source">
1046
1057
  <pre>
1047
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 381</span>
1048
- 381: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">also</span>(<span class="ruby-identifier">seeAlso</span>)
1049
- 382: <span class="ruby-identifier">seeAlso</span> = [ <span class="ruby-identifier">seeAlso</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1050
- 383: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">seeAlso</span>)
1051
- 384: <span class="ruby-keyword kw">end</span></pre>
1058
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 382</span>
1059
+ 382: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">also</span>(<span class="ruby-identifier">seeAlso</span>)
1060
+ 383: <span class="ruby-identifier">seeAlso</span> = [ <span class="ruby-identifier">seeAlso</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">seeAlso</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1061
+ 384: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">seeAlso</span>)
1062
+ 385: <span class="ruby-keyword kw">end</span></pre>
1052
1063
  </div>
1053
1064
 
1054
1065
  </div>
@@ -1083,10 +1094,10 @@ used for this variable. <em>text</em> is the documentation text.
1083
1094
  <div class="method-source-code"
1084
1095
  id="arg-source">
1085
1096
  <pre>
1086
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 369</span>
1087
- 369: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>)
1088
- 370: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setArg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>))
1089
- 371: <span class="ruby-keyword kw">end</span></pre>
1097
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 370</span>
1098
+ 370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>)
1099
+ 371: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setArg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-constant">TextParser</span><span class="ruby-operator">::</span><span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">text</span>))
1100
+ 372: <span class="ruby-keyword kw">end</span></pre>
1090
1101
  </div>
1091
1102
 
1092
1103
  </div>
@@ -1119,21 +1130,21 @@ Convenience function to check the integrity of a booking statement.
1119
1130
  <div class="method-source-code"
1120
1131
  id="check-ooking-source">
1121
1132
  <pre>
1122
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 150</span>
1123
- 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">resource</span>)
1124
- 151: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span>
1125
- 152: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_no_leaf'</span>, <span class="ruby-node">&quot;#{task.fullId} is not a leaf task&quot;</span>,
1126
- 153: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1127
- 154: <span class="ruby-keyword kw">end</span>
1128
- 155: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@scenarioIdx</span>]
1129
- 156: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_milestone'</span>, <span class="ruby-value str">&quot;You cannot add bookings to a milestone&quot;</span>,
1130
- 157: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1131
- 158: <span class="ruby-keyword kw">end</span>
1132
- 159: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
1133
- 160: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_group'</span>, <span class="ruby-value str">&quot;You cannot book a group resource&quot;</span>,
1134
- 161: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1135
- 162: <span class="ruby-keyword kw">end</span>
1136
- 163: <span class="ruby-keyword kw">end</span></pre>
1133
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 151</span>
1134
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkBooking</span>(<span class="ruby-identifier">task</span>, <span class="ruby-identifier">resource</span>)
1135
+ 152: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span>
1136
+ 153: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_no_leaf'</span>, <span class="ruby-node">&quot;#{task.fullId} is not a leaf task&quot;</span>,
1137
+ 154: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1138
+ 155: <span class="ruby-keyword kw">end</span>
1139
+ 156: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'milestone'</span>, <span class="ruby-ivar">@scenarioIdx</span>]
1140
+ 157: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_milestone'</span>, <span class="ruby-value str">&quot;You cannot add bookings to a milestone&quot;</span>,
1141
+ 158: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1142
+ 159: <span class="ruby-keyword kw">end</span>
1143
+ 160: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
1144
+ 161: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'booking_group'</span>, <span class="ruby-value str">&quot;You cannot book a group resource&quot;</span>,
1145
+ 162: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1146
+ 163: <span class="ruby-keyword kw">end</span>
1147
+ 164: <span class="ruby-keyword kw">end</span></pre>
1137
1148
  </div>
1138
1149
 
1139
1150
  </div>
@@ -1167,15 +1178,15 @@ been added to a property.
1167
1178
  <div class="method-source-code"
1168
1179
  id="check-ontainer-source">
1169
1180
  <pre>
1170
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 124</span>
1171
- 124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkContainer</span>(<span class="ruby-identifier">attribute</span>)
1172
- 125: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1173
- 126: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'container_attribute'</span>,
1174
- 127: <span class="ruby-node">&quot;The attribute #{attribute} may not be used for this property &quot;</span> <span class="ruby-operator">+</span>
1175
- 128: <span class="ruby-value str">'after sub properties have been added.'</span>, <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>],
1176
- 129: <span class="ruby-ivar">@property</span>)
1177
- 130: <span class="ruby-keyword kw">end</span>
1178
- 131: <span class="ruby-keyword kw">end</span></pre>
1181
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 125</span>
1182
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkContainer</span>(<span class="ruby-identifier">attribute</span>)
1183
+ 126: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1184
+ 127: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'container_attribute'</span>,
1185
+ 128: <span class="ruby-node">&quot;The attribute #{attribute} may not be used for this property &quot;</span> <span class="ruby-operator">+</span>
1186
+ 129: <span class="ruby-value str">'after sub properties have been added.'</span>, <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>],
1187
+ 130: <span class="ruby-ivar">@property</span>)
1188
+ 131: <span class="ruby-keyword kw">end</span>
1189
+ 132: <span class="ruby-keyword kw">end</span></pre>
1179
1190
  </div>
1180
1191
 
1181
1192
  </div>
@@ -1209,20 +1220,20 @@ fits completely within the project time frame.
1209
1220
  <div class="method-source-code"
1210
1221
  id="check-nterval-source">
1211
1222
  <pre>
1212
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 135</span>
1213
- 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkInterval</span>(<span class="ruby-identifier">iv</span>)
1214
- 136: <span class="ruby-comment cmt"># Make sure the interval is within the project time frame.</span>
1215
- 137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1216
- 138: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_start_in_range'</span>,
1217
- 139: <span class="ruby-node">&quot;Start date #{iv.start} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1218
- 140: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1219
- 141: <span class="ruby-keyword kw">end</span>
1220
- 142: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1221
- 143: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_end_in_range'</span>,
1222
- 144: <span class="ruby-node">&quot;End date #{iv.end} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1223
- 145: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1224
- 146: <span class="ruby-keyword kw">end</span>
1225
- 147: <span class="ruby-keyword kw">end</span></pre>
1223
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 136</span>
1224
+ 136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkInterval</span>(<span class="ruby-identifier">iv</span>)
1225
+ 137: <span class="ruby-comment cmt"># Make sure the interval is within the project time frame.</span>
1226
+ 138: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">start</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1227
+ 139: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_start_in_range'</span>,
1228
+ 140: <span class="ruby-node">&quot;Start date #{iv.start} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1229
+ 141: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1230
+ 142: <span class="ruby-keyword kw">end</span>
1231
+ 143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">iv</span>.<span class="ruby-identifier">end</span> <span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>]
1232
+ 144: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_end_in_range'</span>,
1233
+ 145: <span class="ruby-node">&quot;End date #{iv.end} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1234
+ 146: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1235
+ 147: <span class="ruby-keyword kw">end</span>
1236
+ 148: <span class="ruby-keyword kw">end</span></pre>
1226
1237
  </div>
1227
1238
 
1228
1239
  </div>
@@ -1256,11 +1267,11 @@ be from the static set or be from a user defined attribute.
1256
1267
  <div class="method-source-code"
1257
1268
  id="column-itle-source">
1258
1269
  <pre>
1259
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 394</span>
1260
- 394: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">columnTitle</span>(<span class="ruby-identifier">colId</span>)
1261
- 395: <span class="ruby-constant">TableReport</span>.<span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">colId</span>) <span class="ruby-operator">||</span>
1262
- 396: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">colId</span>)
1263
- 397: <span class="ruby-keyword kw">end</span></pre>
1270
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 395</span>
1271
+ 395: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">columnTitle</span>(<span class="ruby-identifier">colId</span>)
1272
+ 396: <span class="ruby-constant">TableReport</span>.<span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">colId</span>) <span class="ruby-operator">||</span>
1273
+ 397: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">colId</span>)
1274
+ 398: <span class="ruby-keyword kw">end</span></pre>
1264
1275
  </div>
1265
1276
 
1266
1277
  </div>
@@ -1335,11 +1346,12 @@ token.
1335
1346
  <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 358</span>
1336
1347
  358: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">text</span>)
1337
1348
  359: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1</span> <span class="ruby-operator">||</span>
1338
- 360: (<span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">__</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">$$</span>)
1339
- 361: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'descr() may only be used for patterns with terminal tokens.'</span>
1340
- 362: <span class="ruby-keyword kw">end</span>
1341
- 363: <span class="ruby-identifier">arg</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">text</span>)
1342
- 364: <span class="ruby-keyword kw">end</span></pre>
1349
+ 360: (<span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:literal</span> <span class="ruby-operator">&amp;&amp;</span>
1350
+ 361: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">patterns</span>[<span class="ruby-value">1</span>][<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">:variable</span>)
1351
+ 362: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'descr() may only be used for patterns with terminal tokens.'</span>
1352
+ 363: <span class="ruby-keyword kw">end</span>
1353
+ 364: <span class="ruby-identifier">arg</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">text</span>)
1354
+ 365: <span class="ruby-keyword kw">end</span></pre>
1343
1355
  </div>
1344
1356
 
1345
1357
  </div>
@@ -1410,10 +1422,10 @@ identify that only a part of the file should be included.
1410
1422
  <div class="method-source-code"
1411
1423
  id="example-source">
1412
1424
  <pre>
1413
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 389</span>
1414
- 389: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">example</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
1415
- 390: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1416
- 391: <span class="ruby-keyword kw">end</span></pre>
1425
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 390</span>
1426
+ 390: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">example</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">nil</span>)
1427
+ 391: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1428
+ 392: <span class="ruby-keyword kw">end</span></pre>
1417
1429
  </div>
1418
1430
 
1419
1431
  </div>
@@ -1453,41 +1465,41 @@ new attribute. @propertySet determines what property should be extended.
1453
1465
  <div class="method-source-code"
1454
1466
  id="extend-roperty-et-efinition-source">
1455
1467
  <pre>
1456
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 172</span>
1457
- 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extendPropertySetDefinition</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>)
1458
- 173: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1459
- 174: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'extend_redefinition'</span>,
1460
- 175: <span class="ruby-node">&quot;The extended attribute #{@val[1]} has already been defined.&quot;</span>)
1461
- 176: <span class="ruby-keyword kw">end</span>
1462
- 177:
1463
- 178: <span class="ruby-comment cmt"># Determine the values for scenarioSpecific and inheritable.</span>
1464
- 179: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">false</span>
1465
- 180: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">false</span>
1466
- 181: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">nil?</span>
1467
- 182: <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
1468
- 183: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">option</span>
1469
- 184: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'inherit'</span>
1470
- 185: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">true</span>
1471
- 186: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenariospecific'</span>
1472
- 187: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span>
1473
- 188: <span class="ruby-keyword kw">end</span>
1474
- 189: <span class="ruby-keyword kw">end</span>
1475
- 190: <span class="ruby-keyword kw">end</span>
1476
- 191: <span class="ruby-comment cmt"># Register the new Attribute type with the Property set it should belong</span>
1477
- 192: <span class="ruby-comment cmt"># to.</span>
1478
- 193: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(
1479
- 194: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">type</span>, <span class="ruby-identifier">inherit</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scenarioSpecific</span>, <span class="ruby-identifier">default</span>, <span class="ruby-keyword kw">true</span>))
1480
- 195:
1481
- 196: <span class="ruby-comment cmt"># Add the new user-defined attribute as reportable attribute to the parser</span>
1482
- 197: <span class="ruby-comment cmt"># rule.</span>
1483
- 198: <span class="ruby-identifier">oldCurrentRule</span> = <span class="ruby-ivar">@cr</span>
1484
- 199: <span class="ruby-ivar">@cr</span> = <span class="ruby-ivar">@rules</span>[<span class="ruby-value str">'reportableAttributes'</span>]
1485
- 200: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1486
- 201: <span class="ruby-identifier">descr</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>])
1487
- 202: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">oldCurrentRule</span>
1488
- 203:
1489
- 204: <span class="ruby-identifier">scenarioSpecific</span>
1490
- 205: <span class="ruby-keyword kw">end</span></pre>
1468
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 173</span>
1469
+ 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extendPropertySetDefinition</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>)
1470
+ 174: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1471
+ 175: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'extend_redefinition'</span>,
1472
+ 176: <span class="ruby-node">&quot;The extended attribute #{@val[1]} has already been defined.&quot;</span>)
1473
+ 177: <span class="ruby-keyword kw">end</span>
1474
+ 178:
1475
+ 179: <span class="ruby-comment cmt"># Determine the values for scenarioSpecific and inheritable.</span>
1476
+ 180: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">false</span>
1477
+ 181: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">false</span>
1478
+ 182: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">nil?</span>
1479
+ 183: <span class="ruby-ivar">@val</span>[<span class="ruby-value">3</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
1480
+ 184: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">option</span>
1481
+ 185: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'inherit'</span>
1482
+ 186: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">true</span>
1483
+ 187: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenariospecific'</span>
1484
+ 188: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span>
1485
+ 189: <span class="ruby-keyword kw">end</span>
1486
+ 190: <span class="ruby-keyword kw">end</span>
1487
+ 191: <span class="ruby-keyword kw">end</span>
1488
+ 192: <span class="ruby-comment cmt"># Register the new Attribute type with the Property set it should belong</span>
1489
+ 193: <span class="ruby-comment cmt"># to.</span>
1490
+ 194: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(
1491
+ 195: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>], <span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">type</span>, <span class="ruby-identifier">inherit</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">scenarioSpecific</span>, <span class="ruby-identifier">default</span>, <span class="ruby-keyword kw">true</span>))
1492
+ 196:
1493
+ 197: <span class="ruby-comment cmt"># Add the new user-defined attribute as reportable attribute to the parser</span>
1494
+ 198: <span class="ruby-comment cmt"># rule.</span>
1495
+ 199: <span class="ruby-identifier">oldCurrentRule</span> = <span class="ruby-ivar">@cr</span>
1496
+ 200: <span class="ruby-ivar">@cr</span> = <span class="ruby-ivar">@rules</span>[<span class="ruby-value">:reportableAttributes</span>]
1497
+ 201: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1498
+ 202: <span class="ruby-identifier">descr</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>])
1499
+ 203: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">oldCurrentRule</span>
1500
+ 204:
1501
+ 205: <span class="ruby-identifier">scenarioSpecific</span>
1502
+ 206: <span class="ruby-keyword kw">end</span></pre>
1491
1503
  </div>
1492
1504
 
1493
1505
  </div>
@@ -1524,17 +1536,17 @@ creates or resets the stack.
1524
1536
  <div class="method-source-code"
1525
1537
  id="init-ile-tack-source">
1526
1538
  <pre>
1527
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 405</span>
1528
- 405: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initFileStack</span>
1529
- 406: <span class="ruby-ivar">@fileStackVariables</span> = <span class="ruby-node">%( taskprefix reportprefix
1530
- 407: resourceprefix accountprefix )</span>
1531
- 408: <span class="ruby-identifier">stackEntry</span> = {}
1532
- 409: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1533
- 410: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-value str">''</span>
1534
- 411: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-value str">''</span>)
1535
- 412: <span class="ruby-keyword kw">end</span>
1536
- 413: <span class="ruby-ivar">@fileStack</span> = [ <span class="ruby-identifier">stackEntry</span> ]
1537
- 414: <span class="ruby-keyword kw">end</span></pre>
1539
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 406</span>
1540
+ 406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initFileStack</span>
1541
+ 407: <span class="ruby-ivar">@fileStackVariables</span> = <span class="ruby-node">%( taskprefix reportprefix
1542
+ 408: resourceprefix accountprefix )</span>
1543
+ 409: <span class="ruby-identifier">stackEntry</span> = {}
1544
+ 410: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1545
+ 411: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-value str">''</span>
1546
+ 412: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-value str">''</span>)
1547
+ 413: <span class="ruby-keyword kw">end</span>
1548
+ 414: <span class="ruby-ivar">@fileStack</span> = [ <span class="ruby-identifier">stackEntry</span> ]
1549
+ 415: <span class="ruby-keyword kw">end</span></pre>
1538
1550
  </div>
1539
1551
 
1540
1552
  </div>
@@ -1568,10 +1580,10 @@ first <tt>idx</tt> tokens.
1568
1580
  <div class="method-source-code"
1569
1581
  id="last-yntax-oken-source">
1570
1582
  <pre>
1571
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 375</span>
1572
- 375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1573
- 376: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1574
- 377: <span class="ruby-keyword kw">end</span></pre>
1583
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 376</span>
1584
+ 376: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1585
+ 377: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1586
+ 378: <span class="ruby-keyword kw">end</span></pre>
1575
1587
  </div>
1576
1588
 
1577
1589
  </div>
@@ -1685,7 +1697,7 @@ method returns the newly created <a href="Report.html">Report</a>.
1685
1697
  <div class="method-heading">
1686
1698
 
1687
1699
  <span class="method-name">newRichText</span><span
1688
- class="method-args">(text, tokenSet = nil)</span>
1700
+ class="method-args">(text, sfi, tokenSet = nil)</span>
1689
1701
  <span class="method-click-advice">click to toggle source</span>
1690
1702
 
1691
1703
  </div>
@@ -1702,8 +1714,10 @@ correct location. This is necessary, because the <a
1702
1714
  href="RichText.html">RichText</a> parser knows nothing about the actual
1703
1715
  input file. So we have to map the error location in the <a
1704
1716
  href="RichText.html">RichText</a> input stream back to the position in the
1705
- project file. To limit the supported set of variable tokens, a subset can
1706
- be provided by <em>tokenSet</em>.
1717
+ project file. <em>sfi</em> is the <a
1718
+ href="SourceFileInfo.html">SourceFileInfo</a> of the input string. To limit
1719
+ the supported set of variable tokens, a subset can be provided by
1720
+ <em>tokenSet</em>.
1707
1721
  </p>
1708
1722
 
1709
1723
 
@@ -1711,9 +1725,8 @@ be provided by <em>tokenSet</em>.
1711
1725
  <div class="method-source-code"
1712
1726
  id="new-ich-ext-source">
1713
1727
  <pre>
1714
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 215</span>
1715
- 215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">tokenSet</span> = <span class="ruby-keyword kw">nil</span>)
1716
- 216: <span class="ruby-identifier">sfi</span> = <span class="ruby-identifier">sourceFileInfo</span>
1728
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 216</span>
1729
+ 216: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newRichText</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">tokenSet</span> = <span class="ruby-keyword kw">nil</span>)
1717
1730
  217: <span class="ruby-identifier">rText</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">sfi</span>))
1718
1731
  218: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">generateIntermediateFormat</span>( [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>], <span class="ruby-identifier">tokenSet</span>))
1719
1732
  219: <span class="ruby-identifier">rText</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">messages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">msg</span><span class="ruby-operator">|</span>
@@ -1803,14 +1816,14 @@ variables according to the now top-entry.
1803
1816
  <div class="method-source-code"
1804
1817
  id="pop-ile-tack-source">
1805
1818
  <pre>
1806
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 427</span>
1807
- 427: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">popFileStack</span>
1808
- 428: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1809
- 429: <span class="ruby-identifier">stackEntry</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1810
- 430: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1811
- 431: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>])
1812
- 432: <span class="ruby-keyword kw">end</span>
1813
- 433: <span class="ruby-keyword kw">end</span></pre>
1819
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 428</span>
1820
+ 428: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">popFileStack</span>
1821
+ 429: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1822
+ 430: <span class="ruby-identifier">stackEntry</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1823
+ 431: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1824
+ 432: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>])
1825
+ 433: <span class="ruby-keyword kw">end</span>
1826
+ 434: <span class="ruby-keyword kw">end</span></pre>
1814
1827
  </div>
1815
1828
 
1816
1829
  </div>
@@ -1843,14 +1856,14 @@ Push a new set of variables onto the @fileStack.
1843
1856
  <div class="method-source-code"
1844
1857
  id="push-ile-tack-source">
1845
1858
  <pre>
1846
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 417</span>
1847
- 417: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pushFileStack</span>
1848
- 418: <span class="ruby-identifier">stackEntry</span> = {}
1849
- 419: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1850
- 420: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>)
1851
- 421: <span class="ruby-keyword kw">end</span>
1852
- 422: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stackEntry</span>
1853
- 423: <span class="ruby-keyword kw">end</span></pre>
1859
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 418</span>
1860
+ 418: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pushFileStack</span>
1861
+ 419: <span class="ruby-identifier">stackEntry</span> = {}
1862
+ 420: <span class="ruby-ivar">@fileStackVariables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
1863
+ 421: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">var</span>)
1864
+ 422: <span class="ruby-keyword kw">end</span>
1865
+ 423: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stackEntry</span>
1866
+ 424: <span class="ruby-keyword kw">end</span></pre>
1854
1867
  </div>
1855
1868
 
1856
1869
  </div>
@@ -1969,14 +1982,14 @@ and does some error checking. It returns 0 for &#8216;sun&#8217;, 1 for
1969
1982
  <div class="method-source-code"
1970
1983
  id="week-ay-source">
1971
1984
  <pre>
1972
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 114</span>
1973
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekDay</span>(<span class="ruby-identifier">name</span>)
1974
- 115: <span class="ruby-identifier">names</span> = <span class="ruby-node">%( sun mon tue wed thu fri sat )</span>
1975
- 116: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> = <span class="ruby-identifier">names</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1976
- 117: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'weekday'</span>, <span class="ruby-node">&quot;Weekday name expected (#{names.join(', ')})&quot;</span>)
1977
- 118: <span class="ruby-keyword kw">end</span>
1978
- 119: <span class="ruby-identifier">day</span>
1979
- 120: <span class="ruby-keyword kw">end</span></pre>
1985
+ <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 115</span>
1986
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekDay</span>(<span class="ruby-identifier">name</span>)
1987
+ 116: <span class="ruby-identifier">names</span> = <span class="ruby-node">%( sun mon tue wed thu fri sat )</span>
1988
+ 117: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">day</span> = <span class="ruby-identifier">names</span>.<span class="ruby-identifier">index</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])).<span class="ruby-identifier">nil?</span>
1989
+ 118: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'weekday'</span>, <span class="ruby-node">&quot;Weekday name expected (#{names.join(', ')})&quot;</span>)
1990
+ 119: <span class="ruby-keyword kw">end</span>
1991
+ 120: <span class="ruby-identifier">day</span>
1992
+ 121: <span class="ruby-keyword kw">end</span></pre>
1980
1993
  </div>
1981
1994
 
1982
1995
  </div>