taskjuggler 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -165,6 +165,10 @@
165
165
 
166
166
  <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
167
167
 
168
+ <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
169
+
170
+ <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
171
+
168
172
  <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
169
173
 
170
174
  <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -237,8 +241,6 @@
237
241
 
238
242
  <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
239
243
 
240
- <li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
241
-
242
244
  <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
243
245
 
244
246
  <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -303,6 +305,8 @@
303
305
 
304
306
  <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
305
307
 
308
+ <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
309
+
306
310
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
307
311
 
308
312
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -349,8 +353,6 @@
349
353
 
350
354
  <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
351
355
 
352
- <li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
353
-
354
356
  <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
355
357
 
356
358
  <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -391,6 +393,8 @@
391
393
 
392
394
  <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
393
395
 
396
+ <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
397
+
394
398
  <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
395
399
 
396
400
  <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -501,6 +505,8 @@
501
505
 
502
506
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
503
507
 
508
+ <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
509
+
504
510
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
505
511
 
506
512
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -582,10 +588,10 @@ containing the results of a repeatable rule.
582
588
  <div class="method-source-code"
583
589
  id="new-source">
584
590
  <pre>
585
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 49</span>
586
- 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
587
- 50: <span class="ruby-keyword kw">super</span>
588
- 51: <span class="ruby-keyword kw">end</span></pre>
591
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 50</span>
592
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
593
+ 51: <span class="ruby-keyword kw">super</span>
594
+ 52: <span class="ruby-keyword kw">end</span></pre>
589
595
  </div>
590
596
 
591
597
  </div>
@@ -627,14 +633,14 @@ Array.
627
633
  <div class="method-source-code"
628
634
  id="--source">
629
635
  <pre>
630
- <span class="ruby-comment cmt"># File lib/TextParser.rb, line 57</span>
631
- 57: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">arg</span>)
632
- 58: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TextParserResultArray</span>)
633
- 59: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">arg</span>)
634
- 60: <span class="ruby-keyword kw">else</span>
635
- 61: <span class="ruby-keyword kw">super</span>
636
- 62: <span class="ruby-keyword kw">end</span>
637
- 63: <span class="ruby-keyword kw">end</span></pre>
636
+ <span class="ruby-comment cmt"># File lib/TextParser.rb, line 58</span>
637
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">arg</span>)
638
+ 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TextParserResultArray</span>)
639
+ 60: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">arg</span>)
640
+ 61: <span class="ruby-keyword kw">else</span>
641
+ 62: <span class="ruby-keyword kw">super</span>
642
+ 63: <span class="ruby-keyword kw">end</span>
643
+ 64: <span class="ruby-keyword kw">end</span></pre>
638
644
  </div>
639
645
 
640
646
  </div>
@@ -163,6 +163,10 @@
163
163
 
164
164
  <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
165
165
 
166
+ <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
167
+
168
+ <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
169
+
166
170
  <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
167
171
 
168
172
  <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -235,8 +239,6 @@
235
239
 
236
240
  <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
237
241
 
238
- <li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
239
-
240
242
  <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
241
243
 
242
244
  <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -301,6 +303,8 @@
301
303
 
302
304
  <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
303
305
 
306
+ <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
307
+
304
308
  <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
305
309
 
306
310
  <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -347,8 +351,6 @@
347
351
 
348
352
  <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
349
353
 
350
- <li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
351
-
352
354
  <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
353
355
 
354
356
  <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -389,6 +391,8 @@
389
391
 
390
392
  <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
391
393
 
394
+ <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
395
+
392
396
  <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
393
397
 
394
398
  <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -499,6 +503,8 @@
499
503
 
500
504
  <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
501
505
 
506
+ <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
507
+
502
508
  <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
503
509
 
504
510
  <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -169,6 +169,10 @@
169
169
 
170
170
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
171
171
 
172
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
173
+
174
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
175
+
172
176
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
173
177
 
174
178
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -241,8 +245,6 @@
241
245
 
242
246
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
243
247
 
244
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
245
-
246
248
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
247
249
 
248
250
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -307,6 +309,8 @@
307
309
 
308
310
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
309
311
 
312
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
313
+
310
314
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
311
315
 
312
316
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -353,8 +357,6 @@
353
357
 
354
358
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
355
359
 
356
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
357
-
358
360
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
359
361
 
360
362
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -395,6 +397,8 @@
395
397
 
396
398
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
397
399
 
400
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
401
+
398
402
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
399
403
 
400
404
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -505,6 +509,8 @@
505
509
 
506
510
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
507
511
 
512
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
513
+
508
514
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
509
515
 
510
516
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -785,8 +791,11 @@ footer and a central text with margin elements left and right.
785
791
  <pre>
786
792
  <span class="ruby-comment cmt"># File lib/reports/TextReport.rb, line 89</span>
787
793
  89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
788
- 90: <span class="ruby-keyword kw">nil</span>
789
- 91: <span class="ruby-keyword kw">end</span></pre>
794
+ 90: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'text_report_no_csv'</span>,
795
+ 91: <span class="ruby-node">&quot;textreport '#{@report.fullId}' cannot be converted &quot;</span> <span class="ruby-operator">+</span>
796
+ 92: <span class="ruby-value str">&quot;into CSV format&quot;</span>)
797
+ 93: <span class="ruby-keyword kw">nil</span>
798
+ 94: <span class="ruby-keyword kw">end</span></pre>
790
799
  </div>
791
800
 
792
801
  </div>
@@ -208,6 +208,10 @@
208
208
 
209
209
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
210
210
 
211
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
212
+
213
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
214
+
211
215
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
212
216
 
213
217
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -280,8 +284,6 @@
280
284
 
281
285
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
282
286
 
283
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
284
-
285
287
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
286
288
 
287
289
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -346,6 +348,8 @@
346
348
 
347
349
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
348
350
 
351
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
352
+
349
353
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
350
354
 
351
355
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -392,8 +396,6 @@
392
396
 
393
397
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
394
398
 
395
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
396
-
397
399
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
398
400
 
399
401
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -434,6 +436,8 @@
434
436
 
435
437
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
436
438
 
439
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
440
+
437
441
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
438
442
 
439
443
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -544,6 +548,8 @@
544
548
 
545
549
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
546
550
 
551
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
552
+
547
553
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
548
554
 
549
555
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -616,7 +622,7 @@ Strings or Files.
616
622
  <div class="method-heading">
617
623
 
618
624
  <span class="method-name">new</span><span
619
- class="method-args">(masterFile, messageHandler)</span>
625
+ class="method-args">(masterFile, messageHandler, tokenPatterns, defaultMode)</span>
620
626
  <span class="method-click-advice">click to toggle source</span>
621
627
 
622
628
  </div>
@@ -637,37 +643,46 @@ messages.
637
643
  <div class="method-source-code"
638
644
  id="new-source">
639
645
  <pre>
640
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 187</span>
641
- 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>)
642
- 188: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
643
- 189: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
644
- 190: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
645
- 191: <span class="ruby-comment cmt"># text.</span>
646
- 192: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
647
- 193: <span class="ruby-comment cmt"># The currently processed IO object.</span>
648
- 194: <span class="ruby-ivar">@cf</span> = <span class="ruby-keyword kw">nil</span>
649
- 195: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
650
- 196: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 2 elements, the IO object and</span>
651
- 197: <span class="ruby-comment cmt"># the @tokenBuffer.</span>
652
- 198: <span class="ruby-ivar">@fileStack</span> = []
653
- 199: <span class="ruby-comment cmt"># This flag is set if we have reached the end of a file. Since we will</span>
654
- 200: <span class="ruby-comment cmt"># only know when the next new token is requested that the file is really</span>
655
- 201: <span class="ruby-comment cmt"># done now, we have to use this flag.</span>
656
- 202: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
657
- 203: <span class="ruby-comment cmt"># True if the scanner operates on a buffer.</span>
658
- 204: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>
659
- 205: <span class="ruby-comment cmt"># A SourceFileInfo of the start of the currently processed token.</span>
660
- 206: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-keyword kw">nil</span>
661
- 207: <span class="ruby-comment cmt"># Line number correction for error messages.</span>
662
- 208: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">0</span>
663
- 209: <span class="ruby-comment cmt"># Lists of regexps that describe the detectable tokens. The Arrays are</span>
664
- 210: <span class="ruby-comment cmt"># grouped by mode.</span>
665
- 211: <span class="ruby-ivar">@patternsByMode</span> = { }
666
- 212: <span class="ruby-comment cmt"># The currently active scanner mode.</span>
667
- 213: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-keyword kw">nil</span>
668
- 214: <span class="ruby-comment cmt"># Points to the currently active pattern set as defined by the mode.</span>
669
- 215: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-keyword kw">nil</span>
670
- 216: <span class="ruby-keyword kw">end</span></pre>
646
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 186</span>
647
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>, <span class="ruby-identifier">tokenPatterns</span>, <span class="ruby-identifier">defaultMode</span>)
648
+ 187: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
649
+ 188: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
650
+ 189: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
651
+ 190: <span class="ruby-comment cmt"># text.</span>
652
+ 191: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
653
+ 192: <span class="ruby-comment cmt"># The currently processed IO object.</span>
654
+ 193: <span class="ruby-ivar">@cf</span> = <span class="ruby-keyword kw">nil</span>
655
+ 194: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
656
+ 195: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 2 elements, the IO object and</span>
657
+ 196: <span class="ruby-comment cmt"># the @tokenBuffer.</span>
658
+ 197: <span class="ruby-ivar">@fileStack</span> = []
659
+ 198: <span class="ruby-comment cmt"># This flag is set if we have reached the end of a file. Since we will</span>
660
+ 199: <span class="ruby-comment cmt"># only know when the next new token is requested that the file is really</span>
661
+ 200: <span class="ruby-comment cmt"># done now, we have to use this flag.</span>
662
+ 201: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
663
+ 202: <span class="ruby-comment cmt"># True if the scanner operates on a buffer.</span>
664
+ 203: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>
665
+ 204: <span class="ruby-comment cmt"># A SourceFileInfo of the start of the currently processed token.</span>
666
+ 205: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-keyword kw">nil</span>
667
+ 206: <span class="ruby-comment cmt"># Line number correction for error messages.</span>
668
+ 207: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">0</span>
669
+ 208: <span class="ruby-comment cmt"># Lists of regexps that describe the detectable tokens. The Arrays are</span>
670
+ 209: <span class="ruby-comment cmt"># grouped by mode.</span>
671
+ 210: <span class="ruby-ivar">@patternsByMode</span> = { }
672
+ 211: <span class="ruby-comment cmt"># The currently active scanner mode.</span>
673
+ 212: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-keyword kw">nil</span>
674
+ 213: <span class="ruby-comment cmt"># Points to the currently active pattern set as defined by the mode.</span>
675
+ 214: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-keyword kw">nil</span>
676
+ 215:
677
+ 216: <span class="ruby-identifier">tokenPatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pat</span><span class="ruby-operator">|</span>
678
+ 217: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">0</span>]
679
+ 218: <span class="ruby-identifier">regExp</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">1</span>]
680
+ 219: <span class="ruby-identifier">mode</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">||</span> <span class="ruby-value">:tjp</span>
681
+ 220: <span class="ruby-identifier">postProc</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">3</span>]
682
+ 221: <span class="ruby-identifier">addPattern</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">postProc</span>)
683
+ 222: <span class="ruby-keyword kw">end</span>
684
+ 223: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-identifier">defaultMode</span>
685
+ 224: <span class="ruby-keyword kw">end</span></pre>
671
686
  </div>
672
687
 
673
688
  </div>
@@ -706,10 +721,10 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
706
721
  <div class="method-source-code"
707
722
  id="add-acro-source">
708
723
  <pre>
709
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 424</span>
710
- 424: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
711
- 425: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
712
- 426: <span class="ruby-keyword kw">end</span></pre>
724
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 436</span>
725
+ 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
726
+ 437: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
727
+ 438: <span class="ruby-keyword kw">end</span></pre>
713
728
  </div>
714
729
 
715
730
  </div>
@@ -750,20 +765,20 @@ href="../String.html">String</a> and returns them again in an Array.
750
765
  <div class="method-source-code"
751
766
  id="add-attern-source">
752
767
  <pre>
753
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 226</span>
754
- 226: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addPattern</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">postProc</span> = <span class="ruby-keyword kw">nil</span>)
755
- 227: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
756
- 228: <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
757
- 229: <span class="ruby-comment cmt"># The pattern is active in multiple modes</span>
758
- 230: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">m</span>)
759
- 231: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
760
- 232: <span class="ruby-keyword kw">end</span>
761
- 233: <span class="ruby-keyword kw">else</span>
762
- 234: <span class="ruby-comment cmt"># The pattern is only active in one specific mode.</span>
763
- 235: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">mode</span>)
764
- 236: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
765
- 237: <span class="ruby-keyword kw">end</span>
766
- 238: <span class="ruby-keyword kw">end</span></pre>
768
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 234</span>
769
+ 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addPattern</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">postProc</span> = <span class="ruby-keyword kw">nil</span>)
770
+ 235: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
771
+ 236: <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
772
+ 237: <span class="ruby-comment cmt"># The pattern is active in multiple modes</span>
773
+ 238: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">m</span>)
774
+ 239: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
775
+ 240: <span class="ruby-keyword kw">end</span>
776
+ 241: <span class="ruby-keyword kw">else</span>
777
+ 242: <span class="ruby-comment cmt"># The pattern is only active in one specific mode.</span>
778
+ 243: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">mode</span>)
779
+ 244: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
780
+ 245: <span class="ruby-keyword kw">end</span>
781
+ 246: <span class="ruby-keyword kw">end</span></pre>
767
782
  </div>
768
783
 
769
784
  </div>
@@ -796,15 +811,15 @@ Finish processing and reset all data structures.
796
811
  <div class="method-source-code"
797
812
  id="close-source">
798
813
  <pre>
799
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 268</span>
800
- 268: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
801
- 269: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileNameIsBuffer</span>
802
- 270: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{@masterFile}&quot;</span>)
803
- 271: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
804
- 272: <span class="ruby-keyword kw">end</span>
805
- 273: <span class="ruby-ivar">@fileStack</span> = []
806
- 274: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
807
- 275: <span class="ruby-keyword kw">end</span></pre>
814
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 276</span>
815
+ 276: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
816
+ 277: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileNameIsBuffer</span>
817
+ 278: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{@masterFile}&quot;</span>)
818
+ 279: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
819
+ 280: <span class="ruby-keyword kw">end</span>
820
+ 281: <span class="ruby-ivar">@fileStack</span> = []
821
+ 282: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
822
+ 283: <span class="ruby-keyword kw">end</span></pre>
808
823
  </div>
809
824
 
810
825
  </div>
@@ -821,7 +836,7 @@ Finish processing and reset all data structures.
821
836
  <div class="method-heading">
822
837
 
823
838
  <span class="method-name">error</span><span
824
- class="method-args">(id, text, property = nil, sfi = nil)</span>
839
+ class="method-args">(id, text, sfi = nil, data = nil)</span>
825
840
  <span class="method-click-advice">click to toggle source</span>
826
841
 
827
842
  </div>
@@ -837,10 +852,10 @@ Call this function to report any errors related to the parsed input.
837
852
  <div class="method-source-code"
838
853
  id="error-source">
839
854
  <pre>
840
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 449</span>
841
- 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>)
842
- 450: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'error'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">sfi</span>)
843
- 451: <span class="ruby-keyword kw">end</span></pre>
855
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 465</span>
856
+ 465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>)
857
+ 466: <span class="ruby-identifier">message</span>(<span class="ruby-value">:error</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">data</span>)
858
+ 467: <span class="ruby-keyword kw">end</span></pre>
844
859
  </div>
845
860
 
846
861
  </div>
@@ -876,17 +891,21 @@ is the macro name, the rest are the parameters.
876
891
  <div class="method-source-code"
877
892
  id="expand-acro-source">
878
893
  <pre>
879
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 437</span>
880
- 437: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">args</span>)
881
- 438: <span class="ruby-comment cmt"># Get the expanded macro from the @macroTable.</span>
882
- 439: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
883
- 440: <span class="ruby-comment cmt"># If the expanded macro is empty, we can ignore it.</span>
884
- 441: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
885
- 442:
886
- 443: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>)
887
- 444: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'macro_stack_overflow'</span>, <span class="ruby-value str">&quot;Too many nested macro calls.&quot;</span>)
888
- 445: <span class="ruby-keyword kw">end</span>
889
- 446: <span class="ruby-keyword kw">end</span></pre>
894
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 449</span>
895
+ 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">args</span>)
896
+ 450: <span class="ruby-comment cmt"># Get the expanded macro from the @macroTable.</span>
897
+ 451: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
898
+ 452: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">macro</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">text</span>
899
+ 453: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'undefined_macro'</span>, <span class="ruby-node">&quot;Undefined macro '#{args[0]}' called&quot;</span>)
900
+ 454: <span class="ruby-keyword kw">end</span>
901
+ 455:
902
+ 456: <span class="ruby-comment cmt"># If the expanded macro is empty, we can ignore it.</span>
903
+ 457: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
904
+ 458:
905
+ 459: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>)
906
+ 460: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'macro_stack_overflow'</span>, <span class="ruby-value str">&quot;Too many nested macro calls.&quot;</span>)
907
+ 461: <span class="ruby-keyword kw">end</span>
908
+ 462: <span class="ruby-keyword kw">end</span></pre>
890
909
  </div>
891
910
 
892
911
  </div>
@@ -920,10 +939,10 @@ text buffer, the text will be returned.
920
939
  <div class="method-source-code"
921
940
  id="file-ame-source">
922
941
  <pre>
923
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 321</span>
924
- 321: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
925
- 322: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
926
- 323: <span class="ruby-keyword kw">end</span></pre>
942
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 332</span>
943
+ 332: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
944
+ 333: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
945
+ 334: <span class="ruby-keyword kw">end</span></pre>
927
946
  </div>
928
947
 
929
948
  </div>
@@ -950,7 +969,8 @@ text buffer, the text will be returned.
950
969
  <p>
951
970
  Continue processing with a new file specified by <em>includeFileName</em>.
952
971
  When this file is finished, we will continue in the old file after the
953
- location where we started with the new file.
972
+ location where we started with the new file. The method returns the full
973
+ qualified name of the included file.
954
974
  </p>
955
975
 
956
976
 
@@ -958,39 +978,41 @@ location where we started with the new file.
958
978
  <div class="method-source-code"
959
979
  id="include-source">
960
980
  <pre>
961
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 280</span>
962
- 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">includeFileName</span>, <span class="ruby-identifier">sfi</span>)
963
- 281: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
964
- 282: <span class="ruby-identifier">pathOfCallingFile</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span>
965
- 283: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">pathOfCallingFile</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">pathOfCallingFile</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
966
- 284: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
967
- 285: <span class="ruby-comment cmt"># name relative to the including file.</span>
968
- 286: <span class="ruby-identifier">includeFileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">includeFileName</span>
969
- 287: <span class="ruby-keyword kw">end</span>
970
- 288:
971
- 289: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
972
- 290: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
973
- 291: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
974
- 292: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
975
- 293: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
976
- 294: <span class="ruby-node">&quot;Recursive inclusion of #{includeFileName} detected&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span>)
977
- 295: <span class="ruby-keyword kw">end</span>
981
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 289</span>
982
+ 289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">includeFileName</span>, <span class="ruby-identifier">sfi</span>)
983
+ 290: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
984
+ 291: <span class="ruby-identifier">pathOfCallingFile</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span>
985
+ 292: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">pathOfCallingFile</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">pathOfCallingFile</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
986
+ 293: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
987
+ 294: <span class="ruby-comment cmt"># name relative to the including file.</span>
988
+ 295: <span class="ruby-identifier">includeFileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">includeFileName</span>
978
989
  296: <span class="ruby-keyword kw">end</span>
979
990
  297:
980
- 298: <span class="ruby-comment cmt"># Save @tokenBuffer in the record of the parent file.</span>
981
- 299: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>] = <span class="ruby-ivar">@tokenBuffer</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
982
- 300: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
983
- 301: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
984
- 302:
985
- 303: <span class="ruby-comment cmt"># Open the new file and push the handle on the @fileStack.</span>
986
- 304: <span class="ruby-keyword kw">begin</span>
987
- 305: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">includeFileName</span>)), <span class="ruby-keyword kw">nil</span>, ]
988
- 306: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{includeFileName}&quot;</span>
989
- 307: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
990
- 308: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">&quot;Cannot open include file #{includeFileName}&quot;</span>,
991
- 309: <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span>)
992
- 310: <span class="ruby-keyword kw">end</span>
993
- 311: <span class="ruby-keyword kw">end</span></pre>
991
+ 298: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
992
+ 299: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
993
+ 300: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
994
+ 301: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
995
+ 302: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
996
+ 303: <span class="ruby-node">&quot;Recursive inclusion of #{includeFileName} detected&quot;</span>, <span class="ruby-identifier">sfi</span>)
997
+ 304: <span class="ruby-keyword kw">end</span>
998
+ 305: <span class="ruby-keyword kw">end</span>
999
+ 306:
1000
+ 307: <span class="ruby-comment cmt"># Save @tokenBuffer in the record of the parent file.</span>
1001
+ 308: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>] = <span class="ruby-ivar">@tokenBuffer</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
1002
+ 309: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1003
+ 310: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
1004
+ 311:
1005
+ 312: <span class="ruby-comment cmt"># Open the new file and push the handle on the @fileStack.</span>
1006
+ 313: <span class="ruby-keyword kw">begin</span>
1007
+ 314: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">includeFileName</span>)), <span class="ruby-keyword kw">nil</span>, ]
1008
+ 315: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{includeFileName}&quot;</span>
1009
+ 316: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
1010
+ 317: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">&quot;Cannot open include file #{includeFileName}&quot;</span>, <span class="ruby-identifier">sfi</span>)
1011
+ 318: <span class="ruby-keyword kw">end</span>
1012
+ 319:
1013
+ 320: <span class="ruby-comment cmt"># Return the name of the included file.</span>
1014
+ 321: <span class="ruby-identifier">includeFileName</span>
1015
+ 322: <span class="ruby-keyword kw">end</span></pre>
994
1016
  </div>
995
1017
 
996
1018
  </div>
@@ -1024,66 +1046,10 @@ added already.
1024
1046
  <div class="method-source-code"
1025
1047
  id="macro-efined--source">
1026
1048
  <pre>
1027
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 429</span>
1028
- 429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
1029
- 430: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
1030
- 431: <span class="ruby-keyword kw">end</span></pre>
1031
- </div>
1032
-
1033
- </div>
1034
-
1035
-
1036
-
1037
-
1038
- </div>
1039
-
1040
-
1041
- <div id="message-method" class="method-detail ">
1042
- <a name="method-i-message"></a>
1043
-
1044
- <div class="method-heading">
1045
-
1046
- <span class="method-name">message</span><span
1047
- class="method-args">(type, id, text, property, sfi)</span>
1048
- <span class="method-click-advice">click to toggle source</span>
1049
-
1050
- </div>
1051
-
1052
- <div class="method-description">
1053
-
1054
-
1055
-
1056
-
1057
-
1058
- <div class="method-source-code"
1059
- id="message-source">
1060
- <pre>
1061
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 457</span>
1062
- 457: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">sfi</span>)
1063
- 458: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
1064
- 459: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_s</span>,
1065
- 460: <span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">sourceFileInfo</span>)
1066
- 461: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
1067
- 462:
1068
- 463: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">empty?</span>
1069
- 464: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'Macro call history:'</span>)
1070
- 465: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
1071
- 466:
1072
- 467: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
1073
- 468: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
1074
- 469: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
1075
- 470: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span> }
1076
- 471: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
1077
- 472: <span class="ruby-node">&quot; ${#{macro.name} #{args.join(' ')}}&quot;</span>,
1078
- 473: <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
1079
- 474: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
1080
- 475: <span class="ruby-keyword kw">end</span>
1081
- 476: <span class="ruby-keyword kw">end</span>
1082
- 477: <span class="ruby-keyword kw">end</span>
1083
- 478:
1084
- 479: <span class="ruby-comment cmt"># An empty strings signals an already reported error</span>
1085
- 480: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'error'</span>
1086
- 481: <span class="ruby-keyword kw">end</span></pre>
1049
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 441</span>
1050
+ 441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
1051
+ 442: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
1052
+ 443: <span class="ruby-keyword kw">end</span></pre>
1087
1053
  </div>
1088
1054
 
1089
1055
  </div>
@@ -1117,13 +1083,13 @@ pattens of that <em>newMode</em>.
1117
1083
  <div class="method-source-code"
1118
1084
  id="mode--source">
1119
1085
  <pre>
1120
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 242</span>
1121
- 242: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mode=</span>(<span class="ruby-identifier">newMode</span>)
1122
- 243: <span class="ruby-comment cmt">#puts &quot;**** New mode: #{newMode}&quot;</span>
1123
- 244: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">newMode</span>]
1124
- 245: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Undefined mode #{newMode}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@activePatterns</span>
1125
- 246: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-identifier">newMode</span>
1126
- 247: <span class="ruby-keyword kw">end</span></pre>
1086
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 250</span>
1087
+ 250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mode=</span>(<span class="ruby-identifier">newMode</span>)
1088
+ 251: <span class="ruby-comment cmt">#puts &quot;**** New mode: #{newMode}&quot;</span>
1089
+ 252: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">newMode</span>]
1090
+ 253: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Undefined mode #{newMode}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@activePatterns</span>
1091
+ 254: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-identifier">newMode</span>
1092
+ 255: <span class="ruby-keyword kw">end</span></pre>
1127
1093
  </div>
1128
1094
 
1129
1095
  </div>
@@ -1159,78 +1125,79 @@ started.
1159
1125
  <div class="method-source-code"
1160
1126
  id="next-oken-source">
1161
1127
  <pre>
1162
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 340</span>
1163
- 340: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
1164
- 341: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
1165
- 342: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
1166
- 343: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
1167
- 344: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1168
- 345: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
1169
- 346: <span class="ruby-keyword kw">end</span>
1170
- 347:
1171
- 348: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@finishLastFile</span>
1172
- 349: <span class="ruby-comment cmt"># The previously processed file has now really been processed to</span>
1173
- 350: <span class="ruby-comment cmt"># completion. Close it and remove the corresponding entry from the</span>
1174
- 351: <span class="ruby-comment cmt"># @fileStack.</span>
1175
- 352: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
1176
- 353: <span class="ruby-comment cmt">#Log &lt;&lt; &quot;Completed file #{@cf.fileName}&quot;</span>
1177
- 354: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">close</span>
1178
- 355: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1179
- 356:
1180
- 357: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
1181
- 358: <span class="ruby-comment cmt"># We are done with the top-level file now.</span>
1182
- 359: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1183
- 360: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
1184
- 361: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span>, <span class="ruby-ivar">@startOfToken</span> ]
1185
- 362: <span class="ruby-keyword kw">else</span>
1186
- 363: <span class="ruby-comment cmt"># Continue parsing the file that included the current file.</span>
1187
- 364: <span class="ruby-ivar">@cf</span>, <span class="ruby-identifier">tokenBuffer</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1188
- 365: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{@cf.fileName} ...&quot;</span>
1189
- 366: <span class="ruby-comment cmt"># If we have a left over token from previously processing this file,</span>
1190
- 367: <span class="ruby-comment cmt"># return it now.</span>
1191
- 368: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tokenBuffer</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tokenBuffer</span>
1192
- 369: <span class="ruby-keyword kw">end</span>
1193
- 370: <span class="ruby-keyword kw">end</span>
1194
- 371:
1195
- 372: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
1196
- 373: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1197
- 374: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
1198
- 375: <span class="ruby-identifier">match</span> = <span class="ruby-keyword kw">nil</span>
1199
- 376: <span class="ruby-keyword kw">begin</span>
1200
- 377: <span class="ruby-ivar">@activePatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">re</span>, <span class="ruby-identifier">postProc</span><span class="ruby-operator">|</span>
1201
- 378: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">match</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>))
1202
- 379: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">==</span> <span class="ruby-value">:scannerEOF</span>
1203
- 380: <span class="ruby-comment cmt"># We've found the end of an input file. Return a special token</span>
1204
- 381: <span class="ruby-comment cmt"># that describes the end of a file.</span>
1205
- 382: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
1206
- 383: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span>, <span class="ruby-ivar">@startOfToken</span> ]
1207
- 384: <span class="ruby-keyword kw">end</span>
1208
- 385:
1209
- 386: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{re} matches empty string&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">empty?</span>
1210
- 387: <span class="ruby-comment cmt"># If we have a post processing method, call it now. It may modify</span>
1211
- 388: <span class="ruby-comment cmt"># the type or the found token String.</span>
1212
- 389: <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> = <span class="ruby-identifier">postProc</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">postProc</span>
1213
- 390:
1214
- 391: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt"># Ignore certain tokens with nil type.</span>
1215
- 392:
1216
- 393: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>, <span class="ruby-ivar">@startOfToken</span> ]
1217
- 394: <span class="ruby-keyword kw">end</span>
1218
- 395: <span class="ruby-keyword kw">end</span>
1219
- 396: <span class="ruby-keyword kw">rescue</span>
1220
- 397: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'scan_encoding_error'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>)
1221
- 398: <span class="ruby-keyword kw">end</span>
1222
- 399:
1223
- 400: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">nil?</span>
1224
- 401: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">eof?</span>
1225
- 402: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unexpected_eof'</span>,
1226
- 403: <span class="ruby-value str">&quot;Unexpected end of file found&quot;</span>)
1227
- 404: <span class="ruby-keyword kw">else</span>
1228
- 405: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_token_match'</span>,
1229
- 406: <span class="ruby-node">&quot;Unexpected characters found: '#{@cf.peek(10)}...'&quot;</span>)
1128
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 351</span>
1129
+ 351: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
1130
+ 352: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
1131
+ 353: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
1132
+ 354: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
1133
+ 355: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1134
+ 356: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
1135
+ 357: <span class="ruby-keyword kw">end</span>
1136
+ 358:
1137
+ 359: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@finishLastFile</span>
1138
+ 360: <span class="ruby-comment cmt"># The previously processed file has now really been processed to</span>
1139
+ 361: <span class="ruby-comment cmt"># completion. Close it and remove the corresponding entry from the</span>
1140
+ 362: <span class="ruby-comment cmt"># @fileStack.</span>
1141
+ 363: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
1142
+ 364: <span class="ruby-comment cmt">#Log &lt;&lt; &quot;Completed file #{@cf.fileName}&quot;</span>
1143
+ 365: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">close</span>
1144
+ 366: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
1145
+ 367:
1146
+ 368: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
1147
+ 369: <span class="ruby-comment cmt"># We are done with the top-level file now.</span>
1148
+ 370: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1149
+ 371: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
1150
+ 372: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span>, <span class="ruby-ivar">@startOfToken</span> ]
1151
+ 373: <span class="ruby-keyword kw">else</span>
1152
+ 374: <span class="ruby-comment cmt"># Continue parsing the file that included the current file.</span>
1153
+ 375: <span class="ruby-ivar">@cf</span>, <span class="ruby-identifier">tokenBuffer</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
1154
+ 376: <span class="ruby-constant">Log</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;Parsing file #{@cf.fileName} ...&quot;</span>
1155
+ 377: <span class="ruby-comment cmt"># If we have a left over token from previously processing this file,</span>
1156
+ 378: <span class="ruby-comment cmt"># return it now.</span>
1157
+ 379: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tokenBuffer</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tokenBuffer</span>
1158
+ 380: <span class="ruby-keyword kw">end</span>
1159
+ 381: <span class="ruby-keyword kw">end</span>
1160
+ 382:
1161
+ 383: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
1162
+ 384: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1163
+ 385: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
1164
+ 386: <span class="ruby-identifier">match</span> = <span class="ruby-keyword kw">nil</span>
1165
+ 387: <span class="ruby-keyword kw">begin</span>
1166
+ 388: <span class="ruby-ivar">@activePatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">re</span>, <span class="ruby-identifier">postProc</span><span class="ruby-operator">|</span>
1167
+ 389: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">match</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>))
1168
+ 390: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">==</span> <span class="ruby-value">:scannerEOF</span>
1169
+ 391: <span class="ruby-comment cmt"># We've found the end of an input file. Return a special token</span>
1170
+ 392: <span class="ruby-comment cmt"># that describes the end of a file.</span>
1171
+ 393: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
1172
+ 394: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span>, <span class="ruby-ivar">@startOfToken</span> ]
1173
+ 395: <span class="ruby-keyword kw">end</span>
1174
+ 396:
1175
+ 397: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{re} matches empty string&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">empty?</span>
1176
+ 398: <span class="ruby-comment cmt"># If we have a post processing method, call it now. It may modify</span>
1177
+ 399: <span class="ruby-comment cmt"># the type or the found token String.</span>
1178
+ 400: <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> = <span class="ruby-identifier">postProc</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">postProc</span>
1179
+ 401:
1180
+ 402: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt"># Ignore certain tokens with nil type.</span>
1181
+ 403:
1182
+ 404: <span class="ruby-comment cmt">#puts &quot;type: #{type} match: [#{match}]&quot;</span>
1183
+ 405: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>, <span class="ruby-ivar">@startOfToken</span> ]
1184
+ 406: <span class="ruby-keyword kw">end</span>
1230
1185
  407: <span class="ruby-keyword kw">end</span>
1231
- 408: <span class="ruby-keyword kw">end</span>
1232
- 409: <span class="ruby-keyword kw">end</span>
1233
- 410: <span class="ruby-keyword kw">end</span></pre>
1186
+ 408: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ArgumentError</span>
1187
+ 409: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'scan_encoding_error'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>)
1188
+ 410: <span class="ruby-keyword kw">end</span>
1189
+ 411:
1190
+ 412: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">nil?</span>
1191
+ 413: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">eof?</span>
1192
+ 414: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unexpected_eof'</span>,
1193
+ 415: <span class="ruby-value str">&quot;Unexpected end of file found&quot;</span>)
1194
+ 416: <span class="ruby-keyword kw">else</span>
1195
+ 417: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_token_match'</span>,
1196
+ 418: <span class="ruby-node">&quot;Unexpected characters found: '#{@cf.peek(10)}...'&quot;</span>)
1197
+ 419: <span class="ruby-keyword kw">end</span>
1198
+ 420: <span class="ruby-keyword kw">end</span>
1199
+ 421: <span class="ruby-keyword kw">end</span>
1200
+ 422: <span class="ruby-keyword kw">end</span></pre>
1234
1201
  </div>
1235
1202
 
1236
1203
  </div>
@@ -1264,21 +1231,21 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
1264
1231
  <div class="method-source-code"
1265
1232
  id="open-source">
1266
1233
  <pre>
1267
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 252</span>
1268
- 252: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
1269
- 253: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-identifier">fileNameIsBuffer</span>
1270
- 254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
1271
- 255: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
1272
- 256: <span class="ruby-keyword kw">else</span>
1273
- 257: <span class="ruby-keyword kw">begin</span>
1274
- 258: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
1275
- 259: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
1276
- 260: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Cannot open file #{@masterFile}&quot;</span>
1277
- 261: <span class="ruby-keyword kw">end</span>
1278
- 262: <span class="ruby-keyword kw">end</span>
1279
- 263: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
1280
- 264: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1281
- 265: <span class="ruby-keyword kw">end</span></pre>
1234
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 260</span>
1235
+ 260: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
1236
+ 261: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-identifier">fileNameIsBuffer</span>
1237
+ 262: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
1238
+ 263: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
1239
+ 264: <span class="ruby-keyword kw">else</span>
1240
+ 265: <span class="ruby-keyword kw">begin</span>
1241
+ 266: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
1242
+ 267: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
1243
+ 268: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'open_file'</span>, <span class="ruby-node">&quot;Cannot open file #{@masterFile}&quot;</span>)
1244
+ 269: <span class="ruby-keyword kw">end</span>
1245
+ 270: <span class="ruby-keyword kw">end</span>
1246
+ 271: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
1247
+ 272: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
1248
+ 273: <span class="ruby-keyword kw">end</span></pre>
1282
1249
  </div>
1283
1250
 
1284
1251
  </div>
@@ -1312,15 +1279,15 @@ token can be returned before the next nextToken() call.
1312
1279
  <div class="method-source-code"
1313
1280
  id="return-oken-source">
1314
1281
  <pre>
1315
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 414</span>
1316
- 414: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
1317
- 415: <span class="ruby-comment cmt">#Log &lt;&lt; &quot;-&gt; Returning Token: [#{token[0]}][#{token[1]}]&quot;</span>
1318
- 416: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
1319
- 417: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
1320
- 418: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: Cannot return more than 1 token in a row&quot;</span>
1321
- 419: <span class="ruby-keyword kw">end</span>
1322
- 420: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
1323
- 421: <span class="ruby-keyword kw">end</span></pre>
1282
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 426</span>
1283
+ 426: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
1284
+ 427: <span class="ruby-comment cmt">#Log &lt;&lt; &quot;-&gt; Returning Token: [#{token[0]}][#{token[1]}]&quot;</span>
1285
+ 428: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
1286
+ 429: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
1287
+ 430: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: Cannot return more than 1 token in a row&quot;</span>
1288
+ 431: <span class="ruby-keyword kw">end</span>
1289
+ 432: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
1290
+ 433: <span class="ruby-keyword kw">end</span></pre>
1324
1291
  </div>
1325
1292
 
1326
1293
  </div>
@@ -1354,11 +1321,11 @@ processing prosition.
1354
1321
  <div class="method-source-code"
1355
1322
  id="source-ile-nfo-source">
1356
1323
  <pre>
1357
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 314</span>
1358
- 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
1359
- 315: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineDelta</span>, <span class="ruby-value">0</span>) <span class="ruby-operator">:</span>
1360
- 316: <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>)
1361
- 317: <span class="ruby-keyword kw">end</span></pre>
1324
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 325</span>
1325
+ 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
1326
+ 326: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineDelta</span>, <span class="ruby-value">0</span>) <span class="ruby-operator">:</span>
1327
+ 327: <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>)
1328
+ 328: <span class="ruby-keyword kw">end</span></pre>
1362
1329
  </div>
1363
1330
 
1364
1331
  </div>
@@ -1375,7 +1342,7 @@ processing prosition.
1375
1342
  <div class="method-heading">
1376
1343
 
1377
1344
  <span class="method-name">warning</span><span
1378
- class="method-args">(id, text, property = nil, sfi = nil)</span>
1345
+ class="method-args">(id, text, sfi = nil, data = nil)</span>
1379
1346
  <span class="method-click-advice">click to toggle source</span>
1380
1347
 
1381
1348
  </div>
@@ -1389,10 +1356,75 @@ processing prosition.
1389
1356
  <div class="method-source-code"
1390
1357
  id="warning-source">
1391
1358
  <pre>
1392
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 453</span>
1393
- 453: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>)
1394
- 454: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">sfi</span>)
1395
- 455: <span class="ruby-keyword kw">end</span></pre>
1359
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 469</span>
1360
+ 469: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>)
1361
+ 470: <span class="ruby-identifier">message</span>(<span class="ruby-value">:warning</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">data</span>)
1362
+ 471: <span class="ruby-keyword kw">end</span></pre>
1363
+ </div>
1364
+
1365
+ </div>
1366
+
1367
+
1368
+
1369
+
1370
+ </div>
1371
+
1372
+
1373
+ </div>
1374
+
1375
+ <div id="private-instance-method-details" class="method-section section">
1376
+ <h3 class="section-header">Private Instance Methods</h3>
1377
+
1378
+
1379
+ <div id="message-method" class="method-detail ">
1380
+ <a name="method-i-message"></a>
1381
+
1382
+ <div class="method-heading">
1383
+
1384
+ <span class="method-name">message</span><span
1385
+ class="method-args">(type, id, text, sfi, data)</span>
1386
+ <span class="method-click-advice">click to toggle source</span>
1387
+
1388
+ </div>
1389
+
1390
+ <div class="method-description">
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+ <div class="method-source-code"
1397
+ id="message-source">
1398
+ <pre>
1399
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 475</span>
1400
+ 475: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">data</span>)
1401
+ 476: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
1402
+ 477: <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1403
+ 478: <span class="ruby-identifier">sfi</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">sourceFileInfo</span>
1404
+ 479:
1405
+ 480: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">empty?</span>
1406
+ 481: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'Macro call history:'</span>, <span class="ruby-keyword kw">nil</span>)
1407
+ 482:
1408
+ 483: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
1409
+ 484: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
1410
+ 485: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
1411
+ 486: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span> }
1412
+ 487: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>,
1413
+ 488: <span class="ruby-node">&quot; ${#{macro.name} #{args.join(' ')}}&quot;</span>,
1414
+ 489: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
1415
+ 490: <span class="ruby-keyword kw">end</span>
1416
+ 491: <span class="ruby-keyword kw">end</span>
1417
+ 492:
1418
+ 493: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
1419
+ 494: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:error</span>
1420
+ 495: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">data</span>)
1421
+ 496: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:warning</span>
1422
+ 497: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">data</span>)
1423
+ 498: <span class="ruby-keyword kw">else</span>
1424
+ 499: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown message type #{type}&quot;</span>
1425
+ 500: <span class="ruby-keyword kw">end</span>
1426
+ 501: <span class="ruby-keyword kw">end</span>
1427
+ 502: <span class="ruby-keyword kw">end</span></pre>
1396
1428
  </div>
1397
1429
 
1398
1430
  </div>