taskjuggler 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (787) hide show
  1. data/CHANGELOG +115 -0
  2. data/README.rdoc +105 -0
  3. data/examples/tutorial.tjp +21 -16
  4. data/gem_spec.rb +1 -1
  5. data/lib/{Account.rb → taskjuggler/Account.rb} +2 -3
  6. data/lib/{AccountScenario.rb → taskjuggler/AccountScenario.rb} +1 -1
  7. data/lib/taskjuggler/AlgorithmDiff.rb +311 -0
  8. data/lib/{Allocation.rb → taskjuggler/Allocation.rb} +3 -3
  9. data/lib/{AppConfig.rb → taskjuggler/AppConfig.rb} +0 -1
  10. data/lib/{AttributeBase.rb → taskjuggler/AttributeBase.rb} +1 -1
  11. data/lib/{AttributeDefinition.rb → taskjuggler/AttributeDefinition.rb} +0 -0
  12. data/lib/{Attributes.rb → taskjuggler/Attributes.rb} +19 -9
  13. data/lib/{BatchProcessor.rb → taskjuggler/BatchProcessor.rb} +0 -0
  14. data/lib/{Booking.rb → taskjuggler/Booking.rb} +0 -0
  15. data/lib/{Charge.rb → taskjuggler/Charge.rb} +1 -1
  16. data/lib/{ChargeSet.rb → taskjuggler/ChargeSet.rb} +1 -1
  17. data/lib/{DataCache.rb → taskjuggler/DataCache.rb} +0 -0
  18. data/lib/{FileList.rb → taskjuggler/FileList.rb} +0 -0
  19. data/lib/{HTMLDocument.rb → taskjuggler/HTMLDocument.rb} +1 -1
  20. data/lib/{Interval.rb → taskjuggler/Interval.rb} +1 -1
  21. data/lib/{IntervalList.rb → taskjuggler/IntervalList.rb} +1 -1
  22. data/lib/{Journal.rb → taskjuggler/Journal.rb} +2 -2
  23. data/lib/{KeywordArray.rb → taskjuggler/KeywordArray.rb} +0 -0
  24. data/lib/{KeywordDocumentation.rb → taskjuggler/KeywordDocumentation.rb} +5 -5
  25. data/lib/{Limits.rb → taskjuggler/Limits.rb} +1 -1
  26. data/lib/{Log.rb → taskjuggler/Log.rb} +0 -0
  27. data/lib/{LogFile.rb → taskjuggler/LogFile.rb} +0 -0
  28. data/lib/{LogicalExpression.rb → taskjuggler/LogicalExpression.rb} +3 -3
  29. data/lib/{LogicalFunction.rb → taskjuggler/LogicalFunction.rb} +1 -1
  30. data/lib/{LogicalOperation.rb → taskjuggler/LogicalOperation.rb} +1 -1
  31. data/lib/{MessageHandler.rb → taskjuggler/MessageHandler.rb} +3 -1
  32. data/lib/{Project.rb → taskjuggler/Project.rb} +51 -48
  33. data/lib/{ProjectFileParser.rb → taskjuggler/ProjectFileParser.rb} +25 -9
  34. data/lib/{ProjectFileScanner.rb → taskjuggler/ProjectFileScanner.rb} +5 -5
  35. data/lib/{PropertyList.rb → taskjuggler/PropertyList.rb} +0 -0
  36. data/lib/{PropertySet.rb → taskjuggler/PropertySet.rb} +3 -4
  37. data/lib/{PropertyTreeNode.rb → taskjuggler/PropertyTreeNode.rb} +157 -11
  38. data/lib/{Query.rb → taskjuggler/Query.rb} +17 -7
  39. data/lib/{RealFormat.rb → taskjuggler/RealFormat.rb} +0 -0
  40. data/lib/{Resource.rb → taskjuggler/Resource.rb} +8 -6
  41. data/lib/{ResourceScenario.rb → taskjuggler/ResourceScenario.rb} +26 -65
  42. data/lib/{RichText.rb → taskjuggler/RichText.rb} +3 -3
  43. data/lib/{RichTextDocument.rb → taskjuggler/RichText/Document.rb} +3 -3
  44. data/lib/{RichTextElement.rb → taskjuggler/RichText/Element.rb} +10 -4
  45. data/lib/{RichTextFunctionExample.rb → taskjuggler/RichText/FunctionExample.rb} +3 -3
  46. data/lib/{RichTextFunctionHandler.rb → taskjuggler/RichText/FunctionHandler.rb} +0 -0
  47. data/lib/{RichTextParser.rb → taskjuggler/RichText/Parser.rb} +6 -4
  48. data/lib/{RTFHandlers.rb → taskjuggler/RichText/RTFHandlers.rb} +4 -4
  49. data/lib/{RTFNavigator.rb → taskjuggler/RichText/RTFNavigator.rb} +3 -3
  50. data/lib/{RTFQuery.rb → taskjuggler/RichText/RTFQuery.rb} +62 -39
  51. data/lib/{RTFReport.rb → taskjuggler/RichText/RTFReport.rb} +2 -2
  52. data/lib/{RTFReportLink.rb → taskjuggler/RichText/RTFReportLink.rb} +4 -4
  53. data/lib/{RTFWithQuerySupport.rb → taskjuggler/RichText/RTFWithQuerySupport.rb} +1 -1
  54. data/lib/{RichTextScanner.rb → taskjuggler/RichText/Scanner.rb} +18 -5
  55. data/lib/{RichTextSnip.rb → taskjuggler/RichText/Snip.rb} +2 -2
  56. data/lib/{RichTextSyntaxRules.rb → taskjuggler/RichText/SyntaxRules.rb} +14 -0
  57. data/lib/{TOCEntry.rb → taskjuggler/RichText/TOCEntry.rb} +2 -2
  58. data/lib/{TableOfContents.rb → taskjuggler/RichText/TableOfContents.rb} +2 -2
  59. data/lib/{RuntimeConfig.rb → taskjuggler/RuntimeConfig.rb} +18 -18
  60. data/lib/{Scenario.rb → taskjuggler/Scenario.rb} +1 -1
  61. data/lib/{ScenarioData.rb → taskjuggler/ScenarioData.rb} +2 -3
  62. data/lib/{Scoreboard.rb → taskjuggler/Scoreboard.rb} +4 -4
  63. data/lib/{SheetHandlerBase.rb → taskjuggler/SheetHandlerBase.rb} +3 -3
  64. data/lib/{SheetReceiver.rb → taskjuggler/SheetReceiver.rb} +2 -2
  65. data/lib/{SheetSender.rb → taskjuggler/SheetSender.rb} +5 -5
  66. data/lib/{Shift.rb → taskjuggler/Shift.rb} +2 -3
  67. data/lib/{ShiftAssignments.rb → taskjuggler/ShiftAssignments.rb} +1 -1
  68. data/lib/{ShiftScenario.rb → taskjuggler/ShiftScenario.rb} +1 -1
  69. data/lib/{SimpleQueryExpander.rb → taskjuggler/SimpleQueryExpander.rb} +0 -0
  70. data/lib/{StatusSheetReceiver.rb → taskjuggler/StatusSheetReceiver.rb} +1 -1
  71. data/lib/{StatusSheetSender.rb → taskjuggler/StatusSheetSender.rb} +1 -1
  72. data/lib/{SyntaxReference.rb → taskjuggler/SyntaxReference.rb} +4 -4
  73. data/lib/{TableColumnDefinition.rb → taskjuggler/TableColumnDefinition.rb} +0 -0
  74. data/lib/{Task.rb → taskjuggler/Task.rb} +2 -2
  75. data/lib/{TaskDependency.rb → taskjuggler/TaskDependency.rb} +8 -0
  76. data/lib/{TaskJuggler.rb → taskjuggler/TaskJuggler.rb} +6 -4
  77. data/lib/{TaskScenario.rb → taskjuggler/TaskScenario.rb} +211 -150
  78. data/lib/taskjuggler/TernarySearchTree.rb +203 -0
  79. data/lib/{TextFormatter.rb → taskjuggler/TextFormatter.rb} +1 -1
  80. data/lib/{TextParser.rb → taskjuggler/TextParser.rb} +6 -6
  81. data/lib/{MacroTable.rb → taskjuggler/TextParser/MacroTable.rb} +2 -12
  82. data/lib/{TextParser → taskjuggler/TextParser}/Pattern.rb +5 -2
  83. data/lib/{TextParser → taskjuggler/TextParser}/Rule.rb +1 -1
  84. data/lib/{TextScanner.rb → taskjuggler/TextParser/Scanner.rb} +34 -32
  85. data/lib/{SourceFileInfo.rb → taskjuggler/TextParser/SourceFileInfo.rb} +1 -1
  86. data/lib/{TextParser → taskjuggler/TextParser}/StackElement.rb +0 -2
  87. data/lib/{TextParser → taskjuggler/TextParser}/State.rb +0 -0
  88. data/lib/{TextParser → taskjuggler/TextParser}/TokenDoc.rb +0 -0
  89. data/lib/{TimeSheetReceiver.rb → taskjuggler/TimeSheetReceiver.rb} +1 -1
  90. data/lib/{TimeSheetSender.rb → taskjuggler/TimeSheetSender.rb} +1 -1
  91. data/lib/{TimeSheetSummary.rb → taskjuggler/TimeSheetSummary.rb} +1 -1
  92. data/lib/{TimeSheets.rb → taskjuggler/TimeSheets.rb} +23 -16
  93. data/lib/{Tj3AppBase.rb → taskjuggler/Tj3AppBase.rb} +19 -12
  94. data/lib/{Tj3Config.rb → taskjuggler/Tj3Config.rb} +3 -3
  95. data/lib/taskjuggler/Tj3Man.rb +78 -0
  96. data/lib/{Tj3SheetAppBase.rb → taskjuggler/Tj3SheetAppBase.rb} +2 -2
  97. data/lib/{TjException.rb → taskjuggler/TjException.rb} +0 -0
  98. data/lib/{TjTime.rb → taskjuggler/TjTime.rb} +279 -234
  99. data/lib/{TjpExample.rb → taskjuggler/TjpExample.rb} +0 -0
  100. data/lib/{TjpSyntaxRules.rb → taskjuggler/TjpSyntaxRules.rb} +253 -95
  101. data/lib/{URLParameter.rb → taskjuggler/URLParameter.rb} +0 -0
  102. data/lib/{UTF8String.rb → taskjuggler/UTF8String.rb} +0 -0
  103. data/lib/{UserManual.rb → taskjuggler/UserManual.rb} +6 -6
  104. data/lib/{VimSyntax.rb → taskjuggler/VimSyntax.rb} +6 -2
  105. data/lib/{WorkingHours.rb → taskjuggler/WorkingHours.rb} +14 -22
  106. data/lib/{XMLDocument.rb → taskjuggler/XMLDocument.rb} +1 -1
  107. data/lib/{XMLElement.rb → taskjuggler/XMLElement.rb} +1 -1
  108. data/lib/taskjuggler/apps/Tj3.rb +134 -0
  109. data/lib/taskjuggler/apps/Tj3Client.rb +467 -0
  110. data/lib/taskjuggler/apps/Tj3Daemon.rb +142 -0
  111. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +56 -0
  112. data/lib/taskjuggler/apps/Tj3SsSender.rb +90 -0
  113. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +59 -0
  114. data/lib/taskjuggler/apps/Tj3TsSender.rb +77 -0
  115. data/lib/taskjuggler/apps/Tj3TsSummary.rb +86 -0
  116. data/lib/{daemon → taskjuggler/daemon}/Daemon.rb +4 -3
  117. data/lib/{daemon → taskjuggler/daemon}/ProcessIntercom.rb +2 -2
  118. data/lib/{daemon → taskjuggler/daemon}/ProjectBroker.rb +5 -5
  119. data/lib/{daemon → taskjuggler/daemon}/ProjectServer.rb +16 -16
  120. data/lib/{daemon → taskjuggler/daemon}/ReportServer.rb +6 -6
  121. data/lib/{daemon → taskjuggler/daemon}/ReportServlet.rb +2 -2
  122. data/lib/{daemon → taskjuggler/daemon}/WebServer.rb +4 -4
  123. data/lib/{daemon → taskjuggler/daemon}/WelcomePage.rb +2 -1
  124. data/lib/{deep_copy.rb → taskjuggler/deep_copy.rb} +0 -0
  125. data/lib/{reports → taskjuggler/reports}/CSVFile.rb +2 -2
  126. data/lib/{reports → taskjuggler/reports}/CollisionDetector.rb +1 -1
  127. data/lib/{reports → taskjuggler/reports}/ColumnTable.rb +1 -1
  128. data/lib/{reports → taskjuggler/reports}/GanttChart.rb +4 -4
  129. data/lib/{reports → taskjuggler/reports}/GanttContainer.rb +1 -1
  130. data/lib/{reports → taskjuggler/reports}/GanttHeader.rb +1 -1
  131. data/lib/{reports → taskjuggler/reports}/GanttHeaderScaleItem.rb +0 -0
  132. data/lib/{reports → taskjuggler/reports}/GanttLine.rb +6 -6
  133. data/lib/{reports → taskjuggler/reports}/GanttLoadStack.rb +1 -1
  134. data/lib/{reports → taskjuggler/reports}/GanttMilestone.rb +1 -1
  135. data/lib/{reports → taskjuggler/reports}/GanttRouter.rb +1 -1
  136. data/lib/{reports → taskjuggler/reports}/GanttTaskBar.rb +1 -1
  137. data/lib/{reports → taskjuggler/reports}/HTMLGraphics.rb +0 -0
  138. data/lib/{reports → taskjuggler/reports}/Navigator.rb +1 -1
  139. data/lib/{reports → taskjuggler/reports}/NikuReport.rb +3 -6
  140. data/lib/{reports → taskjuggler/reports}/Report.rb +19 -14
  141. data/lib/{reports → taskjuggler/reports}/ReportBase.rb +0 -0
  142. data/lib/{reports → taskjuggler/reports}/ReportContext.rb +0 -0
  143. data/lib/{reports → taskjuggler/reports}/ReportTable.rb +2 -2
  144. data/lib/{reports → taskjuggler/reports}/ReportTableCell.rb +0 -0
  145. data/lib/{reports → taskjuggler/reports}/ReportTableColumn.rb +0 -0
  146. data/lib/{reports → taskjuggler/reports}/ReportTableLegend.rb +0 -0
  147. data/lib/{reports → taskjuggler/reports}/ReportTableLine.rb +1 -1
  148. data/lib/{reports → taskjuggler/reports}/ResourceListRE.rb +4 -4
  149. data/lib/{reports → taskjuggler/reports}/StatusSheetReport.rb +1 -1
  150. data/lib/{reports → taskjuggler/reports}/TableReport.rb +8 -7
  151. data/lib/{reports → taskjuggler/reports}/TaskListRE.rb +4 -4
  152. data/lib/{reports → taskjuggler/reports}/TextReport.rb +1 -1
  153. data/lib/{reports → taskjuggler/reports}/TimeSheetReport.rb +1 -1
  154. data/lib/{reports → taskjuggler/reports}/TjpExportRE.rb +87 -29
  155. data/lib/tj3.rb +2 -144
  156. data/lib/tj3client.rb +2 -442
  157. data/lib/tj3d.rb +1 -133
  158. data/lib/tj3man.rb +2 -75
  159. data/lib/tj3ss_receiver.rb +2 -42
  160. data/lib/tj3ss_sender.rb +1 -76
  161. data/lib/tj3ts_receiver.rb +1 -45
  162. data/lib/tj3ts_sender.rb +1 -63
  163. data/lib/tj3ts_summary.rb +1 -72
  164. data/manual/How_To_Contribute +19 -49
  165. data/manual/Installation +65 -6
  166. data/manual/Reporting_Bugs +6 -20
  167. data/manual/TaskJuggler_Internals +8 -1
  168. data/manual/Tutorial +16 -0
  169. data/prj_cfg.rb +2 -3
  170. data/spec/IntervalList_spec.rb +2 -1
  171. data/spec/ProjectBroker_spec.rb +1 -1
  172. data/spec/TernarySearchTree_spec.rb +131 -0
  173. data/spec/TimeSheets_spec.rb +129 -0
  174. data/spec/Tj3Daemon_spec.rb +51 -0
  175. data/spec/Tj3_spec.rb +36 -0
  176. data/spec/support/DaemonControl.rb +78 -0
  177. data/spec/support/StdIoWrapper.rb +43 -0
  178. data/spec/tj3client.log +23 -0
  179. data/tasks/changelog.rake +17 -2
  180. data/tasks/csts.rake +2 -2
  181. data/tasks/manual.rake +9 -5
  182. data/tasks/missing.rake +0 -4
  183. data/tasks/rdoc.rake +2 -2
  184. data/tasks/vim.rake +9 -0
  185. data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
  186. data/test/TestSuite/CSV-Reports/celltext.tjp +1 -0
  187. data/test/TestSuite/CSV-Reports/inputs.tjp +19 -0
  188. data/test/TestSuite/CSV-Reports/project-1.tji +9 -0
  189. data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
  190. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -0
  191. data/test/TestSuite/CSV-Reports/refs/inputs.csv +6 -0
  192. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +4 -4
  193. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +22 -22
  194. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -0
  195. data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +1 -0
  196. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -0
  197. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +14 -13
  198. data/test/TestSuite/CSV-Reports/refs/targets.csv +5 -0
  199. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +15 -14
  200. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +33 -32
  201. data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -0
  202. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -0
  203. data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -0
  204. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +1 -0
  205. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -0
  206. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  207. data/test/TestSuite/CSV-Reports/targets.tjp +20 -0
  208. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  209. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  210. data/test/TestSuite/CSV-Reports/weekly.tjp +5 -2
  211. data/test/TestSuite/Export-Reports/export.tji +6 -0
  212. data/test/TestSuite/Export-Reports/refs/Account.tjp +92 -0
  213. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +38 -0
  214. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +124 -0
  215. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +50 -0
  216. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +45 -0
  217. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +18 -0
  218. data/test/TestSuite/Export-Reports/refs/Booking.tjp +48 -0
  219. data/test/TestSuite/Export-Reports/refs/Caption.tjp +65 -0
  220. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +45 -0
  221. data/test/TestSuite/Export-Reports/refs/Comments.tjp +67 -0
  222. data/test/TestSuite/Export-Reports/refs/Complete.tjp +50 -0
  223. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +41 -0
  224. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +18 -0
  225. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +24 -0
  226. data/test/TestSuite/Export-Reports/refs/DST.tjp +89 -0
  227. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +57 -0
  228. data/test/TestSuite/Export-Reports/refs/Durations.tjp +84 -0
  229. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +58 -0
  230. data/test/TestSuite/Export-Reports/refs/Flags.tjp +51 -0
  231. data/test/TestSuite/Export-Reports/refs/Gap.tjp +38 -0
  232. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +67 -0
  233. data/test/TestSuite/Export-Reports/refs/Include.tjp +58 -0
  234. data/test/TestSuite/Export-Reports/refs/Journal.tjp +28 -0
  235. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +283 -0
  236. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +617 -0
  237. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +18 -0
  238. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +57 -0
  239. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +91 -0
  240. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +18 -0
  241. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +18 -0
  242. data/test/TestSuite/Export-Reports/refs/Manager.tjp +121 -0
  243. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +59 -0
  244. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +27 -0
  245. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +30 -0
  246. data/test/TestSuite/Export-Reports/refs/Niku.tjp +218 -0
  247. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +18 -0
  248. data/test/TestSuite/Export-Reports/refs/Period.tjp +25 -0
  249. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +49 -0
  250. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +46 -0
  251. data/test/TestSuite/Export-Reports/refs/Priority.tjp +141 -0
  252. data/test/TestSuite/Export-Reports/refs/Project.tjp +18 -0
  253. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +36 -0
  254. data/test/TestSuite/Export-Reports/refs/Query.tjp +49 -0
  255. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +79 -0
  256. data/test/TestSuite/Export-Reports/refs/Reports.tjp +130 -0
  257. data/test/TestSuite/Export-Reports/refs/Resource.tjp +59 -0
  258. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +67 -0
  259. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +90 -0
  260. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +50 -0
  261. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +90 -0
  262. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +25 -0
  263. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +55 -0
  264. data/test/TestSuite/Export-Reports/refs/Select.tjp +89 -0
  265. data/test/TestSuite/Export-Reports/refs/Shift.tjp +39 -0
  266. data/test/TestSuite/Export-Reports/refs/Simple.tjp +67 -0
  267. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +95 -0
  268. data/test/TestSuite/Export-Reports/refs/String.tjp +33 -0
  269. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +41 -0
  270. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +49 -0
  271. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +75 -0
  272. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +51 -0
  273. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +81 -0
  274. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +18 -0
  275. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +69 -0
  276. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +1061 -0
  277. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +3 -1
  278. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +5 -3
  279. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +19 -19
  280. data/test/TestSuite/Scheduler/Correct/PriorityInversion.tjp +32 -0
  281. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +19 -0
  282. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +11 -0
  283. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +14 -14
  284. data/test/TestSuite/Scheduler/Correct/checks.tji +5 -0
  285. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +20 -0
  286. data/test/TestSuite/StatusSheets/boss_mail +1 -1
  287. data/test/TestSuite/StatusSheets/dev2_mail +1 -1
  288. data/test/TestSuite/StatusSheets/run +2 -3
  289. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -0
  290. data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +9 -0
  291. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +3 -1
  292. data/test/TestSuite/Syntax/Correct/Alternative.tjp +3 -1
  293. data/test/TestSuite/Syntax/Correct/AutoID.tjp +3 -1
  294. data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -0
  295. data/test/TestSuite/Syntax/Correct/Caption.tjp +3 -1
  296. data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -1
  297. data/test/TestSuite/Syntax/Correct/Comments.tjp +3 -1
  298. data/test/TestSuite/Syntax/Correct/Complete.tjp +1 -0
  299. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +2 -1
  300. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +2 -1
  301. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +3 -2
  302. data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
  303. data/test/TestSuite/Syntax/Correct/Depends1.tjp +6 -4
  304. data/test/TestSuite/Syntax/Correct/Durations.tjp +3 -1
  305. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +4 -2
  306. data/test/TestSuite/Syntax/Correct/Export.tjp +6 -4
  307. data/test/TestSuite/Syntax/Correct/Flags.tjp +3 -1
  308. data/test/TestSuite/Syntax/Correct/Freeze.tjp +2 -2
  309. data/test/TestSuite/Syntax/Correct/Gap.tjp +3 -1
  310. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +4 -2
  311. data/test/TestSuite/Syntax/Correct/Include.tjp +3 -1
  312. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -1
  313. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +13 -9
  314. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +1 -0
  315. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +3 -1
  316. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +3 -1
  317. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +3 -1
  318. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +3 -1
  319. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +1 -0
  320. data/test/TestSuite/Syntax/Correct/Manager.tjp +4 -2
  321. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +3 -1
  322. data/test/TestSuite/Syntax/Correct/Milestone.tjp +3 -1
  323. data/test/TestSuite/Syntax/Correct/MinMax.tjp +3 -1
  324. data/test/TestSuite/Syntax/Correct/Niku.tjp +1 -0
  325. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +3 -2
  326. data/test/TestSuite/Syntax/Correct/Period.tjp +1 -0
  327. data/test/TestSuite/Syntax/Correct/Persistent.tjp +3 -1
  328. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +6 -4
  329. data/test/TestSuite/Syntax/Correct/Priority.tjp +4 -2
  330. data/test/TestSuite/Syntax/Correct/Project.tjp +5 -4
  331. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +3 -2
  332. data/test/TestSuite/Syntax/Correct/Query.tjp +1 -0
  333. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +3 -1
  334. data/test/TestSuite/Syntax/Correct/Reports.tjp +7 -5
  335. data/test/TestSuite/Syntax/Correct/Resource.tjp +4 -2
  336. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +4 -2
  337. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +3 -1
  338. data/test/TestSuite/Syntax/Correct/Responsible.tjp +3 -1
  339. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +3 -1
  340. data/test/TestSuite/Syntax/Correct/Scenario.tjp +2 -1
  341. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +3 -1
  342. data/test/TestSuite/Syntax/Correct/Select.tjp +3 -1
  343. data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -2
  344. data/test/TestSuite/Syntax/Correct/Simple.tjp +3 -1
  345. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +4 -2
  346. data/test/TestSuite/Syntax/Correct/String.tjp +3 -1
  347. data/test/TestSuite/Syntax/Correct/Supplement.tjp +3 -1
  348. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +3 -2
  349. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +3 -1
  350. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +3 -1
  351. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -2
  352. data/test/TestSuite/Syntax/Correct/Vacation.tjp +5 -3
  353. data/test/TestSuite/Syntax/Correct/tutorial.tjp +23 -16
  354. data/test/TestSuite/Syntax/Errors/adopt_common_root.tjp +10 -0
  355. data/test/TestSuite/Syntax/Errors/adopt_duplicate_child.tjp +10 -0
  356. data/test/TestSuite/Syntax/Errors/adopt_duplicate_parent.tjp +10 -0
  357. data/test/TestSuite/{Scheduler/Errors/milestone_duration.tjp → Syntax/Errors/multiple_durations.tjp} +1 -1
  358. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +6 -4
  359. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +5 -3
  360. data/test/TestSuite/TimeSheets/dev2_mail1 +1 -1
  361. data/test/TestSuite/TimeSheets/dev2_mail2 +1 -1
  362. data/test/TestSuite/TimeSheets/run +2 -2
  363. data/test/TestSuite/TimeSheets/uu.txt +29 -0
  364. data/test/test_AlgorithmDiff.rb +139 -0
  365. data/test/test_BatchProcessor.rb +2 -1
  366. data/test/test_CSV-Reports.rb +30 -19
  367. data/test/test_CSVFile.rb +2 -1
  368. data/test/test_CollisionDetector.rb +2 -1
  369. data/test/test_Export-Reports.rb +128 -0
  370. data/test/test_Journal.rb +2 -1
  371. data/test/test_Limits.rb +4 -3
  372. data/test/test_LogicalExpression.rb +2 -1
  373. data/test/test_MacroTable.rb +8 -6
  374. data/test/test_Project.rb +2 -1
  375. data/test/test_ProjectFileScanner.rb +4 -3
  376. data/test/test_PropertySet.rb +2 -1
  377. data/test/test_Query.rb +3 -2
  378. data/test/test_RealFormat.rb +2 -1
  379. data/test/test_ReportGenerator.rb +3 -2
  380. data/test/test_RichText.rb +14 -3
  381. data/test/test_Scheduler.rb +2 -1
  382. data/test/test_ShiftAssignments.rb +3 -1
  383. data/test/test_SimpleQueryExpander.rb +3 -2
  384. data/test/test_Syntax.rb +2 -1
  385. data/test/test_TextFormatter.rb +2 -1
  386. data/test/test_TjTime.rb +15 -14
  387. data/test/test_TjpExample.rb +2 -1
  388. data/test/test_URLParameter.rb +2 -1
  389. data/test/test_UTF8String.rb +2 -1
  390. data/test/test_WorkingHours.rb +3 -2
  391. data/test/test_deep_copy.rb +2 -1
  392. metadata +250 -541
  393. data/README +0 -31
  394. data/benchmarks/allocatedSlots.csv +0 -334
  395. data/benchmarks/profile.clt +0 -42974
  396. data/benchmarks/profile.html +0 -61128
  397. data/doc/AppConfig.html +0 -1471
  398. data/doc/Arguments.html +0 -720
  399. data/doc/CHANGELOG.html +0 -1987
  400. data/doc/COPYING.html +0 -879
  401. data/doc/Object.html +0 -1056
  402. data/doc/README.html +0 -565
  403. data/doc/RuntimeConfig.html +0 -804
  404. data/doc/String.html +0 -913
  405. data/doc/TaskJuggler.html +0 -2512
  406. data/doc/TaskJuggler/Account.html +0 -733
  407. data/doc/TaskJuggler/AccountAttribute.html +0 -749
  408. data/doc/TaskJuggler/AccountScenario.html +0 -692
  409. data/doc/TaskJuggler/Allocation.html +0 -943
  410. data/doc/TaskJuggler/AllocationAttribute.html +0 -779
  411. data/doc/TaskJuggler/AttributeBase.html +0 -1308
  412. data/doc/TaskJuggler/AttributeDefinition.html +0 -795
  413. data/doc/TaskJuggler/AttributeOverwrite.html +0 -586
  414. data/doc/TaskJuggler/BatchProcessor.html +0 -1158
  415. data/doc/TaskJuggler/Booking.html +0 -839
  416. data/doc/TaskJuggler/BookingListAttribute.html +0 -749
  417. data/doc/TaskJuggler/BooleanAttribute.html +0 -749
  418. data/doc/TaskJuggler/CSVFile.html +0 -1108
  419. data/doc/TaskJuggler/CellSettingPattern.html +0 -680
  420. data/doc/TaskJuggler/CellSettingPatternList.html +0 -729
  421. data/doc/TaskJuggler/Charge.html +0 -757
  422. data/doc/TaskJuggler/ChargeListAttribute.html +0 -713
  423. data/doc/TaskJuggler/ChargeSet.html +0 -929
  424. data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -758
  425. data/doc/TaskJuggler/CollisionDetector.html +0 -1069
  426. data/doc/TaskJuggler/ColumnListAttribute.html +0 -713
  427. data/doc/TaskJuggler/ColumnTable.html +0 -743
  428. data/doc/TaskJuggler/Daemon.html +0 -798
  429. data/doc/TaskJuggler/DataCache.html +0 -930
  430. data/doc/TaskJuggler/DataCacheEntry.html +0 -717
  431. data/doc/TaskJuggler/DateAttribute.html +0 -717
  432. data/doc/TaskJuggler/DefinitionListAttribute.html +0 -635
  433. data/doc/TaskJuggler/DependencyListAttribute.html +0 -753
  434. data/doc/TaskJuggler/DurationAttribute.html +0 -750
  435. data/doc/TaskJuggler/FileList.html +0 -731
  436. data/doc/TaskJuggler/FileRecord.html +0 -682
  437. data/doc/TaskJuggler/FixnumAttribute.html +0 -671
  438. data/doc/TaskJuggler/FlagListAttribute.html +0 -749
  439. data/doc/TaskJuggler/FloatAttribute.html +0 -713
  440. data/doc/TaskJuggler/FormatListAttribute.html +0 -677
  441. data/doc/TaskJuggler/GanttChart.html +0 -1467
  442. data/doc/TaskJuggler/GanttContainer.html +0 -925
  443. data/doc/TaskJuggler/GanttHeader.html +0 -928
  444. data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -742
  445. data/doc/TaskJuggler/GanttLine.html +0 -1305
  446. data/doc/TaskJuggler/GanttLoadStack.html +0 -808
  447. data/doc/TaskJuggler/GanttMilestone.html +0 -906
  448. data/doc/TaskJuggler/GanttRouter.html +0 -1118
  449. data/doc/TaskJuggler/GanttTaskBar.html +0 -927
  450. data/doc/TaskJuggler/HTMLDocument.html +0 -761
  451. data/doc/TaskJuggler/HTMLGraphics.html +0 -817
  452. data/doc/TaskJuggler/Interval.html +0 -1056
  453. data/doc/TaskJuggler/IntervalList.html +0 -777
  454. data/doc/TaskJuggler/IntervalListAttribute.html +0 -753
  455. data/doc/TaskJuggler/JobInfo.html +0 -923
  456. data/doc/TaskJuggler/Journal.html +0 -1158
  457. data/doc/TaskJuggler/JournalEntry.html +0 -821
  458. data/doc/TaskJuggler/JournalEntryList.html +0 -1071
  459. data/doc/TaskJuggler/KeywordArray.html +0 -676
  460. data/doc/TaskJuggler/KeywordDocumentation.html +0 -1838
  461. data/doc/TaskJuggler/Limits.html +0 -1016
  462. data/doc/TaskJuggler/Limits/Limit.html +0 -927
  463. data/doc/TaskJuggler/LimitsAttribute.html +0 -714
  464. data/doc/TaskJuggler/ListAttributeBase.html +0 -683
  465. data/doc/TaskJuggler/Log.html +0 -1143
  466. data/doc/TaskJuggler/LogFile.html +0 -960
  467. data/doc/TaskJuggler/LogicalAttribute.html +0 -740
  468. data/doc/TaskJuggler/LogicalExpression.html +0 -781
  469. data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -671
  470. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -671
  471. data/doc/TaskJuggler/LogicalFlag.html +0 -723
  472. data/doc/TaskJuggler/LogicalFunction.html +0 -1306
  473. data/doc/TaskJuggler/LogicalOperation.html +0 -1124
  474. data/doc/TaskJuggler/Macro.html +0 -688
  475. data/doc/TaskJuggler/MacroTable.html +0 -852
  476. data/doc/TaskJuggler/ManagerResponsibilities.html +0 -716
  477. data/doc/TaskJuggler/ManagerStatusRecord.html +0 -720
  478. data/doc/TaskJuggler/Message.html +0 -817
  479. data/doc/TaskJuggler/MessageHandler.html +0 -1036
  480. data/doc/TaskJuggler/Navigator.html +0 -922
  481. data/doc/TaskJuggler/NavigatorElement.html +0 -974
  482. data/doc/TaskJuggler/NikuProject.html +0 -704
  483. data/doc/TaskJuggler/NikuReport.html +0 -1449
  484. data/doc/TaskJuggler/NikuResource.html +0 -674
  485. data/doc/TaskJuggler/NodeListAttribute.html +0 -635
  486. data/doc/TaskJuggler/PlaceHolderCell.html +0 -728
  487. data/doc/TaskJuggler/ProcessIntercom.html +0 -997
  488. data/doc/TaskJuggler/ProcessIntercomIface.html +0 -753
  489. data/doc/TaskJuggler/Project.html +0 -3333
  490. data/doc/TaskJuggler/ProjectBroker.html +0 -1656
  491. data/doc/TaskJuggler/ProjectBrokerIface.html +0 -831
  492. data/doc/TaskJuggler/ProjectFileParser.html +0 -2033
  493. data/doc/TaskJuggler/ProjectFileScanner.html +0 -1816
  494. data/doc/TaskJuggler/ProjectRecord.html +0 -958
  495. data/doc/TaskJuggler/ProjectServer.html +0 -1229
  496. data/doc/TaskJuggler/ProjectServerIface.html +0 -848
  497. data/doc/TaskJuggler/PropertyAttribute.html +0 -671
  498. data/doc/TaskJuggler/PropertyList.html +0 -1379
  499. data/doc/TaskJuggler/PropertySet.html +0 -1799
  500. data/doc/TaskJuggler/PropertyTreeNode.html +0 -2579
  501. data/doc/TaskJuggler/Query.html +0 -1663
  502. data/doc/TaskJuggler/RTFHandlers.html +0 -644
  503. data/doc/TaskJuggler/RTFNavigator.html +0 -772
  504. data/doc/TaskJuggler/RTFQuery.html +0 -1040
  505. data/doc/TaskJuggler/RTFReport.html +0 -800
  506. data/doc/TaskJuggler/RTFReportLink.html +0 -792
  507. data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -682
  508. data/doc/TaskJuggler/RealFormat.html +0 -785
  509. data/doc/TaskJuggler/RealFormatAttribute.html +0 -635
  510. data/doc/TaskJuggler/ReferenceAttribute.html +0 -824
  511. data/doc/TaskJuggler/Report.html +0 -1477
  512. data/doc/TaskJuggler/ReportBase.html +0 -1246
  513. data/doc/TaskJuggler/ReportContext.html +0 -816
  514. data/doc/TaskJuggler/ReportServer.html +0 -1048
  515. data/doc/TaskJuggler/ReportServerIface.html +0 -882
  516. data/doc/TaskJuggler/ReportServerRecord.html +0 -761
  517. data/doc/TaskJuggler/ReportServlet.html +0 -1024
  518. data/doc/TaskJuggler/ReportTable.html +0 -1159
  519. data/doc/TaskJuggler/ReportTableCell.html +0 -1646
  520. data/doc/TaskJuggler/ReportTableColumn.html +0 -870
  521. data/doc/TaskJuggler/ReportTableLegend.html +0 -1040
  522. data/doc/TaskJuggler/ReportTableLine.html +0 -1047
  523. data/doc/TaskJuggler/Resource.html +0 -972
  524. data/doc/TaskJuggler/ResourceListAttribute.html +0 -810
  525. data/doc/TaskJuggler/ResourceListRE.html +0 -717
  526. data/doc/TaskJuggler/ResourceScenario.html +0 -2599
  527. data/doc/TaskJuggler/RichText.html +0 -859
  528. data/doc/TaskJuggler/RichTextAttribute.html +0 -785
  529. data/doc/TaskJuggler/RichTextDocument.html +0 -1018
  530. data/doc/TaskJuggler/RichTextElement.html +0 -1754
  531. data/doc/TaskJuggler/RichTextFunctionExample.html +0 -779
  532. data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -730
  533. data/doc/TaskJuggler/RichTextImage.html +0 -692
  534. data/doc/TaskJuggler/RichTextIntermediate.html +0 -1265
  535. data/doc/TaskJuggler/RichTextParser.html +0 -847
  536. data/doc/TaskJuggler/RichTextScanner.html +0 -1469
  537. data/doc/TaskJuggler/RichTextSnip.html +0 -980
  538. data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2018
  539. data/doc/TaskJuggler/Scenario.html +0 -636
  540. data/doc/TaskJuggler/ScenarioData.html +0 -818
  541. data/doc/TaskJuggler/ScenarioListAttribute.html +0 -713
  542. data/doc/TaskJuggler/Scoreboard.html +0 -1181
  543. data/doc/TaskJuggler/SheetHandlerBase.html +0 -1275
  544. data/doc/TaskJuggler/SheetReceiver.html +0 -1368
  545. data/doc/TaskJuggler/SheetSender.html +0 -1134
  546. data/doc/TaskJuggler/Shift.html +0 -731
  547. data/doc/TaskJuggler/ShiftAssignment.html +0 -988
  548. data/doc/TaskJuggler/ShiftAssignments.html +0 -1393
  549. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -714
  550. data/doc/TaskJuggler/ShiftScenario.html +0 -762
  551. data/doc/TaskJuggler/SimpleQueryExpander.html +0 -713
  552. data/doc/TaskJuggler/SortListAttribute.html +0 -671
  553. data/doc/TaskJuggler/SourceFileInfo.html +0 -740
  554. data/doc/TaskJuggler/StatusSheetReceiver.html +0 -658
  555. data/doc/TaskJuggler/StatusSheetReport.html +0 -910
  556. data/doc/TaskJuggler/StatusSheetSender.html +0 -788
  557. data/doc/TaskJuggler/StringAttribute.html +0 -713
  558. data/doc/TaskJuggler/SymbolAttribute.html +0 -671
  559. data/doc/TaskJuggler/SyntaxReference.html +0 -1220
  560. data/doc/TaskJuggler/TOCEntry.html +0 -816
  561. data/doc/TaskJuggler/TSResourceRecord.html +0 -712
  562. data/doc/TaskJuggler/TSTaskRecord.html +0 -724
  563. data/doc/TaskJuggler/TableColumnDefinition.html +0 -928
  564. data/doc/TaskJuggler/TableOfContents.html +0 -770
  565. data/doc/TaskJuggler/TableReport.html +0 -2533
  566. data/doc/TaskJuggler/Task.html +0 -865
  567. data/doc/TaskJuggler/TaskDependency.html +0 -772
  568. data/doc/TaskJuggler/TaskListAttribute.html +0 -753
  569. data/doc/TaskJuggler/TaskListRE.html +0 -716
  570. data/doc/TaskJuggler/TaskScenario.html +0 -4959
  571. data/doc/TaskJuggler/TextFormatter.html +0 -953
  572. data/doc/TaskJuggler/TextParser.html +0 -1773
  573. data/doc/TaskJuggler/TextParser/Pattern.html +0 -1717
  574. data/doc/TaskJuggler/TextParser/Rule.html +0 -1399
  575. data/doc/TaskJuggler/TextParser/StackElement.html +0 -922
  576. data/doc/TaskJuggler/TextParser/State.html +0 -995
  577. data/doc/TaskJuggler/TextParser/StateTransition.html +0 -788
  578. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -691
  579. data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -722
  580. data/doc/TaskJuggler/TextReport.html +0 -901
  581. data/doc/TaskJuggler/TextScanner.html +0 -1482
  582. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -641
  583. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +0 -707
  584. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +0 -704
  585. data/doc/TaskJuggler/TextScanner/StreamHandle.html +0 -1036
  586. data/doc/TaskJuggler/TimeSheet.html +0 -1232
  587. data/doc/TaskJuggler/TimeSheetReceiver.html +0 -655
  588. data/doc/TaskJuggler/TimeSheetRecord.html +0 -1395
  589. data/doc/TaskJuggler/TimeSheetReport.html +0 -991
  590. data/doc/TaskJuggler/TimeSheetSender.html +0 -680
  591. data/doc/TaskJuggler/TimeSheetSummary.html +0 -935
  592. data/doc/TaskJuggler/TimeSheets.html +0 -716
  593. data/doc/TaskJuggler/Tj3AppBase.html +0 -831
  594. data/doc/TaskJuggler/Tj3Client.html +0 -1477
  595. data/doc/TaskJuggler/Tj3Daemon.html +0 -884
  596. data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -738
  597. data/doc/TaskJuggler/Tj3SsReceiver.html +0 -724
  598. data/doc/TaskJuggler/Tj3SsSender.html +0 -757
  599. data/doc/TaskJuggler/Tj3TsReceiver.html +0 -724
  600. data/doc/TaskJuggler/Tj3TsSender.html +0 -744
  601. data/doc/TaskJuggler/Tj3TsSummary.html +0 -752
  602. data/doc/TaskJuggler/TjException.html +0 -672
  603. data/doc/TaskJuggler/TjTime.html +0 -2807
  604. data/doc/TaskJuggler/TjpExample.html +0 -877
  605. data/doc/TaskJuggler/TjpExportRE.html +0 -1598
  606. data/doc/TaskJuggler/TjpSyntaxRules.html +0 -13611
  607. data/doc/TaskJuggler/URLParameter.html +0 -671
  608. data/doc/TaskJuggler/UserManual.html +0 -1188
  609. data/doc/TaskJuggler/VimSyntax.html +0 -1044
  610. data/doc/TaskJuggler/WebServer.html +0 -737
  611. data/doc/TaskJuggler/WelcomePage.html +0 -769
  612. data/doc/TaskJuggler/WorkingHours.html +0 -1207
  613. data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -736
  614. data/doc/TaskJuggler/XMLBlob.html +0 -687
  615. data/doc/TaskJuggler/XMLComment.html +0 -682
  616. data/doc/TaskJuggler/XMLDocument.html +0 -774
  617. data/doc/TaskJuggler/XMLElement.html +0 -942
  618. data/doc/TaskJuggler/XMLNamedText.html +0 -643
  619. data/doc/TaskJuggler/XMLText.html +0 -697
  620. data/doc/index.html +0 -4127
  621. data/doc/lib/AccountScenario_rb.html +0 -69
  622. data/doc/lib/Account_rb.html +0 -71
  623. data/doc/lib/Allocation_rb.html +0 -71
  624. data/doc/lib/AppConfig_rb.html +0 -71
  625. data/doc/lib/AttributeBase_rb.html +0 -69
  626. data/doc/lib/AttributeDefinition_rb.html +0 -67
  627. data/doc/lib/Attributes_rb.html +0 -83
  628. data/doc/lib/BatchProcessor_rb.html +0 -71
  629. data/doc/lib/Booking_rb.html +0 -67
  630. data/doc/lib/ChargeSet_rb.html +0 -69
  631. data/doc/lib/Charge_rb.html +0 -69
  632. data/doc/lib/DataCache_rb.html +0 -71
  633. data/doc/lib/FileList_rb.html +0 -67
  634. data/doc/lib/HTMLDocument_rb.html +0 -69
  635. data/doc/lib/IntervalList_rb.html +0 -69
  636. data/doc/lib/Interval_rb.html +0 -69
  637. data/doc/lib/Journal_rb.html +0 -67
  638. data/doc/lib/KeywordArray_rb.html +0 -67
  639. data/doc/lib/KeywordDocumentation_rb.html +0 -77
  640. data/doc/lib/Limits_rb.html +0 -69
  641. data/doc/lib/LogFile_rb.html +0 -69
  642. data/doc/lib/Log_rb.html +0 -71
  643. data/doc/lib/LogicalExpression_rb.html +0 -73
  644. data/doc/lib/LogicalFunction_rb.html +0 -69
  645. data/doc/lib/LogicalOperation_rb.html +0 -69
  646. data/doc/lib/MacroTable_rb.html +0 -73
  647. data/doc/lib/MessageHandler_rb.html +0 -67
  648. data/doc/lib/ProjectFileParser_rb.html +0 -77
  649. data/doc/lib/ProjectFileScanner_rb.html +0 -69
  650. data/doc/lib/Project_rb.html +0 -113
  651. data/doc/lib/PropertyList_rb.html +0 -67
  652. data/doc/lib/PropertySet_rb.html +0 -71
  653. data/doc/lib/PropertyTreeNode_rb.html +0 -67
  654. data/doc/lib/Query_rb.html +0 -69
  655. data/doc/lib/RTFHandlers_rb.html +0 -75
  656. data/doc/lib/RTFNavigator_rb.html +0 -73
  657. data/doc/lib/RTFQuery_rb.html +0 -73
  658. data/doc/lib/RTFReportLink_rb.html +0 -75
  659. data/doc/lib/RTFReport_rb.html +0 -71
  660. data/doc/lib/RTFWithQuerySupport_rb.html +0 -69
  661. data/doc/lib/RealFormat_rb.html +0 -67
  662. data/doc/lib/ResourceScenario_rb.html +0 -69
  663. data/doc/lib/Resource_rb.html +0 -71
  664. data/doc/lib/RichTextDocument_rb.html +0 -73
  665. data/doc/lib/RichTextElement_rb.html +0 -75
  666. data/doc/lib/RichTextFunctionExample_rb.html +0 -73
  667. data/doc/lib/RichTextFunctionHandler_rb.html +0 -67
  668. data/doc/lib/RichTextParser_rb.html +0 -73
  669. data/doc/lib/RichTextScanner_rb.html +0 -71
  670. data/doc/lib/RichTextSnip_rb.html +0 -71
  671. data/doc/lib/RichTextSyntaxRules_rb.html +0 -67
  672. data/doc/lib/RichText_rb.html +0 -73
  673. data/doc/lib/RuntimeConfig_rb.html +0 -69
  674. data/doc/lib/ScenarioData_rb.html +0 -71
  675. data/doc/lib/Scenario_rb.html +0 -69
  676. data/doc/lib/Scoreboard_rb.html +0 -69
  677. data/doc/lib/SheetHandlerBase_rb.html +0 -75
  678. data/doc/lib/SheetReceiver_rb.html +0 -79
  679. data/doc/lib/SheetSender_rb.html +0 -77
  680. data/doc/lib/ShiftAssignments_rb.html +0 -71
  681. data/doc/lib/ShiftScenario_rb.html +0 -69
  682. data/doc/lib/Shift_rb.html +0 -71
  683. data/doc/lib/SimpleQueryExpander_rb.html +0 -69
  684. data/doc/lib/SourceFileInfo_rb.html +0 -67
  685. data/doc/lib/StatusSheetReceiver_rb.html +0 -69
  686. data/doc/lib/StatusSheetSender_rb.html +0 -69
  687. data/doc/lib/SyntaxReference_rb.html +0 -75
  688. data/doc/lib/TOCEntry_rb.html +0 -71
  689. data/doc/lib/TableColumnDefinition_rb.html +0 -67
  690. data/doc/lib/TableOfContents_rb.html +0 -71
  691. data/doc/lib/TaskDependency_rb.html +0 -67
  692. data/doc/lib/TaskJuggler_rb.html +0 -75
  693. data/doc/lib/TaskScenario_rb.html +0 -71
  694. data/doc/lib/Task_rb.html +0 -71
  695. data/doc/lib/TextFormatter_rb.html +0 -69
  696. data/doc/lib/TextParser/Pattern_rb.html +0 -71
  697. data/doc/lib/TextParser/Rule_rb.html +0 -69
  698. data/doc/lib/TextParser/StackElement_rb.html +0 -69
  699. data/doc/lib/TextParser/State_rb.html +0 -67
  700. data/doc/lib/TextParser/TokenDoc_rb.html +0 -67
  701. data/doc/lib/TextParser_rb.html +0 -79
  702. data/doc/lib/TextScanner_rb.html +0 -83
  703. data/doc/lib/TimeSheetReceiver_rb.html +0 -69
  704. data/doc/lib/TimeSheetSender_rb.html +0 -69
  705. data/doc/lib/TimeSheetSummary_rb.html +0 -69
  706. data/doc/lib/TimeSheets_rb.html +0 -67
  707. data/doc/lib/Tj3AppBase_rb.html +0 -79
  708. data/doc/lib/Tj3Config_rb.html +0 -71
  709. data/doc/lib/Tj3SheetAppBase_rb.html +0 -69
  710. data/doc/lib/TjException_rb.html +0 -67
  711. data/doc/lib/TjTime_rb.html +0 -71
  712. data/doc/lib/TjpExample_rb.html +0 -69
  713. data/doc/lib/TjpSyntaxRules_rb.html +0 -67
  714. data/doc/lib/URLParameter_rb.html +0 -69
  715. data/doc/lib/UTF8String_rb.html +0 -67
  716. data/doc/lib/UserManual_rb.html +0 -79
  717. data/doc/lib/VimSyntax_rb.html +0 -69
  718. data/doc/lib/WorkingHours_rb.html +0 -71
  719. data/doc/lib/XMLDocument_rb.html +0 -69
  720. data/doc/lib/XMLElement_rb.html +0 -69
  721. data/doc/lib/daemon/Daemon_rb.html +0 -69
  722. data/doc/lib/daemon/ProcessIntercom_rb.html +0 -71
  723. data/doc/lib/daemon/ProjectBroker_rb.html +0 -83
  724. data/doc/lib/daemon/ProjectServer_rb.html +0 -85
  725. data/doc/lib/daemon/ReportServer_rb.html +0 -73
  726. data/doc/lib/daemon/ReportServlet_rb.html +0 -69
  727. data/doc/lib/daemon/WebServer_rb.html +0 -81
  728. data/doc/lib/daemon/WelcomePage_rb.html +0 -71
  729. data/doc/lib/deep_copy_rb.html +0 -67
  730. data/doc/lib/exchangebug_rb.html +0 -69
  731. data/doc/lib/reports/CSVFile_rb.html +0 -69
  732. data/doc/lib/reports/CollisionDetector_rb.html +0 -69
  733. data/doc/lib/reports/ColumnTable_rb.html +0 -69
  734. data/doc/lib/reports/GanttChart_rb.html +0 -75
  735. data/doc/lib/reports/GanttContainer_rb.html +0 -69
  736. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +0 -67
  737. data/doc/lib/reports/GanttHeader_rb.html +0 -69
  738. data/doc/lib/reports/GanttLine_rb.html +0 -79
  739. data/doc/lib/reports/GanttLoadStack_rb.html +0 -69
  740. data/doc/lib/reports/GanttMilestone_rb.html +0 -69
  741. data/doc/lib/reports/GanttRouter_rb.html +0 -69
  742. data/doc/lib/reports/GanttTaskBar_rb.html +0 -69
  743. data/doc/lib/reports/HTMLGraphics_rb.html +0 -67
  744. data/doc/lib/reports/Navigator_rb.html +0 -69
  745. data/doc/lib/reports/NikuReport_rb.html +0 -71
  746. data/doc/lib/reports/ReportBase_rb.html +0 -67
  747. data/doc/lib/reports/ReportContext_rb.html +0 -67
  748. data/doc/lib/reports/ReportTableCell_rb.html +0 -67
  749. data/doc/lib/reports/ReportTableColumn_rb.html +0 -67
  750. data/doc/lib/reports/ReportTableLegend_rb.html +0 -67
  751. data/doc/lib/reports/ReportTableLine_rb.html +0 -69
  752. data/doc/lib/reports/ReportTable_rb.html +0 -71
  753. data/doc/lib/reports/Report_rb.html +0 -93
  754. data/doc/lib/reports/ResourceListRE_rb.html +0 -75
  755. data/doc/lib/reports/StatusSheetReport_rb.html +0 -69
  756. data/doc/lib/reports/TableReport_rb.html +0 -77
  757. data/doc/lib/reports/TaskListRE_rb.html +0 -75
  758. data/doc/lib/reports/TextReport_rb.html +0 -69
  759. data/doc/lib/reports/TimeSheetReport_rb.html +0 -69
  760. data/doc/lib/reports/TjpExportRE_rb.html +0 -69
  761. data/doc/lib/ruby-signal-bug_rb.html +0 -69
  762. data/doc/lib/test_rb.html +0 -73
  763. data/doc/lib/tj3_rb.html +0 -75
  764. data/doc/lib/tj3client_rb.html +0 -75
  765. data/doc/lib/tj3d_rb.html +0 -75
  766. data/doc/lib/tj3man_rb.html +0 -75
  767. data/doc/lib/tj3ss_receiver_rb.html +0 -71
  768. data/doc/lib/tj3ss_sender_rb.html +0 -71
  769. data/doc/lib/tj3ts_receiver_rb.html +0 -71
  770. data/doc/lib/tj3ts_sender_rb.html +0 -71
  771. data/doc/lib/tj3ts_summary_rb.html +0 -71
  772. data/doc/rdoc.css +0 -706
  773. data/lib/test.rb +0 -19
  774. data/setup.rb +0 -1585
  775. data/test/TestSuite/CSV-Reports/genrefs +0 -6
  776. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -2922
  777. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  778. data/test/TestSuite/Scheduler/Correct/Container.html +0 -513
  779. data/test/TestSuite/Scheduler/Correct/Precedes.html +0 -834
  780. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -429
  781. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  782. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  783. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +0 -8
  784. data/test/TestSuite/Syntax/Correct/ReleasePlan.html +0 -160
  785. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
  786. data/test/TestSuite/Syntax/Correct/ResourceRoot.html +0 -108
  787. data/test/TestSuite/Syntax/Correct/niku.html +0 -67
@@ -1,2033 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
-
8
- <title>Class: TaskJuggler::ProjectFileParser</title>
9
-
10
- <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
-
12
- <script src="../js/jquery.js" type="text/javascript"
13
- charset="utf-8"></script>
14
- <script src="../js/thickbox-compressed.js" type="text/javascript"
15
- charset="utf-8"></script>
16
- <script src="../js/quicksearch.js" type="text/javascript"
17
- charset="utf-8"></script>
18
- <script src="../js/darkfish.js" type="text/javascript"
19
- charset="utf-8"></script>
20
-
21
- </head>
22
- <body class="class">
23
-
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="../index.html">Home</a>
29
- <a href="../index.html#classes">Classes</a>
30
- <a href="../index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="file-metadata">
36
- <div id="file-list-section" class="section">
37
- <h3 class="section-header">In Files</h3>
38
- <div class="section-body">
39
- <ul>
40
-
41
- <li><a href="../lib/ProjectFileParser_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
- class="thickbox" title="lib/ProjectFileParser.rb">lib/ProjectFileParser.rb</a></li>
43
-
44
- </ul>
45
- </div>
46
- </div>
47
-
48
-
49
- </div>
50
-
51
- <div id="class-metadata">
52
-
53
- <!-- Parent Class -->
54
-
55
- <div id="parent-class-section" class="section">
56
- <h3 class="section-header">Parent</h3>
57
-
58
- <p class="link"><a href="TextParser.html">TaskJuggler::TextParser</a></p>
59
-
60
- </div>
61
-
62
-
63
- <!-- Namespace Contents -->
64
-
65
-
66
- <!-- Method Quickref -->
67
-
68
- <div id="method-list-section" class="section">
69
- <h3 class="section-header">Methods</h3>
70
- <ul class="link-list">
71
-
72
- <li><a href="#method-c-new">::new</a></li>
73
-
74
- <li><a href="#method-i-allOrNothingListRule">#allOrNothingListRule</a></li>
75
-
76
- <li><a href="#method-i-also">#also</a></li>
77
-
78
- <li><a href="#method-i-arg">#arg</a></li>
79
-
80
- <li><a href="#method-i-checkBooking">#checkBooking</a></li>
81
-
82
- <li><a href="#method-i-checkContainer">#checkContainer</a></li>
83
-
84
- <li><a href="#method-i-checkInterval">#checkInterval</a></li>
85
-
86
- <li><a href="#method-i-close">#close</a></li>
87
-
88
- <li><a href="#method-i-columnTitle">#columnTitle</a></li>
89
-
90
- <li><a href="#method-i-commaListRule">#commaListRule</a></li>
91
-
92
- <li><a href="#method-i-descr">#descr</a></li>
93
-
94
- <li><a href="#method-i-doc">#doc</a></li>
95
-
96
- <li><a href="#method-i-example">#example</a></li>
97
-
98
- <li><a href="#method-i-extendPropertySetDefinition">#extendPropertySetDefinition</a></li>
99
-
100
- <li><a href="#method-i-initFileStack">#initFileStack</a></li>
101
-
102
- <li><a href="#method-i-lastSyntaxToken">#lastSyntaxToken</a></li>
103
-
104
- <li><a href="#method-i-listRule">#listRule</a></li>
105
-
106
- <li><a href="#method-i-newReport">#newReport</a></li>
107
-
108
- <li><a href="#method-i-newRichText">#newRichText</a></li>
109
-
110
- <li><a href="#method-i-nextToken">#nextToken</a></li>
111
-
112
- <li><a href="#method-i-open">#open</a></li>
113
-
114
- <li><a href="#method-i-optionsRule">#optionsRule</a></li>
115
-
116
- <li><a href="#method-i-parseReportAttributes">#parseReportAttributes</a></li>
117
-
118
- <li><a href="#method-i-popFileStack">#popFileStack</a></li>
119
-
120
- <li><a href="#method-i-pushFileStack">#pushFileStack</a></li>
121
-
122
- <li><a href="#method-i-returnToken">#returnToken</a></li>
123
-
124
- <li><a href="#method-i-setGlobalMacros">#setGlobalMacros</a></li>
125
-
126
- <li><a href="#method-i-setLimit">#setLimit</a></li>
127
-
128
- <li><a href="#method-i-singlePattern">#singlePattern</a></li>
129
-
130
- <li><a href="#method-i-weekDay">#weekDay</a></li>
131
-
132
- </ul>
133
- </div>
134
-
135
-
136
- <!-- Included Modules -->
137
-
138
- <div id="includes-section" class="section">
139
- <h3 class="section-header">Included Modules</h3>
140
- <ul class="link-list">
141
-
142
-
143
- <li><span class="include">TjpSyntaxRules</span></li>
144
-
145
-
146
- </ul>
147
- </div>
148
-
149
- </div>
150
-
151
- <div id="project-metadata">
152
-
153
-
154
- <div id="fileindex-section" class="section project-section">
155
- <h3 class="section-header">Files</h3>
156
- <ul>
157
-
158
- <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
159
-
160
- <li class="file"><a href="../COPYING.html">COPYING</a></li>
161
-
162
- <li class="file"><a href="../README.html">README</a></li>
163
-
164
- </ul>
165
- </div>
166
-
167
-
168
- <div id="classindex-section" class="section project-section">
169
- <h3 class="section-header">Class Index
170
- <span class="search-toggle"><img src="../images/find.png"
171
- height="16" width="16" alt="[+]"
172
- title="show/hide quicksearch" /></span></h3>
173
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
174
- <fieldset>
175
- <legend>Quicksearch</legend>
176
- <input type="text" name="quicksearch" value=""
177
- class="quicksearch-field" />
178
- </fieldset>
179
- </form>
180
-
181
- <ul class="link-list">
182
-
183
- <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
184
-
185
- <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
186
-
187
- <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
188
-
189
- <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
190
-
191
- <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
192
-
193
- <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
194
-
195
- <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
196
-
197
- <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
198
-
199
- <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
200
-
201
- <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
202
-
203
- <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
204
-
205
- <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
206
-
207
- <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
208
-
209
- <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
210
-
211
- <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
212
-
213
- <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
214
-
215
- <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
216
-
217
- <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
218
-
219
- <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
220
-
221
- <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
222
-
223
- <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
224
-
225
- <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
226
-
227
- <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
228
-
229
- <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
230
-
231
- <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
232
-
233
- <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
234
-
235
- <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
236
-
237
- <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
238
-
239
- <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
240
-
241
- <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
242
-
243
- <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
244
-
245
- <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
246
-
247
- <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
248
-
249
- <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
250
-
251
- <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
252
-
253
- <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
254
-
255
- <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
256
-
257
- <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
258
-
259
- <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
260
-
261
- <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
262
-
263
- <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
264
-
265
- <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
266
-
267
- <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
268
-
269
- <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
270
-
271
- <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
272
-
273
- <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
274
-
275
- <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
276
-
277
- <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
278
-
279
- <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
280
-
281
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
282
-
283
- <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
284
-
285
- <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
286
-
287
- <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
288
-
289
- <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
290
-
291
- <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
292
-
293
- <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
294
-
295
- <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
296
-
297
- <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
298
-
299
- <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
300
-
301
- <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
302
-
303
- <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
304
-
305
- <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
306
-
307
- <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
308
-
309
- <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
310
-
311
- <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
312
-
313
- <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
314
-
315
- <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
316
-
317
- <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
318
-
319
- <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
320
-
321
- <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
322
-
323
- <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
324
-
325
- <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
326
-
327
- <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
328
-
329
- <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
330
-
331
- <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
332
-
333
- <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
334
-
335
- <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
336
-
337
- <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
338
-
339
- <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
340
-
341
- <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
342
-
343
- <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
344
-
345
- <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
346
-
347
- <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
348
-
349
- <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
350
-
351
- <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
352
-
353
- <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
354
-
355
- <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
356
-
357
- <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
358
-
359
- <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
360
-
361
- <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
362
-
363
- <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
364
-
365
- <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
366
-
367
- <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
368
-
369
- <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
370
-
371
- <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
372
-
373
- <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
374
-
375
- <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
376
-
377
- <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
378
-
379
- <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
380
-
381
- <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
382
-
383
- <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
384
-
385
- <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
386
-
387
- <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
388
-
389
- <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
390
-
391
- <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
392
-
393
- <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
394
-
395
- <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
396
-
397
- <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
398
-
399
- <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
400
-
401
- <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
402
-
403
- <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
404
-
405
- <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
406
-
407
- <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
408
-
409
- <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
410
-
411
- <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
412
-
413
- <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
414
-
415
- <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
416
-
417
- <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
418
-
419
- <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
420
-
421
- <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
422
-
423
- <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
424
-
425
- <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
426
-
427
- <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
428
-
429
- <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
430
-
431
- <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
432
-
433
- <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
434
-
435
- <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
436
-
437
- <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
438
-
439
- <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
440
-
441
- <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
442
-
443
- <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
444
-
445
- <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
446
-
447
- <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
448
-
449
- <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
450
-
451
- <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
452
-
453
- <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
454
-
455
- <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
456
-
457
- <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
458
-
459
- <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
460
-
461
- <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
462
-
463
- <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
464
-
465
- <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
466
-
467
- <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
468
-
469
- <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
470
-
471
- <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
472
-
473
- <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
474
-
475
- <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
476
-
477
- <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
478
-
479
- <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
480
-
481
- <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
482
-
483
- <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
484
-
485
- <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
486
-
487
- <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
488
-
489
- <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
490
-
491
- <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
492
-
493
- <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
494
-
495
- <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
496
-
497
- <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
498
-
499
- <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
500
-
501
- <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
502
-
503
- <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
504
-
505
- <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
506
-
507
- <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
508
-
509
- <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
510
-
511
- <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
512
-
513
- <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
514
-
515
- <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
516
-
517
- <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
518
-
519
- <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
520
-
521
- <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
522
-
523
- <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
524
-
525
- <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
526
-
527
- <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
528
-
529
- <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
530
-
531
- <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
532
-
533
- <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
534
-
535
- <li><a href="../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
536
-
537
- <li><a href="../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
538
-
539
- <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
540
-
541
- <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
542
-
543
- <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
544
-
545
- <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
546
-
547
- <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
548
-
549
- <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
550
-
551
- <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
552
-
553
- <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
554
-
555
- <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
556
-
557
- <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
558
-
559
- <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
560
-
561
- <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
562
-
563
- <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
564
-
565
- <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
566
-
567
- <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
568
-
569
- <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
570
-
571
- <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
572
-
573
- <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
574
-
575
- <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
576
-
577
- <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
578
-
579
- <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
580
-
581
- <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
582
-
583
- <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
584
-
585
- <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
586
-
587
- <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
588
-
589
- <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
590
-
591
- <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
592
-
593
- <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
594
-
595
- <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
596
-
597
- <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
598
-
599
- <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
600
-
601
- <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
602
-
603
- <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
604
-
605
- <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
606
-
607
- <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
608
-
609
- <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
610
-
611
- <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
612
-
613
- <li><a href="../AppConfig.html">AppConfig</a></li>
614
-
615
- <li><a href="../Arguments.html">Arguments</a></li>
616
-
617
- <li><a href="../Object.html">Object</a></li>
618
-
619
- <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
620
-
621
- <li><a href="../String.html">String</a></li>
622
-
623
- </ul>
624
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
625
- </div>
626
-
627
-
628
- </div>
629
- </div>
630
-
631
- <div id="documentation">
632
- <h1 class="class">TaskJuggler::ProjectFileParser</h1>
633
-
634
- <div id="description">
635
- <p>
636
- This class specializes the <a href="TextParser.html">TextParser</a> class
637
- for use with <a href="../TaskJuggler.html">TaskJuggler</a> project files
638
- (TJP Files). The primary purpose is to provide functionality that make it
639
- more comfortable to define the <a
640
- href="../TaskJuggler.html">TaskJuggler</a> syntax in a form that is human
641
- creatable but also powerful enough to define the data structures the parser
642
- needs to understand the syntax.
643
- </p>
644
- <p>
645
- By adding some additional information to the syntax rules, we can also
646
- generate the complete reference manual from this rule set.
647
- </p>
648
-
649
- </div>
650
-
651
- <!-- Constants -->
652
-
653
-
654
- <!-- Attributes -->
655
-
656
-
657
- <!-- Methods -->
658
-
659
- <div id="public-class-method-details" class="method-section section">
660
- <h3 class="section-header">Public Class Methods</h3>
661
-
662
-
663
- <div id="new-method" class="method-detail ">
664
- <a name="method-c-new"></a>
665
-
666
- <div class="method-heading">
667
-
668
- <span class="method-name">new</span><span
669
- class="method-args">(messageHandler)</span>
670
- <span class="method-click-advice">click to toggle source</span>
671
-
672
- </div>
673
-
674
- <div class="method-description">
675
-
676
- <p>
677
- Create the parser object. <em>messageHandler</em> is a TjMessageHandler
678
- that is used for error reporting.
679
- </p>
680
-
681
-
682
-
683
- <div class="method-source-code"
684
- id="new-source">
685
- <pre>
686
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 36</span>
687
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>)
688
- 37: <span class="ruby-keyword kw">super</span>
689
- 38:
690
- 39: <span class="ruby-ivar">@tjMessageHandler</span> = <span class="ruby-identifier">messageHandler</span>
691
- 40:
692
- 41: <span class="ruby-comment cmt"># Define the token types that the ProjectFileScanner may return for</span>
693
- 42: <span class="ruby-comment cmt"># variable elements.</span>
694
- 43: <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>,
695
- 44: <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> ]
696
- 45:
697
- 46: <span class="ruby-identifier">initRules</span>
698
- 47: <span class="ruby-identifier">updateParserTables</span>
699
- 48:
700
- 49: <span class="ruby-ivar">@project</span> = <span class="ruby-keyword kw">nil</span>
701
- 50: <span class="ruby-keyword kw">end</span></pre>
702
- </div>
703
-
704
- </div>
705
-
706
-
707
-
708
-
709
- </div>
710
-
711
-
712
- </div>
713
-
714
- <div id="public-instance-method-details" class="method-section section">
715
- <h3 class="section-header">Public Instance Methods</h3>
716
-
717
-
718
- <div id="close-method" class="method-detail ">
719
- <a name="method-i-close"></a>
720
-
721
- <div class="method-heading">
722
-
723
- <span class="method-name">close</span><span
724
- class="method-args">()</span>
725
- <span class="method-click-advice">click to toggle source</span>
726
-
727
- </div>
728
-
729
- <div class="method-description">
730
-
731
- <p>
732
- Call this function to cleanup the parser structures after the file
733
- processing has been completed.
734
- </p>
735
-
736
-
737
-
738
- <div class="method-source-code"
739
- id="close-source">
740
- <pre>
741
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 70</span>
742
- 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
743
- 71: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">close</span>
744
- 72: <span class="ruby-keyword kw">end</span></pre>
745
- </div>
746
-
747
- </div>
748
-
749
-
750
-
751
-
752
- </div>
753
-
754
-
755
- <div id="next-oken-method" class="method-detail ">
756
- <a name="method-i-nextToken"></a>
757
-
758
- <div class="method-heading">
759
-
760
- <span class="method-name">nextToken</span><span
761
- class="method-args">()</span>
762
- <span class="method-click-advice">click to toggle source</span>
763
-
764
- </div>
765
-
766
- <div class="method-description">
767
-
768
- <p>
769
- This function will deliver the next token from the scanner. A token is a
770
- two element Array that contains the ID or type of the token as well as the
771
- text string of the token.
772
- </p>
773
-
774
-
775
-
776
- <div class="method-source-code"
777
- id="next-oken-source">
778
- <pre>
779
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 77</span>
780
- 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
781
- 78: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
782
- 79: <span class="ruby-keyword kw">end</span></pre>
783
- </div>
784
-
785
- </div>
786
-
787
-
788
-
789
-
790
- </div>
791
-
792
-
793
- <div id="open-method" class="method-detail ">
794
- <a name="method-i-open"></a>
795
-
796
- <div class="method-heading">
797
-
798
- <span class="method-name">open</span><span
799
- class="method-args">(file, master, fileNameIsBuffer = false)</span>
800
- <span class="method-click-advice">click to toggle source</span>
801
-
802
- </div>
803
-
804
- <div class="method-description">
805
-
806
- <p>
807
- Call this function with the master file to start processing a TJP file or a
808
- set of TJP files.
809
- </p>
810
-
811
-
812
-
813
- <div class="method-source-code"
814
- id="open-source">
815
- <pre>
816
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 54</span>
817
- 54: <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>)
818
- 55: <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>)
819
- 56: <span class="ruby-comment cmt"># We need the ProjectFileScanner object for error reporting.</span>
820
- 57: <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>
821
- 58: <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>
822
- 59: <span class="ruby-value str">'\.tjp\ extension'</span>)
823
- 60: <span class="ruby-keyword kw">end</span>
824
- 61: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span>)
825
- 62:
826
- 63: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
827
- 64: <span class="ruby-ivar">@scenarioIdx</span> = <span class="ruby-value">0</span>
828
- 65: <span class="ruby-identifier">initFileStack</span>
829
- 66: <span class="ruby-keyword kw">end</span></pre>
830
- </div>
831
-
832
- </div>
833
-
834
-
835
-
836
-
837
- </div>
838
-
839
-
840
- <div id="parse-eport-ttributes-method" class="method-detail ">
841
- <a name="method-i-parseReportAttributes"></a>
842
-
843
- <div class="method-heading">
844
-
845
- <span class="method-name">parseReportAttributes</span><span
846
- class="method-args">(report, attributes)</span>
847
- <span class="method-click-advice">click to toggle source</span>
848
-
849
- </div>
850
-
851
- <div class="method-description">
852
-
853
-
854
-
855
-
856
-
857
- <div class="method-source-code"
858
- id="parse-eport-ttributes-source">
859
- <pre>
860
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 104</span>
861
- 104: <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>)
862
- 105: <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>)
863
- 106: <span class="ruby-ivar">@property</span> = <span class="ruby-identifier">report</span>
864
- 107: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">report</span>.<span class="ruby-identifier">project</span>
865
- 108: <span class="ruby-identifier">parse</span>(<span class="ruby-value">:reportAttributes</span>)
866
- 109: <span class="ruby-keyword kw">end</span></pre>
867
- </div>
868
-
869
- </div>
870
-
871
-
872
-
873
-
874
- </div>
875
-
876
-
877
- <div id="return-oken-method" class="method-detail ">
878
- <a name="method-i-returnToken"></a>
879
-
880
- <div class="method-heading">
881
-
882
- <span class="method-name">returnToken</span><span
883
- class="method-args">(token)</span>
884
- <span class="method-click-advice">click to toggle source</span>
885
-
886
- </div>
887
-
888
- <div class="method-description">
889
-
890
- <p>
891
- This function can be used to return tokens. Returned tokens will be pushed
892
- on a LIFO stack. To preserve the order of the original tokens the last
893
- token must be returned first. This mechanism is used to implement
894
- look-ahead functionality.
895
- </p>
896
-
897
-
898
-
899
- <div class="method-source-code"
900
- id="return-oken-source">
901
- <pre>
902
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 85</span>
903
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
904
- 86: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
905
- 87: <span class="ruby-keyword kw">end</span></pre>
906
- </div>
907
-
908
- </div>
909
-
910
-
911
-
912
-
913
- </div>
914
-
915
-
916
- <div id="set-lobal-acros-method" class="method-detail ">
917
- <a name="method-i-setGlobalMacros"></a>
918
-
919
- <div class="method-heading">
920
-
921
- <span class="method-name">setGlobalMacros</span><span
922
- class="method-args">()</span>
923
- <span class="method-click-advice">click to toggle source</span>
924
-
925
- </div>
926
-
927
- <div class="method-description">
928
-
929
- <p>
930
- A set of standard marcros is defined in all files as soon as the project
931
- header has been read. Calling this functions gets the values from @project
932
- and inserts the <a href="Macro.html">Macro</a> objects into the <a
933
- href="ProjectFileScanner.html">ProjectFileScanner</a>.
934
- </p>
935
-
936
-
937
-
938
- <div class="method-source-code"
939
- id="set-lobal-acros-source">
940
- <pre>
941
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 92</span>
942
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setGlobalMacros</span>
943
- 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">'projectstart'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>].<span class="ruby-identifier">to_s</span>,
944
- 94: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
945
- 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">'projectend'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>].<span class="ruby-identifier">to_s</span>,
946
- 96: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
947
- 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">'now'</span>, <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'now'</span>].<span class="ruby-identifier">to_s</span>,
948
- 98: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
949
- 99: <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>].
950
- 100: <span class="ruby-identifier">to_s</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'timeFormat'</span>]),
951
- 101: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">sourceFileInfo</span>))
952
- 102: <span class="ruby-keyword kw">end</span></pre>
953
- </div>
954
-
955
- </div>
956
-
957
-
958
-
959
-
960
- </div>
961
-
962
-
963
- </div>
964
-
965
- <div id="private-instance-method-details" class="method-section section">
966
- <h3 class="section-header">Private Instance Methods</h3>
967
-
968
-
969
- <div id="all-r-othing-ist-ule-method" class="method-detail ">
970
- <a name="method-i-allOrNothingListRule"></a>
971
-
972
- <div class="method-heading">
973
-
974
- <span class="method-name">allOrNothingListRule</span><span
975
- class="method-args">(name, items)</span>
976
- <span class="method-click-advice">click to toggle source</span>
977
-
978
- </div>
979
-
980
- <div class="method-description">
981
-
982
- <p>
983
- This function creates a set of rules to describe a list of keywords.
984
- <em>name</em> is the name of the top-level rule and <em>items</em> can be a
985
- Hash or Array. The array just contains the allowed keywords, the Hash
986
- contains keyword/description pairs. The description is used to describe the
987
- keyword in the manual. The syntax supports two special cases. A
988
- &#8217;*&#8217; means all items in the list and &#8217;-&#8217; means the
989
- list is empty.
990
- </p>
991
-
992
-
993
-
994
- <div class="method-source-code"
995
- id="all-r-othing-ist-ule-source">
996
- <pre>
997
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 280</span>
998
- 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allOrNothingListRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">items</span>)
999
- 281: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
1000
- 282: <span class="ruby-comment cmt"># A '*' means all possible items should be in the list.</span>
1001
- 283: <span class="ruby-identifier">pattern</span>(<span class="ruby-node">%( _* )</span>, <span class="ruby-identifier">lambda</span> {
1002
- 284: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>([ <span class="ruby-value str">'*'</span> ])
1003
- 285: })
1004
- 286: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'A shortcut for all items'</span>)
1005
- 287: <span class="ruby-comment cmt"># A '-' means the list should be empty.</span>
1006
- 288: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_-'</span> ], <span class="ruby-identifier">lambda</span> {
1007
- 289: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>
1008
- 290: })
1009
- 291: <span class="ruby-identifier">descr</span>(<span class="ruby-value str">'No items'</span>)
1010
- 292: <span class="ruby-comment cmt"># Or the list consists of one or more comma separated keywords.</span>
1011
- 293: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;!#{name}_AoN_ruleItems&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1012
- 294: <span class="ruby-constant">KeywordArray</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1013
- 295: })
1014
- 296: }
1015
- 297: <span class="ruby-comment cmt"># Create the rule for the comma separated list.</span>
1016
- 298: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItems&quot;</span>) {
1017
- 299: <span class="ruby-identifier">listRule</span>(<span class="ruby-node">&quot;more#{name}_AoN_ruleItems&quot;</span>, <span class="ruby-node">&quot;!#{name}_AoN_ruleItem&quot;</span>)
1018
- 300: }
1019
- 301: <span class="ruby-comment cmt"># Create the rule for the keywords with their description.</span>
1020
- 302: <span class="ruby-identifier">newRule</span>(<span class="ruby-node">&quot;#{name}_AoN_ruleItem&quot;</span>) {
1021
- 303: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">items</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
1022
- 304: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span><span class="ruby-operator">|</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>) }
1023
- 305: <span class="ruby-keyword kw">else</span>
1024
- 306: <span class="ruby-identifier">items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">description</span><span class="ruby-operator">|</span>
1025
- 307: <span class="ruby-identifier">singlePattern</span>(<span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">keyword</span>)
1026
- 308: <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">description</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">description</span>
1027
- 309: <span class="ruby-keyword kw">end</span>
1028
- 310: <span class="ruby-keyword kw">end</span>
1029
- 311: }
1030
- 312: <span class="ruby-keyword kw">end</span></pre>
1031
- </div>
1032
-
1033
- </div>
1034
-
1035
-
1036
-
1037
-
1038
- </div>
1039
-
1040
-
1041
- <div id="also-method" class="method-detail ">
1042
- <a name="method-i-also"></a>
1043
-
1044
- <div class="method-heading">
1045
-
1046
- <span class="method-name">also</span><span
1047
- class="method-args">(seeAlso)</span>
1048
- <span class="method-click-advice">click to toggle source</span>
1049
-
1050
- </div>
1051
-
1052
- <div class="method-description">
1053
-
1054
- <p>
1055
- Add a reference to another pattern. This information is only used to
1056
- generate the documentation for the patterns of this rule.
1057
- </p>
1058
-
1059
-
1060
-
1061
- <div class="method-source-code"
1062
- id="also-source">
1063
- <pre>
1064
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 383</span>
1065
- 383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">also</span>(<span class="ruby-identifier">seeAlso</span>)
1066
- 384: <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>)
1067
- 385: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">seeAlso</span>)
1068
- 386: <span class="ruby-keyword kw">end</span></pre>
1069
- </div>
1070
-
1071
- </div>
1072
-
1073
-
1074
-
1075
-
1076
- </div>
1077
-
1078
-
1079
- <div id="arg-method" class="method-detail ">
1080
- <a name="method-i-arg"></a>
1081
-
1082
- <div class="method-heading">
1083
-
1084
- <span class="method-name">arg</span><span
1085
- class="method-args">(idx, name, text)</span>
1086
- <span class="method-click-advice">click to toggle source</span>
1087
-
1088
- </div>
1089
-
1090
- <div class="method-description">
1091
-
1092
- <p>
1093
- Add documentation for the arguments with index <em>idx</em> of the current
1094
- pattern of the currently processed rule. <em>name</em> is that should be
1095
- used for this variable. <em>text</em> is the documentation text.
1096
- </p>
1097
-
1098
-
1099
-
1100
- <div class="method-source-code"
1101
- id="arg-source">
1102
- <pre>
1103
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 371</span>
1104
- 371: <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>)
1105
- 372: <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>))
1106
- 373: <span class="ruby-keyword kw">end</span></pre>
1107
- </div>
1108
-
1109
- </div>
1110
-
1111
-
1112
-
1113
-
1114
- </div>
1115
-
1116
-
1117
- <div id="check-ooking-method" class="method-detail ">
1118
- <a name="method-i-checkBooking"></a>
1119
-
1120
- <div class="method-heading">
1121
-
1122
- <span class="method-name">checkBooking</span><span
1123
- class="method-args">(task, resource)</span>
1124
- <span class="method-click-advice">click to toggle source</span>
1125
-
1126
- </div>
1127
-
1128
- <div class="method-description">
1129
-
1130
- <p>
1131
- Convenience function to check the integrity of a booking statement.
1132
- </p>
1133
-
1134
-
1135
-
1136
- <div class="method-source-code"
1137
- id="check-ooking-source">
1138
- <pre>
1139
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 152</span>
1140
- 152: <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>)
1141
- 153: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">leaf?</span>
1142
- 154: <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>,
1143
- 155: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1144
- 156: <span class="ruby-keyword kw">end</span>
1145
- 157: <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>]
1146
- 158: <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>,
1147
- 159: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1148
- 160: <span class="ruby-keyword kw">end</span>
1149
- 161: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">leaf?</span>
1150
- 162: <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>,
1151
- 163: <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">task</span>)
1152
- 164: <span class="ruby-keyword kw">end</span>
1153
- 165: <span class="ruby-keyword kw">end</span></pre>
1154
- </div>
1155
-
1156
- </div>
1157
-
1158
-
1159
-
1160
-
1161
- </div>
1162
-
1163
-
1164
- <div id="check-ontainer-method" class="method-detail ">
1165
- <a name="method-i-checkContainer"></a>
1166
-
1167
- <div class="method-heading">
1168
-
1169
- <span class="method-name">checkContainer</span><span
1170
- class="method-args">(attribute)</span>
1171
- <span class="method-click-advice">click to toggle source</span>
1172
-
1173
- </div>
1174
-
1175
- <div class="method-description">
1176
-
1177
- <p>
1178
- Make sure that certain attributes are not used after sub properties have
1179
- been added to a property.
1180
- </p>
1181
-
1182
-
1183
-
1184
- <div class="method-source-code"
1185
- id="check-ontainer-source">
1186
- <pre>
1187
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 126</span>
1188
- 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkContainer</span>(<span class="ruby-identifier">attribute</span>)
1189
- 127: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">container?</span>
1190
- 128: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'container_attribute'</span>,
1191
- 129: <span class="ruby-node">&quot;The attribute #{attribute} may not be used for this property &quot;</span> <span class="ruby-operator">+</span>
1192
- 130: <span class="ruby-value str">'after sub properties have been added.'</span>, <span class="ruby-ivar">@sourceFileInfo</span>[<span class="ruby-value">0</span>],
1193
- 131: <span class="ruby-ivar">@property</span>)
1194
- 132: <span class="ruby-keyword kw">end</span>
1195
- 133: <span class="ruby-keyword kw">end</span></pre>
1196
- </div>
1197
-
1198
- </div>
1199
-
1200
-
1201
-
1202
-
1203
- </div>
1204
-
1205
-
1206
- <div id="check-nterval-method" class="method-detail ">
1207
- <a name="method-i-checkInterval"></a>
1208
-
1209
- <div class="method-heading">
1210
-
1211
- <span class="method-name">checkInterval</span><span
1212
- class="method-args">(iv)</span>
1213
- <span class="method-click-advice">click to toggle source</span>
1214
-
1215
- </div>
1216
-
1217
- <div class="method-description">
1218
-
1219
- <p>
1220
- Convenience function to check that an <a href="Interval.html">Interval</a>
1221
- fits completely within the project time frame.
1222
- </p>
1223
-
1224
-
1225
-
1226
- <div class="method-source-code"
1227
- id="check-nterval-source">
1228
- <pre>
1229
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 137</span>
1230
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkInterval</span>(<span class="ruby-identifier">iv</span>)
1231
- 138: <span class="ruby-comment cmt"># Make sure the interval is within the project time frame.</span>
1232
- 139: <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>]
1233
- 140: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_start_in_range'</span>,
1234
- 141: <span class="ruby-node">&quot;Start date #{iv.start} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1235
- 142: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1236
- 143: <span class="ruby-keyword kw">end</span>
1237
- 144: <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>]
1238
- 145: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'interval_end_in_range'</span>,
1239
- 146: <span class="ruby-node">&quot;End date #{iv.end} must be within the project time frame &quot;</span> <span class="ruby-operator">+</span>
1240
- 147: <span class="ruby-node">&quot;(#{@project['start']} - #{@project['end']})&quot;</span>)
1241
- 148: <span class="ruby-keyword kw">end</span>
1242
- 149: <span class="ruby-keyword kw">end</span></pre>
1243
- </div>
1244
-
1245
- </div>
1246
-
1247
-
1248
-
1249
-
1250
- </div>
1251
-
1252
-
1253
- <div id="column-itle-method" class="method-detail ">
1254
- <a name="method-i-columnTitle"></a>
1255
-
1256
- <div class="method-heading">
1257
-
1258
- <span class="method-name">columnTitle</span><span
1259
- class="method-args">(colId)</span>
1260
- <span class="method-click-advice">click to toggle source</span>
1261
-
1262
- </div>
1263
-
1264
- <div class="method-description">
1265
-
1266
- <p>
1267
- Determine the title of the column with the ID <em>colId</em>. The title may
1268
- be from the static set or be from a user defined attribute.
1269
- </p>
1270
-
1271
-
1272
-
1273
- <div class="method-source-code"
1274
- id="column-itle-source">
1275
- <pre>
1276
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 396</span>
1277
- 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">columnTitle</span>(<span class="ruby-identifier">colId</span>)
1278
- 397: <span class="ruby-constant">TableReport</span>.<span class="ruby-identifier">defaultColumnTitle</span>(<span class="ruby-identifier">colId</span>) <span class="ruby-operator">||</span>
1279
- 398: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">colId</span>)
1280
- 399: <span class="ruby-keyword kw">end</span></pre>
1281
- </div>
1282
-
1283
- </div>
1284
-
1285
-
1286
-
1287
-
1288
- </div>
1289
-
1290
-
1291
- <div id="comma-ist-ule-method" class="method-detail ">
1292
- <a name="method-i-commaListRule"></a>
1293
-
1294
- <div class="method-heading">
1295
-
1296
- <span class="method-name">commaListRule</span><span
1297
- class="method-args">(listItem)</span>
1298
- <span class="method-click-advice">click to toggle source</span>
1299
-
1300
- </div>
1301
-
1302
- <div class="method-description">
1303
-
1304
-
1305
-
1306
-
1307
-
1308
- <div class="method-source-code"
1309
- id="comma-ist-ule-source">
1310
- <pre>
1311
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 327</span>
1312
- 327: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1313
- 328: <span class="ruby-identifier">optional</span>
1314
- 329: <span class="ruby-identifier">repeatable</span>
1315
- 330: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_,'</span>, <span class="ruby-node">&quot;#{listItem}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1316
- 331: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1317
- 332: })
1318
- 333: <span class="ruby-keyword kw">end</span></pre>
1319
- </div>
1320
-
1321
- </div>
1322
-
1323
-
1324
-
1325
-
1326
- </div>
1327
-
1328
-
1329
- <div id="descr-method" class="method-detail ">
1330
- <a name="method-i-descr"></a>
1331
-
1332
- <div class="method-heading">
1333
-
1334
- <span class="method-name">descr</span><span
1335
- class="method-args">(text)</span>
1336
- <span class="method-click-advice">click to toggle source</span>
1337
-
1338
- </div>
1339
-
1340
- <div class="method-description">
1341
-
1342
- <p>
1343
- Add documentation for patterns that only consists of a single terminal
1344
- token.
1345
- </p>
1346
-
1347
-
1348
-
1349
- <div class="method-source-code"
1350
- id="descr-source">
1351
- <pre>
1352
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 359</span>
1353
- 359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">descr</span>(<span class="ruby-identifier">text</span>)
1354
- 360: <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>
1355
- 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">:literal</span> <span class="ruby-operator">&amp;&amp;</span>
1356
- 362: <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>)
1357
- 363: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'descr() may only be used for patterns with terminal tokens.'</span>
1358
- 364: <span class="ruby-keyword kw">end</span>
1359
- 365: <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>)
1360
- 366: <span class="ruby-keyword kw">end</span></pre>
1361
- </div>
1362
-
1363
- </div>
1364
-
1365
-
1366
-
1367
-
1368
- </div>
1369
-
1370
-
1371
- <div id="doc-method" class="method-detail ">
1372
- <a name="method-i-doc"></a>
1373
-
1374
- <div class="method-heading">
1375
-
1376
- <span class="method-name">doc</span><span
1377
- class="method-args">(keyword, text)</span>
1378
- <span class="method-click-advice">click to toggle source</span>
1379
-
1380
- </div>
1381
-
1382
- <div class="method-description">
1383
-
1384
- <p>
1385
- Add documentation for the current pattern of the currently processed rule.
1386
- </p>
1387
-
1388
-
1389
-
1390
- <div class="method-source-code"
1391
- id="doc-source">
1392
- <pre>
1393
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 353</span>
1394
- 353: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">doc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1395
- 354: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setDoc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">text</span>)
1396
- 355: <span class="ruby-keyword kw">end</span></pre>
1397
- </div>
1398
-
1399
- </div>
1400
-
1401
-
1402
-
1403
-
1404
- </div>
1405
-
1406
-
1407
- <div id="example-method" class="method-detail ">
1408
- <a name="method-i-example"></a>
1409
-
1410
- <div class="method-heading">
1411
-
1412
- <span class="method-name">example</span><span
1413
- class="method-args">(file, tag = nil)</span>
1414
- <span class="method-click-advice">click to toggle source</span>
1415
-
1416
- </div>
1417
-
1418
- <div class="method-description">
1419
-
1420
- <p>
1421
- Add a TJP file or parts of it as an example. The TJP <em>file</em> must be
1422
- in the directory test/TestSuite/Syntax/Correct. <em>tag</em> can be used to
1423
- identify that only a part of the file should be included.
1424
- </p>
1425
-
1426
-
1427
-
1428
- <div class="method-source-code"
1429
- id="example-source">
1430
- <pre>
1431
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 391</span>
1432
- 391: <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>)
1433
- 392: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1434
- 393: <span class="ruby-keyword kw">end</span></pre>
1435
- </div>
1436
-
1437
- </div>
1438
-
1439
-
1440
-
1441
-
1442
- </div>
1443
-
1444
-
1445
- <div id="extend-roperty-et-efinition-method" class="method-detail ">
1446
- <a name="method-i-extendPropertySetDefinition"></a>
1447
-
1448
- <div class="method-heading">
1449
-
1450
- <span class="method-name">extendPropertySetDefinition</span><span
1451
- class="method-args">(type, default)</span>
1452
- <span class="method-click-advice">click to toggle source</span>
1453
-
1454
- </div>
1455
-
1456
- <div class="method-description">
1457
-
1458
- <p>
1459
- The <a href="../TaskJuggler.html">TaskJuggler</a> syntax can be extended by
1460
- the user when the properties are extended with user-defined attributes.
1461
- These attribute definitions introduce keywords that have to be processed
1462
- like the build-in keywords. The parser therefor needs to adapt on the fly
1463
- to the new syntax. By calling this function, a <a
1464
- href="../TaskJuggler.html">TaskJuggler</a> property can be extended with a
1465
- new attribute. @propertySet determines what property should be extended.
1466
- <em>type</em> is the attribute type, <em>default</em> is the default value.
1467
- </p>
1468
-
1469
-
1470
-
1471
- <div class="method-source-code"
1472
- id="extend-roperty-et-efinition-source">
1473
- <pre>
1474
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 174</span>
1475
- 174: <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>)
1476
- 175: <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>])
1477
- 176: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'extend_redefinition'</span>,
1478
- 177: <span class="ruby-node">&quot;The extended attribute #{@val[1]} has already been defined.&quot;</span>)
1479
- 178: <span class="ruby-keyword kw">end</span>
1480
- 179:
1481
- 180: <span class="ruby-comment cmt"># Determine the values for scenarioSpecific and inheritable.</span>
1482
- 181: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">false</span>
1483
- 182: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">false</span>
1484
- 183: <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>
1485
- 184: <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>
1486
- 185: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">option</span>
1487
- 186: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'inherit'</span>
1488
- 187: <span class="ruby-identifier">inherit</span> = <span class="ruby-keyword kw">true</span>
1489
- 188: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'scenariospecific'</span>
1490
- 189: <span class="ruby-identifier">scenarioSpecific</span> = <span class="ruby-keyword kw">true</span>
1491
- 190: <span class="ruby-keyword kw">end</span>
1492
- 191: <span class="ruby-keyword kw">end</span>
1493
- 192: <span class="ruby-keyword kw">end</span>
1494
- 193: <span class="ruby-comment cmt"># Register the new Attribute type with the Property set it should belong</span>
1495
- 194: <span class="ruby-comment cmt"># to.</span>
1496
- 195: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">addAttributeType</span>(<span class="ruby-constant">AttributeDefinition</span>.<span class="ruby-identifier">new</span>(
1497
- 196: <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>))
1498
- 197:
1499
- 198: <span class="ruby-comment cmt"># Add the new user-defined attribute as reportable attribute to the parser</span>
1500
- 199: <span class="ruby-comment cmt"># rule.</span>
1501
- 200: <span class="ruby-identifier">oldCurrentRule</span> = <span class="ruby-ivar">@cr</span>
1502
- 201: <span class="ruby-ivar">@cr</span> = <span class="ruby-ivar">@rules</span>[<span class="ruby-value">:reportableAttributes</span>]
1503
- 202: <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>])
1504
- 203: <span class="ruby-identifier">descr</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">2</span>])
1505
- 204: <span class="ruby-ivar">@cr</span> = <span class="ruby-identifier">oldCurrentRule</span>
1506
- 205:
1507
- 206: <span class="ruby-identifier">scenarioSpecific</span>
1508
- 207: <span class="ruby-keyword kw">end</span></pre>
1509
- </div>
1510
-
1511
- </div>
1512
-
1513
-
1514
-
1515
-
1516
- </div>
1517
-
1518
-
1519
- <div id="init-ile-tack-method" class="method-detail ">
1520
- <a name="method-i-initFileStack"></a>
1521
-
1522
- <div class="method-heading">
1523
-
1524
- <span class="method-name">initFileStack</span><span
1525
- class="method-args">()</span>
1526
- <span class="method-click-advice">click to toggle source</span>
1527
-
1528
- </div>
1529
-
1530
- <div class="method-description">
1531
-
1532
- <p>
1533
- To manage certain variables that have file scope throughout a hierachie of
1534
- nested include files, we use a @fileStack to track those variables. The
1535
- values primarily live in their class instance variables. But upon return
1536
- from an included file, we need to restore the old values. This function
1537
- creates or resets the stack.
1538
- </p>
1539
-
1540
-
1541
-
1542
- <div class="method-source-code"
1543
- id="init-ile-tack-source">
1544
- <pre>
1545
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 407</span>
1546
- 407: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initFileStack</span>
1547
- 408: <span class="ruby-ivar">@fileStackVariables</span> = <span class="ruby-node">%( taskprefix reportprefix
1548
- 409: resourceprefix accountprefix )</span>
1549
- 410: <span class="ruby-identifier">stackEntry</span> = {}
1550
- 411: <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>
1551
- 412: <span class="ruby-identifier">stackEntry</span>[<span class="ruby-identifier">var</span>] = <span class="ruby-value str">''</span>
1552
- 413: <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>)
1553
- 414: <span class="ruby-keyword kw">end</span>
1554
- 415: <span class="ruby-ivar">@fileStack</span> = [ <span class="ruby-identifier">stackEntry</span> ]
1555
- 416: <span class="ruby-keyword kw">end</span></pre>
1556
- </div>
1557
-
1558
- </div>
1559
-
1560
-
1561
-
1562
-
1563
- </div>
1564
-
1565
-
1566
- <div id="last-yntax-oken-method" class="method-detail ">
1567
- <a name="method-i-lastSyntaxToken"></a>
1568
-
1569
- <div class="method-heading">
1570
-
1571
- <span class="method-name">lastSyntaxToken</span><span
1572
- class="method-args">(idx)</span>
1573
- <span class="method-click-advice">click to toggle source</span>
1574
-
1575
- </div>
1576
-
1577
- <div class="method-description">
1578
-
1579
- <p>
1580
- Restrict the syntax documentation of the previously defined pattern to the
1581
- first <tt>idx</tt> tokens.
1582
- </p>
1583
-
1584
-
1585
-
1586
- <div class="method-source-code"
1587
- id="last-yntax-oken-source">
1588
- <pre>
1589
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 377</span>
1590
- 377: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1591
- 378: <span class="ruby-ivar">@cr</span>.<span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1592
- 379: <span class="ruby-keyword kw">end</span></pre>
1593
- </div>
1594
-
1595
- </div>
1596
-
1597
-
1598
-
1599
-
1600
- </div>
1601
-
1602
-
1603
- <div id="list-ule-method" class="method-detail ">
1604
- <a name="method-i-listRule"></a>
1605
-
1606
- <div class="method-heading">
1607
-
1608
- <span class="method-name">listRule</span><span
1609
- class="method-args">(name, listItem)</span>
1610
- <span class="method-click-advice">click to toggle source</span>
1611
-
1612
- </div>
1613
-
1614
- <div class="method-description">
1615
-
1616
-
1617
-
1618
-
1619
-
1620
- <div class="method-source-code"
1621
- id="list-ule-source">
1622
- <pre>
1623
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 314</span>
1624
- 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">listRule</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">listItem</span>)
1625
- 315: <span class="ruby-identifier">pattern</span>([ <span class="ruby-node">&quot;#{listItem}&quot;</span>, <span class="ruby-node">&quot;!#{name}&quot;</span> ], <span class="ruby-identifier">lambda</span> {
1626
- 316: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>])
1627
- 317: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'duplicate_in_list'</span>,
1628
- 318: <span class="ruby-value str">&quot;Duplicate items in list.&quot;</span>)
1629
- 319: <span class="ruby-keyword kw">end</span>
1630
- 320: [ <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>] ] <span class="ruby-operator">+</span> (<span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> [] <span class="ruby-operator">:</span> <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>])
1631
- 321: })
1632
- 322: <span class="ruby-identifier">newRule</span>(<span class="ruby-identifier">name</span>) {
1633
- 323: <span class="ruby-identifier">commaListRule</span>(<span class="ruby-identifier">listItem</span>)
1634
- 324: }
1635
- 325: <span class="ruby-keyword kw">end</span></pre>
1636
- </div>
1637
-
1638
- </div>
1639
-
1640
-
1641
-
1642
-
1643
- </div>
1644
-
1645
-
1646
- <div id="new-eport-method" class="method-detail ">
1647
- <a name="method-i-newReport"></a>
1648
-
1649
- <div class="method-heading">
1650
-
1651
- <span class="method-name">newReport</span><span
1652
- class="method-args">(id, name, type, sourceFileInfo)</span>
1653
- <span class="method-click-advice">click to toggle source</span>
1654
-
1655
- </div>
1656
-
1657
- <div class="method-description">
1658
-
1659
- <p>
1660
- This method is a convenience wrapper around Project.new. It checks if the
1661
- report name already exists. It also triggers the attribute inheritance.
1662
- <tt>name</tt> is the name of the report, <tt>type</tt> is the report type.
1663
- <tt>sourceFileInfo</tt> is a <a
1664
- href="SourceFileInfo.html">SourceFileInfo</a> of the report definition. The
1665
- method returns the newly created <a href="Report.html">Report</a>.
1666
- </p>
1667
-
1668
-
1669
-
1670
- <div class="method-source-code"
1671
- id="new-eport-source">
1672
- <pre>
1673
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 240</span>
1674
- 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newReport</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">sourceFileInfo</span>)
1675
- 241: <span class="ruby-ivar">@reportCounter</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1676
- 242: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">'.'</span>
1677
- 243: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportByName</span>(<span class="ruby-identifier">name</span>)
1678
- 244: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'report_redefinition'</span>,
1679
- 245: <span class="ruby-node">&quot;A report with the name #{name} has already been defined.&quot;</span>)
1680
- 246: <span class="ruby-keyword kw">end</span>
1681
- 247: <span class="ruby-keyword kw">end</span>
1682
- 248: <span class="ruby-ivar">@property</span> = <span class="ruby-constant">Report</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>, <span class="ruby-identifier">id</span> <span class="ruby-operator">||</span> <span class="ruby-node">&quot;report#{@reportCounter}&quot;</span>,
1683
- 249: <span class="ruby-identifier">name</span>, <span class="ruby-keyword kw">nil</span>)
1684
- 250: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-identifier">type</span>
1685
- 251: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">sourceFileInfo</span> = <span class="ruby-identifier">sourceFileInfo</span>
1686
- 252: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'formats'</span>, [ <span class="ruby-value">:tjp</span> ])
1687
- 253: <span class="ruby-ivar">@property</span>.<span class="ruby-identifier">inheritAttributes</span>
1688
- 254: <span class="ruby-ivar">@property</span>
1689
- 255: <span class="ruby-keyword kw">end</span></pre>
1690
- </div>
1691
-
1692
- </div>
1693
-
1694
-
1695
-
1696
-
1697
- </div>
1698
-
1699
-
1700
- <div id="new-ich-ext-method" class="method-detail ">
1701
- <a name="method-i-newRichText"></a>
1702
-
1703
- <div class="method-heading">
1704
-
1705
- <span class="method-name">newRichText</span><span
1706
- class="method-args">(text, sfi, tokenSet = nil)</span>
1707
- <span class="method-click-advice">click to toggle source</span>
1708
-
1709
- </div>
1710
-
1711
- <div class="method-description">
1712
-
1713
- <p>
1714
- This function is primarily a wrapper around the <a
1715
- href="RichText.html">RichText</a> constructor. It catches all <a
1716
- href="RichTextScanner.html">RichTextScanner</a> processing problems and
1717
- converts the exception data into a <a
1718
- href="MessageHandler.html">MessageHandler</a> message that points to the
1719
- correct location. This is necessary, because the <a
1720
- href="RichText.html">RichText</a> parser knows nothing about the actual
1721
- input file. So we have to map the error location in the <a
1722
- href="RichText.html">RichText</a> input stream back to the position in the
1723
- project file. <em>sfi</em> is the <a
1724
- href="SourceFileInfo.html">SourceFileInfo</a> of the input string. To limit
1725
- the supported set of variable tokens, a subset can be provided by
1726
- <em>tokenSet</em>.
1727
- </p>
1728
-
1729
-
1730
-
1731
- <div class="method-source-code"
1732
- id="new-ich-ext-source">
1733
- <pre>
1734
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 217</span>
1735
- 217: <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>)
1736
- 218: <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>))
1737
- 219: <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>))
1738
- 220: <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>
1739
- 221: <span class="ruby-comment cmt"># Map the SourceFileInfo of the RichText back to the original</span>
1740
- 222: <span class="ruby-comment cmt"># location in the input file.</span>
1741
- 223: <span class="ruby-identifier">sfi</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">fileName</span>,
1742
- 224: <span class="ruby-identifier">sfi</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">sourceFileInfo</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>,
1743
- 225: <span class="ruby-value">0</span>)
1744
- 226: <span class="ruby-comment cmt"># Then replay the error message.</span>
1745
- 227: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">addMessage</span>(<span class="ruby-identifier">msg</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">message</span>, <span class="ruby-identifier">sfi</span>,
1746
- 228: <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">line</span>)
1747
- 229: <span class="ruby-keyword kw">end</span>
1748
- 230: <span class="ruby-keyword kw">end</span>
1749
- 231: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1750
- 232: <span class="ruby-identifier">rti</span>
1751
- 233: <span class="ruby-keyword kw">end</span></pre>
1752
- </div>
1753
-
1754
- </div>
1755
-
1756
-
1757
-
1758
-
1759
- </div>
1760
-
1761
-
1762
- <div id="options-ule-method" class="method-detail ">
1763
- <a name="method-i-optionsRule"></a>
1764
-
1765
- <div class="method-heading">
1766
-
1767
- <span class="method-name">optionsRule</span><span
1768
- class="method-args">(attributes)</span>
1769
- <span class="method-click-advice">click to toggle source</span>
1770
-
1771
- </div>
1772
-
1773
- <div class="method-description">
1774
-
1775
- <p>
1776
- Create pattern that turns the rule into the definition for optional
1777
- attributes. <em>attributes</em> is the rule that lists these attributes.
1778
- </p>
1779
-
1780
-
1781
-
1782
- <div class="method-source-code"
1783
- id="options-ule-source">
1784
- <pre>
1785
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 337</span>
1786
- 337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optionsRule</span>(<span class="ruby-identifier">attributes</span>)
1787
- 338: <span class="ruby-identifier">optional</span>
1788
- 339: <span class="ruby-identifier">pattern</span>([ <span class="ruby-value str">'_{'</span>, <span class="ruby-node">&quot;!#{attributes}&quot;</span>, <span class="ruby-value str">'_}'</span> ], <span class="ruby-identifier">lambda</span> {
1789
- 340: <span class="ruby-ivar">@val</span>[<span class="ruby-value">1</span>]
1790
- 341: })
1791
- 342: <span class="ruby-keyword kw">end</span></pre>
1792
- </div>
1793
-
1794
- </div>
1795
-
1796
-
1797
-
1798
-
1799
- </div>
1800
-
1801
-
1802
- <div id="pop-ile-tack-method" class="method-detail ">
1803
- <a name="method-i-popFileStack"></a>
1804
-
1805
- <div class="method-heading">
1806
-
1807
- <span class="method-name">popFileStack</span><span
1808
- class="method-args">()</span>
1809
- <span class="method-click-advice">click to toggle source</span>
1810
-
1811
- </div>
1812
-
1813
- <div class="method-description">
1814
-
1815
- <p>
1816
- Pop the last stack entry from the @fileStack and restore the class
1817
- variables according to the now top-entry.
1818
- </p>
1819
-
1820
-
1821
-
1822
- <div class="method-source-code"
1823
- id="pop-ile-tack-source">
1824
- <pre>
1825
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 429</span>
1826
- 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">popFileStack</span>
1827
- 430: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1828
- 431: <span class="ruby-identifier">stackEntry</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1829
- 432: <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>
1830
- 433: <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>])
1831
- 434: <span class="ruby-keyword kw">end</span>
1832
- 435: <span class="ruby-comment cmt"># Include files can only occur at global level or in the project header.</span>
1833
- 436: <span class="ruby-comment cmt"># In both cases, the @property was nil on including and must be reset to</span>
1834
- 437: <span class="ruby-comment cmt"># nil again after the include file.</span>
1835
- 438: <span class="ruby-ivar">@property</span> = <span class="ruby-keyword kw">nil</span>
1836
- 439: <span class="ruby-keyword kw">end</span></pre>
1837
- </div>
1838
-
1839
- </div>
1840
-
1841
-
1842
-
1843
-
1844
- </div>
1845
-
1846
-
1847
- <div id="push-ile-tack-method" class="method-detail ">
1848
- <a name="method-i-pushFileStack"></a>
1849
-
1850
- <div class="method-heading">
1851
-
1852
- <span class="method-name">pushFileStack</span><span
1853
- class="method-args">()</span>
1854
- <span class="method-click-advice">click to toggle source</span>
1855
-
1856
- </div>
1857
-
1858
- <div class="method-description">
1859
-
1860
- <p>
1861
- Push a new set of variables onto the @fileStack.
1862
- </p>
1863
-
1864
-
1865
-
1866
- <div class="method-source-code"
1867
- id="push-ile-tack-source">
1868
- <pre>
1869
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 419</span>
1870
- 419: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pushFileStack</span>
1871
- 420: <span class="ruby-identifier">stackEntry</span> = {}
1872
- 421: <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>
1873
- 422: <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>)
1874
- 423: <span class="ruby-keyword kw">end</span>
1875
- 424: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">stackEntry</span>
1876
- 425: <span class="ruby-keyword kw">end</span></pre>
1877
- </div>
1878
-
1879
- </div>
1880
-
1881
-
1882
-
1883
-
1884
- </div>
1885
-
1886
-
1887
- <div id="set-imit-method" class="method-detail ">
1888
- <a name="method-i-setLimit"></a>
1889
-
1890
- <div class="method-heading">
1891
-
1892
- <span class="method-name">setLimit</span><span
1893
- class="method-args">(name, value, interval)</span>
1894
- <span class="method-click-advice">click to toggle source</span>
1895
-
1896
- </div>
1897
-
1898
- <div class="method-description">
1899
-
1900
- <p>
1901
- If the @limitResources list is not empty, we have to create a <a
1902
- href="Limits.html">Limits</a> object for each <a
1903
- href="Resource.html">Resource</a>. Otherwise, one <a
1904
- href="Limits.html">Limits</a> object is enough.
1905
- </p>
1906
-
1907
-
1908
-
1909
- <div class="method-source-code"
1910
- id="set-imit-source">
1911
- <pre>
1912
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 260</span>
1913
- 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1914
- 261: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@limitResources</span>.<span class="ruby-identifier">empty?</span>
1915
- 262: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>)
1916
- 263: <span class="ruby-keyword kw">else</span>
1917
- 264: <span class="ruby-ivar">@limitResources</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource</span><span class="ruby-operator">|</span>
1918
- 265: <span class="ruby-ivar">@limits</span>.<span class="ruby-identifier">setLimit</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">interval</span>, <span class="ruby-identifier">resource</span>)
1919
- 266: <span class="ruby-keyword kw">end</span>
1920
- 267: <span class="ruby-keyword kw">end</span>
1921
- 268: <span class="ruby-keyword kw">end</span></pre>
1922
- </div>
1923
-
1924
- </div>
1925
-
1926
-
1927
-
1928
-
1929
- </div>
1930
-
1931
-
1932
- <div id="single-attern-method" class="method-detail ">
1933
- <a name="method-i-singlePattern"></a>
1934
-
1935
- <div class="method-heading">
1936
-
1937
- <span class="method-name">singlePattern</span><span
1938
- class="method-args">(item)</span>
1939
- <span class="method-click-advice">click to toggle source</span>
1940
-
1941
- </div>
1942
-
1943
- <div class="method-description">
1944
-
1945
- <p>
1946
- Create a pattern with just a single <em>item</em>. The pattern returns the
1947
- value of that item.
1948
- </p>
1949
-
1950
-
1951
-
1952
- <div class="method-source-code"
1953
- id="single-attern-source">
1954
- <pre>
1955
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 346</span>
1956
- 346: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">singlePattern</span>(<span class="ruby-identifier">item</span>)
1957
- 347: <span class="ruby-identifier">pattern</span>([ <span class="ruby-identifier">item</span> ], <span class="ruby-identifier">lambda</span> {
1958
- 348: <span class="ruby-ivar">@val</span>[<span class="ruby-value">0</span>]
1959
- 349: })
1960
- 350: <span class="ruby-keyword kw">end</span></pre>
1961
- </div>
1962
-
1963
- </div>
1964
-
1965
-
1966
-
1967
-
1968
- </div>
1969
-
1970
-
1971
- <div id="week-ay-method" class="method-detail ">
1972
- <a name="method-i-weekDay"></a>
1973
-
1974
- <div class="method-heading">
1975
-
1976
- <span class="method-name">weekDay</span><span
1977
- class="method-args">(name)</span>
1978
- <span class="method-click-advice">click to toggle source</span>
1979
-
1980
- </div>
1981
-
1982
- <div class="method-description">
1983
-
1984
- <p>
1985
- Utility function that convers English weekday names into their index number
1986
- and does some error checking. It returns 0 for &#8216;sun&#8217;, 1 for
1987
- &#8216;mon&#8217; and so on.
1988
- </p>
1989
-
1990
-
1991
-
1992
- <div class="method-source-code"
1993
- id="week-ay-source">
1994
- <pre>
1995
- <span class="ruby-comment cmt"># File lib/ProjectFileParser.rb, line 116</span>
1996
- 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weekDay</span>(<span class="ruby-identifier">name</span>)
1997
- 117: <span class="ruby-identifier">names</span> = <span class="ruby-node">%( sun mon tue wed thu fri sat )</span>
1998
- 118: <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>
1999
- 119: <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>)
2000
- 120: <span class="ruby-keyword kw">end</span>
2001
- 121: <span class="ruby-identifier">day</span>
2002
- 122: <span class="ruby-keyword kw">end</span></pre>
2003
- </div>
2004
-
2005
- </div>
2006
-
2007
-
2008
-
2009
-
2010
- </div>
2011
-
2012
-
2013
- </div>
2014
-
2015
-
2016
- </div>
2017
-
2018
-
2019
- <div id="rdoc-debugging-section-dump" class="debugging-section">
2020
-
2021
- <p>Disabled; run with --debug to generate this.</p>
2022
-
2023
- </div>
2024
-
2025
- <div id="validator-badges">
2026
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
2027
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
2028
- Rdoc Generator</a> 1.1.6</small>.</p>
2029
- </div>
2030
-
2031
- </body>
2032
- </html>
2033
-