taskjuggler 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. data/CHANGELOG +2086 -0
  2. data/benchmarks/666tasks.tjp +3183 -0
  3. data/benchmarks/booking.tjp +14 -10
  4. data/doc/AppConfig.html +95 -73
  5. data/doc/Arguments.html +22 -2
  6. data/doc/CHANGELOG.html +2587 -0
  7. data/doc/COPYING.html +21 -1
  8. data/doc/Object.html +161 -122
  9. data/doc/README.html +21 -1
  10. data/doc/RuntimeConfig.html +26 -6
  11. data/doc/String.html +38 -18
  12. data/doc/StringIO.html +579 -0
  13. data/doc/TaskJuggler.html +251 -143
  14. data/doc/TaskJuggler/Account.html +26 -6
  15. data/doc/TaskJuggler/AccountAttribute.html +28 -8
  16. data/doc/TaskJuggler/AccountScenario.html +24 -4
  17. data/doc/TaskJuggler/Allocation.html +30 -10
  18. data/doc/TaskJuggler/AllocationAttribute.html +28 -8
  19. data/doc/TaskJuggler/AttributeBase.html +46 -26
  20. data/doc/TaskJuggler/AttributeDefinition.html +22 -2
  21. data/doc/TaskJuggler/BatchProcessor.html +40 -20
  22. data/doc/TaskJuggler/Booking.html +26 -6
  23. data/doc/TaskJuggler/BookingListAttribute.html +28 -8
  24. data/doc/TaskJuggler/BooleanAttribute.html +28 -8
  25. data/doc/TaskJuggler/CSVFile.html +308 -146
  26. data/doc/TaskJuggler/CellSettingPattern.html +22 -2
  27. data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
  28. data/doc/TaskJuggler/Charge.html +26 -6
  29. data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
  30. data/doc/TaskJuggler/ChargeSet.html +33 -13
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
  32. data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
  33. data/doc/TaskJuggler/ColumnTable.html +24 -4
  34. data/doc/TaskJuggler/Daemon.html +26 -6
  35. data/doc/TaskJuggler/DateAttribute.html +26 -6
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
  37. data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
  38. data/doc/TaskJuggler/DurationAttribute.html +28 -8
  39. data/doc/TaskJuggler/FixnumAttribute.html +24 -4
  40. data/doc/TaskJuggler/FlagListAttribute.html +28 -8
  41. data/doc/TaskJuggler/FloatAttribute.html +26 -6
  42. data/doc/TaskJuggler/FormatListAttribute.html +24 -4
  43. data/doc/TaskJuggler/GanttChart.html +147 -126
  44. data/doc/TaskJuggler/GanttContainer.html +34 -14
  45. data/doc/TaskJuggler/GanttHeader.html +28 -8
  46. data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
  47. data/doc/TaskJuggler/GanttLine.html +38 -18
  48. data/doc/TaskJuggler/GanttLoadStack.html +26 -6
  49. data/doc/TaskJuggler/GanttMilestone.html +34 -14
  50. data/doc/TaskJuggler/GanttRouter.html +50 -30
  51. data/doc/TaskJuggler/GanttTaskBar.html +34 -14
  52. data/doc/TaskJuggler/HTMLDocument.html +26 -6
  53. data/doc/TaskJuggler/HTMLGraphics.html +30 -10
  54. data/doc/TaskJuggler/Interval.html +40 -22
  55. data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
  56. data/doc/TaskJuggler/JobInfo.html +24 -4
  57. data/doc/TaskJuggler/Journal.html +226 -147
  58. data/doc/TaskJuggler/JournalEntry.html +22 -2
  59. data/doc/TaskJuggler/JournalEntryList.html +129 -112
  60. data/doc/TaskJuggler/KeywordArray.html +26 -6
  61. data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
  62. data/doc/TaskJuggler/Limits.html +152 -123
  63. data/doc/TaskJuggler/Limits/Limit.html +149 -70
  64. data/doc/TaskJuggler/LimitsAttribute.html +36 -51
  65. data/doc/TaskJuggler/ListAttributeBase.html +24 -4
  66. data/doc/TaskJuggler/Log.html +50 -32
  67. data/doc/TaskJuggler/LogFile.html +37 -17
  68. data/doc/TaskJuggler/LogicalAttribute.html +53 -33
  69. data/doc/TaskJuggler/LogicalExpression.html +26 -6
  70. data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
  71. data/doc/TaskJuggler/LogicalFlag.html +42 -22
  72. data/doc/TaskJuggler/LogicalFunction.html +204 -140
  73. data/doc/TaskJuggler/LogicalOperation.html +135 -111
  74. data/doc/TaskJuggler/Macro.html +22 -2
  75. data/doc/TaskJuggler/MacroParser.html +32 -12
  76. data/doc/TaskJuggler/MacroTable.html +32 -12
  77. data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
  78. data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
  79. data/doc/TaskJuggler/Message.html +24 -4
  80. data/doc/TaskJuggler/MessageHandler.html +24 -4
  81. data/doc/TaskJuggler/Navigator.html +104 -71
  82. data/doc/TaskJuggler/NavigatorElement.html +32 -12
  83. data/doc/TaskJuggler/NikuProject.html +22 -2
  84. data/doc/TaskJuggler/NikuReport.html +310 -228
  85. data/doc/TaskJuggler/NikuResource.html +22 -2
  86. data/doc/TaskJuggler/NodeListAttribute.html +615 -0
  87. data/doc/TaskJuggler/OnShiftCache.html +32 -12
  88. data/doc/TaskJuggler/ProcessIntercom.html +205 -78
  89. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
  90. data/doc/TaskJuggler/Project.html +708 -660
  91. data/doc/TaskJuggler/ProjectBroker.html +506 -304
  92. data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
  93. data/doc/TaskJuggler/ProjectFileParser.html +429 -373
  94. data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
  95. data/doc/TaskJuggler/ProjectRecord.html +80 -60
  96. data/doc/TaskJuggler/ProjectServer.html +312 -237
  97. data/doc/TaskJuggler/ProjectServerIface.html +101 -43
  98. data/doc/TaskJuggler/PropertyAttribute.html +32 -12
  99. data/doc/TaskJuggler/PropertyList.html +166 -145
  100. data/doc/TaskJuggler/PropertySet.html +254 -224
  101. data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
  102. data/doc/TaskJuggler/Query.html +169 -148
  103. data/doc/TaskJuggler/RTFHandlers.html +622 -0
  104. data/doc/TaskJuggler/RTFNavigator.html +28 -8
  105. data/doc/TaskJuggler/RTFQuery.html +40 -20
  106. data/doc/TaskJuggler/RTFReport.html +62 -25
  107. data/doc/TaskJuggler/RTFReportLink.html +765 -0
  108. data/doc/TaskJuggler/RealFormat.html +26 -6
  109. data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
  110. data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
  111. data/doc/TaskJuggler/Report.html +402 -251
  112. data/doc/TaskJuggler/ReportBase.html +162 -137
  113. data/doc/TaskJuggler/ReportContext.html +112 -29
  114. data/doc/TaskJuggler/ReportServer.html +89 -64
  115. data/doc/TaskJuggler/ReportServerIface.html +75 -55
  116. data/doc/TaskJuggler/ReportServerRecord.html +54 -31
  117. data/doc/TaskJuggler/ReportServlet.html +980 -0
  118. data/doc/TaskJuggler/ReportTable.html +41 -21
  119. data/doc/TaskJuggler/ReportTableCell.html +214 -170
  120. data/doc/TaskJuggler/ReportTableColumn.html +30 -10
  121. data/doc/TaskJuggler/ReportTableLegend.html +36 -16
  122. data/doc/TaskJuggler/ReportTableLine.html +32 -12
  123. data/doc/TaskJuggler/Resource.html +99 -87
  124. data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
  125. data/doc/TaskJuggler/ResourceListRE.html +47 -26
  126. data/doc/TaskJuggler/ResourceScenario.html +403 -437
  127. data/doc/TaskJuggler/RichText.html +26 -6
  128. data/doc/TaskJuggler/RichTextAttribute.html +50 -30
  129. data/doc/TaskJuggler/RichTextDocument.html +37 -17
  130. data/doc/TaskJuggler/RichTextElement.html +475 -413
  131. data/doc/TaskJuggler/RichTextException.html +22 -2
  132. data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
  133. data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
  134. data/doc/TaskJuggler/RichTextImage.html +22 -2
  135. data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
  136. data/doc/TaskJuggler/RichTextParser.html +56 -34
  137. data/doc/TaskJuggler/RichTextScanner.html +82 -61
  138. data/doc/TaskJuggler/RichTextSnip.html +34 -14
  139. data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
  140. data/doc/TaskJuggler/Scenario.html +22 -2
  141. data/doc/TaskJuggler/ScenarioData.html +30 -46
  142. data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
  143. data/doc/TaskJuggler/Scoreboard.html +42 -22
  144. data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
  145. data/doc/TaskJuggler/SheetReceiver.html +333 -295
  146. data/doc/TaskJuggler/SheetSender.html +253 -230
  147. data/doc/TaskJuggler/Shift.html +26 -6
  148. data/doc/TaskJuggler/ShiftAssignment.html +89 -73
  149. data/doc/TaskJuggler/ShiftAssignments.html +226 -234
  150. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
  151. data/doc/TaskJuggler/ShiftScenario.html +28 -8
  152. data/doc/TaskJuggler/SortListAttribute.html +34 -14
  153. data/doc/TaskJuggler/SourceFileInfo.html +24 -4
  154. data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
  155. data/doc/TaskJuggler/StatusSheetReport.html +168 -153
  156. data/doc/TaskJuggler/StatusSheetSender.html +24 -3
  157. data/doc/TaskJuggler/StringAttribute.html +38 -18
  158. data/doc/TaskJuggler/SymbolAttribute.html +32 -12
  159. data/doc/TaskJuggler/SyntaxReference.html +40 -20
  160. data/doc/TaskJuggler/TOCEntry.html +26 -6
  161. data/doc/TaskJuggler/TSResourceRecord.html +22 -2
  162. data/doc/TaskJuggler/TSTaskRecord.html +22 -2
  163. data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
  164. data/doc/TaskJuggler/TableOfContents.html +26 -6
  165. data/doc/TaskJuggler/TableReport.html +937 -904
  166. data/doc/TaskJuggler/Task.html +55 -36
  167. data/doc/TaskJuggler/TaskDependency.html +24 -4
  168. data/doc/TaskJuggler/TaskListAttribute.html +50 -30
  169. data/doc/TaskJuggler/TaskListRE.html +27 -7
  170. data/doc/TaskJuggler/TaskScenario.html +1273 -1153
  171. data/doc/TaskJuggler/TextFormatter.html +28 -8
  172. data/doc/TaskJuggler/TextParser.html +585 -338
  173. data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
  174. data/doc/TaskJuggler/TextParser/Rule.html +95 -73
  175. data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
  176. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
  177. data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
  178. data/doc/TaskJuggler/TextReport.html +28 -8
  179. data/doc/TaskJuggler/TextScanner.html +400 -1404
  180. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
  181. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
  182. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
  183. data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
  184. data/doc/TaskJuggler/TimeSheet.html +48 -28
  185. data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
  186. data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
  187. data/doc/TaskJuggler/TimeSheetReport.html +154 -133
  188. data/doc/TaskJuggler/TimeSheetSender.html +24 -3
  189. data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
  190. data/doc/TaskJuggler/TimeSheets.html +26 -6
  191. data/doc/TaskJuggler/Tj3AppBase.html +85 -58
  192. data/doc/TaskJuggler/Tj3Client.html +292 -238
  193. data/doc/TaskJuggler/Tj3Daemon.html +159 -74
  194. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
  195. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
  196. data/doc/TaskJuggler/Tj3SsSender.html +53 -26
  197. data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
  198. data/doc/TaskJuggler/Tj3TsSender.html +26 -6
  199. data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
  200. data/doc/TaskJuggler/TjException.html +22 -2
  201. data/doc/TaskJuggler/TjTime.html +216 -160
  202. data/doc/TaskJuggler/TjpExample.html +34 -14
  203. data/doc/TaskJuggler/TjpExportRE.html +403 -407
  204. data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
  205. data/doc/TaskJuggler/URLParameter.html +649 -0
  206. data/doc/TaskJuggler/UserManual.html +42 -22
  207. data/doc/TaskJuggler/WebServer.html +702 -0
  208. data/doc/TaskJuggler/WorkingHours.html +38 -18
  209. data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
  210. data/doc/TaskJuggler/XMLBlob.html +24 -4
  211. data/doc/TaskJuggler/XMLComment.html +24 -4
  212. data/doc/TaskJuggler/XMLDocument.html +30 -10
  213. data/doc/TaskJuggler/XMLElement.html +34 -14
  214. data/doc/TaskJuggler/XMLNamedText.html +22 -2
  215. data/doc/TaskJuggler/XMLText.html +24 -4
  216. data/doc/index.html +1841 -1666
  217. data/doc/lib/AccountScenario_rb.html +1 -1
  218. data/doc/lib/Account_rb.html +1 -1
  219. data/doc/lib/Allocation_rb.html +1 -1
  220. data/doc/lib/AppConfig_rb.html +2 -2
  221. data/doc/lib/AttributeBase_rb.html +1 -1
  222. data/doc/lib/AttributeDefinition_rb.html +1 -1
  223. data/doc/lib/Attributes_rb.html +2 -2
  224. data/doc/lib/BatchProcessor_rb.html +1 -1
  225. data/doc/lib/Booking_rb.html +1 -1
  226. data/doc/lib/ChargeSet_rb.html +1 -1
  227. data/doc/lib/Charge_rb.html +1 -1
  228. data/doc/lib/HTMLDocument_rb.html +1 -1
  229. data/doc/lib/Interval_rb.html +1 -1
  230. data/doc/lib/Journal_rb.html +2 -2
  231. data/doc/lib/KeywordArray_rb.html +1 -1
  232. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  233. data/doc/lib/Limits_rb.html +2 -2
  234. data/doc/lib/LogFile_rb.html +2 -2
  235. data/doc/lib/Log_rb.html +1 -1
  236. data/doc/lib/LogicalExpression_rb.html +1 -1
  237. data/doc/lib/LogicalFunction_rb.html +2 -2
  238. data/doc/lib/LogicalOperation_rb.html +2 -2
  239. data/doc/lib/MacroParser_rb.html +1 -1
  240. data/doc/lib/MacroTable_rb.html +1 -1
  241. data/doc/lib/MessageHandler_rb.html +1 -1
  242. data/doc/lib/Message_rb.html +1 -1
  243. data/doc/lib/ProjectFileParser_rb.html +4 -8
  244. data/doc/lib/ProjectFileScanner_rb.html +67 -0
  245. data/doc/lib/Project_rb.html +2 -2
  246. data/doc/lib/PropertyList_rb.html +2 -2
  247. data/doc/lib/PropertySet_rb.html +2 -2
  248. data/doc/lib/PropertyTreeNode_rb.html +2 -2
  249. data/doc/lib/Query_rb.html +2 -2
  250. data/doc/lib/RTFHandlers_rb.html +73 -0
  251. data/doc/lib/RTFNavigator_rb.html +1 -1
  252. data/doc/lib/RTFQuery_rb.html +1 -1
  253. data/doc/lib/RTFReportLink_rb.html +71 -0
  254. data/doc/lib/RTFReport_rb.html +2 -2
  255. data/doc/lib/RealFormat_rb.html +1 -1
  256. data/doc/lib/ResourceScenario_rb.html +2 -2
  257. data/doc/lib/Resource_rb.html +2 -2
  258. data/doc/lib/RichTextDocument_rb.html +1 -1
  259. data/doc/lib/RichTextElement_rb.html +2 -2
  260. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  261. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  262. data/doc/lib/RichTextParser_rb.html +2 -2
  263. data/doc/lib/RichTextScanner_rb.html +2 -2
  264. data/doc/lib/RichTextSnip_rb.html +1 -1
  265. data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
  266. data/doc/lib/RichText_rb.html +1 -1
  267. data/doc/lib/RuntimeConfig_rb.html +1 -1
  268. data/doc/lib/ScenarioData_rb.html +2 -2
  269. data/doc/lib/Scenario_rb.html +1 -1
  270. data/doc/lib/Scoreboard_rb.html +1 -1
  271. data/doc/lib/SheetHandlerBase_rb.html +1 -1
  272. data/doc/lib/SheetReceiver_rb.html +2 -2
  273. data/doc/lib/SheetSender_rb.html +4 -2
  274. data/doc/lib/ShiftAssignments_rb.html +4 -2
  275. data/doc/lib/ShiftScenario_rb.html +1 -1
  276. data/doc/lib/Shift_rb.html +1 -1
  277. data/doc/lib/SourceFileInfo_rb.html +1 -1
  278. data/doc/lib/StatusSheetReceiver_rb.html +2 -2
  279. data/doc/lib/StatusSheetSender_rb.html +2 -2
  280. data/doc/lib/SyntaxReference_rb.html +1 -1
  281. data/doc/lib/TOCEntry_rb.html +1 -1
  282. data/doc/lib/TableColumnDefinition_rb.html +2 -2
  283. data/doc/lib/TableOfContents_rb.html +1 -1
  284. data/doc/lib/TaskDependency_rb.html +1 -1
  285. data/doc/lib/TaskJuggler_rb.html +2 -2
  286. data/doc/lib/TaskScenario_rb.html +2 -2
  287. data/doc/lib/Task_rb.html +2 -2
  288. data/doc/lib/TextFormatter_rb.html +1 -1
  289. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  290. data/doc/lib/TextParser/Rule_rb.html +2 -2
  291. data/doc/lib/TextParser/StackElement_rb.html +2 -2
  292. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  293. data/doc/lib/TextParser_rb.html +2 -2
  294. data/doc/lib/TextScanner_rb.html +6 -2
  295. data/doc/lib/TimeSheetReceiver_rb.html +2 -2
  296. data/doc/lib/TimeSheetSender_rb.html +2 -2
  297. data/doc/lib/TimeSheetSummary_rb.html +2 -2
  298. data/doc/lib/TimeSheets_rb.html +2 -2
  299. data/doc/lib/Tj3AppBase_rb.html +2 -2
  300. data/doc/lib/Tj3Config_rb.html +2 -2
  301. data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
  302. data/doc/lib/TjException_rb.html +1 -1
  303. data/doc/lib/TjTime_rb.html +2 -2
  304. data/doc/lib/TjpExample_rb.html +1 -1
  305. data/doc/lib/TjpSyntaxRules_rb.html +2 -2
  306. data/doc/lib/URLParameter_rb.html +67 -0
  307. data/doc/lib/UTF8String_rb.html +1 -1
  308. data/doc/lib/UserManual_rb.html +1 -1
  309. data/doc/lib/WorkingHours_rb.html +1 -1
  310. data/doc/lib/XMLDocument_rb.html +2 -2
  311. data/doc/lib/XMLElement_rb.html +1 -1
  312. data/doc/lib/daemon/Daemon_rb.html +1 -1
  313. data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
  314. data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
  315. data/doc/lib/daemon/ProjectServer_rb.html +2 -2
  316. data/doc/lib/daemon/ReportServer_rb.html +2 -2
  317. data/doc/lib/daemon/WebServer_rb.html +75 -0
  318. data/doc/lib/deep_copy_rb.html +2 -2
  319. data/doc/lib/reports/CSVFile_rb.html +2 -2
  320. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  321. data/doc/lib/reports/GanttChart_rb.html +2 -2
  322. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  323. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  324. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  325. data/doc/lib/reports/GanttLine_rb.html +1 -1
  326. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  327. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  328. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  329. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  330. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  331. data/doc/lib/reports/Navigator_rb.html +2 -2
  332. data/doc/lib/reports/NikuReport_rb.html +2 -2
  333. data/doc/lib/reports/ReportBase_rb.html +2 -2
  334. data/doc/lib/reports/ReportContext_rb.html +2 -2
  335. data/doc/lib/reports/ReportTableCell_rb.html +2 -2
  336. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  337. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  338. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  339. data/doc/lib/reports/ReportTable_rb.html +2 -2
  340. data/doc/lib/reports/Report_rb.html +2 -2
  341. data/doc/lib/reports/ResourceListRE_rb.html +2 -2
  342. data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
  343. data/doc/lib/reports/TableReport_rb.html +2 -2
  344. data/doc/lib/reports/TaskListRE_rb.html +2 -2
  345. data/doc/lib/reports/TextReport_rb.html +1 -1
  346. data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
  347. data/doc/lib/reports/TjpExportRE_rb.html +2 -2
  348. data/doc/lib/ruby-signal-bug_rb.html +1 -1
  349. data/doc/lib/taskjuggler3_rb.html +2 -2
  350. data/doc/lib/tj3client_rb.html +2 -2
  351. data/doc/lib/tj3d_rb.html +2 -2
  352. data/doc/lib/tj3man_rb.html +1 -1
  353. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  354. data/doc/lib/tj3ss_sender_rb.html +2 -2
  355. data/doc/lib/tj3ts_receiver_rb.html +2 -2
  356. data/doc/lib/tj3ts_sender_rb.html +1 -1
  357. data/doc/lib/tj3ts_summary_rb.html +1 -1
  358. data/doc/rdoc.css +9 -4
  359. data/examples/tutorial.tjp +17 -15
  360. data/gem_spec.rb +3 -0
  361. data/lib/AppConfig.rb +3 -1
  362. data/lib/Attributes.rb +10 -8
  363. data/lib/Journal.rb +55 -20
  364. data/lib/Limits.rb +72 -46
  365. data/lib/LogFile.rb +3 -3
  366. data/lib/LogicalFunction.rb +19 -6
  367. data/lib/LogicalOperation.rb +5 -1
  368. data/lib/Project.rb +37 -9
  369. data/lib/ProjectFileParser.rb +25 -22
  370. data/lib/ProjectFileScanner.rb +365 -0
  371. data/lib/PropertyList.rb +2 -1
  372. data/lib/PropertySet.rb +14 -4
  373. data/lib/PropertyTreeNode.rb +42 -29
  374. data/lib/Query.rb +3 -1
  375. data/lib/RTFHandlers.rb +35 -0
  376. data/lib/RTFReport.rb +23 -6
  377. data/lib/RTFReportLink.rb +72 -0
  378. data/lib/Resource.rb +8 -16
  379. data/lib/ResourceScenario.rb +1 -22
  380. data/lib/RichTextElement.rb +42 -0
  381. data/lib/RichTextParser.rb +6 -4
  382. data/lib/RichTextScanner.rb +5 -5
  383. data/lib/RichTextSyntaxRules.rb +48 -10
  384. data/lib/ScenarioData.rb +5 -3
  385. data/lib/SheetReceiver.rb +24 -6
  386. data/lib/SheetSender.rb +17 -13
  387. data/lib/ShiftAssignments.rb +56 -52
  388. data/lib/StatusSheetReceiver.rb +1 -0
  389. data/lib/StatusSheetSender.rb +1 -0
  390. data/lib/TableColumnDefinition.rb +4 -2
  391. data/lib/Task.rb +8 -9
  392. data/lib/TaskJuggler.rb +21 -11
  393. data/lib/TaskScenario.rb +61 -26
  394. data/lib/TextParser.rb +268 -106
  395. data/lib/TextParser/Rule.rb +4 -2
  396. data/lib/TextParser/StackElement.rb +6 -4
  397. data/lib/TextScanner.rb +283 -700
  398. data/lib/TimeSheetReceiver.rb +1 -0
  399. data/lib/TimeSheetSender.rb +1 -0
  400. data/lib/TimeSheetSummary.rb +51 -26
  401. data/lib/TimeSheets.rb +1 -1
  402. data/lib/Tj3AppBase.rb +8 -1
  403. data/lib/Tj3Config.rb +1 -1
  404. data/lib/TjTime.rb +5 -0
  405. data/lib/TjpSyntaxRules.rb +360 -144
  406. data/lib/URLParameter.rb +30 -0
  407. data/lib/XMLDocument.rb +2 -2
  408. data/lib/daemon/ProcessIntercom.rb +50 -9
  409. data/lib/daemon/ProjectBroker.rb +63 -10
  410. data/lib/daemon/ProjectServer.rb +47 -16
  411. data/lib/daemon/ReportServer.rb +9 -4
  412. data/lib/daemon/WebServer.rb +204 -0
  413. data/lib/deep_copy.rb +4 -1
  414. data/lib/reports/CSVFile.rb +150 -66
  415. data/lib/reports/GanttChart.rb +2 -1
  416. data/lib/reports/Navigator.rb +18 -5
  417. data/lib/reports/NikuReport.rb +32 -2
  418. data/lib/reports/Report.rb +65 -37
  419. data/lib/reports/ReportBase.rb +14 -9
  420. data/lib/reports/ReportContext.rb +19 -4
  421. data/lib/reports/ReportTable.rb +2 -2
  422. data/lib/reports/ReportTableCell.rb +54 -30
  423. data/lib/reports/ResourceListRE.rb +4 -3
  424. data/lib/reports/StatusSheetReport.rb +8 -13
  425. data/lib/reports/TableReport.rb +47 -32
  426. data/lib/reports/TaskListRE.rb +3 -3
  427. data/lib/reports/TimeSheetReport.rb +14 -5
  428. data/lib/reports/TjpExportRE.rb +14 -19
  429. data/lib/taskjuggler3.rb +15 -0
  430. data/lib/tj3client.rb +9 -7
  431. data/lib/tj3d.rb +38 -10
  432. data/lib/tj3ss_sender.rb +7 -0
  433. data/lib/tj3ts_receiver.rb +1 -0
  434. data/manual/Day_To_Day_Juggling +1 -1
  435. data/manual/Rich_Text_Attributes +8 -0
  436. data/manual/TaskJuggler_2x_Migration +7 -0
  437. data/manual/The_TaskJuggler_Syntax +20 -6
  438. data/prj_cfg.rb +3 -2
  439. data/tasks/changelog.rake +36 -0
  440. data/tasks/csts.rake +2 -3
  441. data/tasks/gem.rake +10 -0
  442. data/tasks/missing.rake +0 -17
  443. data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
  444. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
  445. data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
  446. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
  447. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
  448. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
  449. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
  450. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  451. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  452. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  453. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  454. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  455. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  456. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  457. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  458. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  459. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  460. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  461. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
  462. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
  463. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
  464. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
  465. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
  466. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
  467. data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
  468. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
  469. data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
  470. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
  471. data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
  472. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
  473. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
  474. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
  475. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
  476. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
  477. data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
  478. data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
  479. data/test/TestSuite/StatusSheets/run +3 -2
  480. data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
  481. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
  482. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
  483. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
  484. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
  485. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
  486. data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
  487. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  488. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  489. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  490. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  491. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  492. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  493. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  494. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  495. data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
  496. data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
  497. data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
  498. data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
  499. data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
  500. data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
  501. data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
  502. data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
  503. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  504. data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
  505. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  506. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
  507. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
  508. data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
  509. data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
  510. data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
  511. data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
  512. data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
  513. data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
  514. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
  515. data/test/TestSuite/TimeSheets/run +5 -5
  516. data/test/test_CSVFile.rb +75 -0
  517. data/test/test_Limits.rb +63 -5
  518. data/test/test_ProjectFileScanner.rb +163 -0
  519. data/test/test_ReportGenerator.rb +81 -0
  520. data/test/test_RichText.rb +21 -3
  521. data/test/test_Scheduler.rb +1 -1
  522. data/test/test_ShiftAssignments.rb +4 -4
  523. data/test/test_Syntax.rb +1 -1
  524. data/test/test_URLParameter.rb +30 -0
  525. metadata +126 -32
  526. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
  527. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
  528. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
  529. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
  530. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
  531. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
  532. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
  533. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
  534. data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
  535. data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
  536. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
  537. data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
  538. data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
  539. data/test/TestSuite/TimeSheets/receiver.log +0 -102
  540. data/test/TestSuite/TimeSheets/sender.log +0 -794
  541. data/test/TestSuite/TimeSheets/summary.log +0 -884
  542. data/test/TestSuite/TimeSheets/timesheets.log +0 -45
  543. data/test/TestSuite/TimeSheets/tj3d.log +0 -292
  544. data/test/test_TextScanner.rb +0 -95
@@ -0,0 +1,1790 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::ProjectFileScanner</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/ProjectFileScanner_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/ProjectFileScanner.rb">lib/ProjectFileScanner.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="TextScanner.html">TaskJuggler::TextScanner</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-chop">#chop</a></li>
75
+
76
+ <li><a href="#method-i-chop2">#chop2</a></li>
77
+
78
+ <li><a href="#method-i-chop2nl">#chop2nl</a></li>
79
+
80
+ <li><a href="#method-i-endComment">#endComment</a></li>
81
+
82
+ <li><a href="#method-i-endMacroCall">#endMacroCall</a></li>
83
+
84
+ <li><a href="#method-i-endMacroDef">#endMacroDef</a></li>
85
+
86
+ <li><a href="#method-i-endStringDQ">#endStringDQ</a></li>
87
+
88
+ <li><a href="#method-i-endStringSQ">#endStringSQ</a></li>
89
+
90
+ <li><a href="#method-i-endStringSZR">#endStringSZR</a></li>
91
+
92
+ <li><a href="#method-i-firstStringSZR">#firstStringSZR</a></li>
93
+
94
+ <li><a href="#method-i-midMacroCall">#midMacroCall</a></li>
95
+
96
+ <li><a href="#method-i-midMacroDef">#midMacroDef</a></li>
97
+
98
+ <li><a href="#method-i-midStringDQ">#midStringDQ</a></li>
99
+
100
+ <li><a href="#method-i-midStringSQ">#midStringSQ</a></li>
101
+
102
+ <li><a href="#method-i-midStringSZR">#midStringSZR</a></li>
103
+
104
+ <li><a href="#method-i-newPos">#newPos</a></li>
105
+
106
+ <li><a href="#method-i-startComment">#startComment</a></li>
107
+
108
+ <li><a href="#method-i-startMacroCall">#startMacroCall</a></li>
109
+
110
+ <li><a href="#method-i-startMacroDef">#startMacroDef</a></li>
111
+
112
+ <li><a href="#method-i-startStringDQ">#startStringDQ</a></li>
113
+
114
+ <li><a href="#method-i-startStringSQ">#startStringSQ</a></li>
115
+
116
+ <li><a href="#method-i-startStringSZR">#startStringSZR</a></li>
117
+
118
+ <li><a href="#method-i-to_date">#to_date</a></li>
119
+
120
+ <li><a href="#method-i-to_f">#to_f</a></li>
121
+
122
+ <li><a href="#method-i-to_i">#to_i</a></li>
123
+
124
+ <li><a href="#method-i-to_time">#to_time</a></li>
125
+
126
+ </ul>
127
+ </div>
128
+
129
+
130
+ <!-- Included Modules -->
131
+
132
+ </div>
133
+
134
+ <div id="project-metadata">
135
+
136
+
137
+ <div id="fileindex-section" class="section project-section">
138
+ <h3 class="section-header">Files</h3>
139
+ <ul>
140
+
141
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
142
+
143
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
144
+
145
+ <li class="file"><a href="../README.html">README</a></li>
146
+
147
+ </ul>
148
+ </div>
149
+
150
+
151
+ <div id="classindex-section" class="section project-section">
152
+ <h3 class="section-header">Class Index
153
+ <span class="search-toggle"><img src="../images/find.png"
154
+ height="16" width="16" alt="[+]"
155
+ title="show/hide quicksearch" /></span></h3>
156
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
157
+ <fieldset>
158
+ <legend>Quicksearch</legend>
159
+ <input type="text" name="quicksearch" value=""
160
+ class="quicksearch-field" />
161
+ </fieldset>
162
+ </form>
163
+
164
+ <ul class="link-list">
165
+
166
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
167
+
168
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
169
+
170
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
171
+
172
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
173
+
174
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
175
+
176
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
177
+
178
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
179
+
180
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
181
+
182
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
183
+
184
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
185
+
186
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
187
+
188
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
189
+
190
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
191
+
192
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
193
+
194
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
195
+
196
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
197
+
198
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
199
+
200
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
201
+
202
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
203
+
204
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
205
+
206
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
207
+
208
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
209
+
210
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
211
+
212
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
213
+
214
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
215
+
216
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
217
+
218
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
219
+
220
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
221
+
222
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
223
+
224
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
225
+
226
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
227
+
228
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
229
+
230
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
231
+
232
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
233
+
234
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
235
+
236
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
237
+
238
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
239
+
240
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
241
+
242
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
243
+
244
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
245
+
246
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
247
+
248
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
249
+
250
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
251
+
252
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
253
+
254
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
255
+
256
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
257
+
258
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
259
+
260
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
261
+
262
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
263
+
264
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
265
+
266
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
267
+
268
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
269
+
270
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
271
+
272
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
273
+
274
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
275
+
276
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
277
+
278
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
279
+
280
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
281
+
282
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
283
+
284
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
285
+
286
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
287
+
288
+ <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
289
+
290
+ <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
291
+
292
+ <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
293
+
294
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
295
+
296
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
297
+
298
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
299
+
300
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
301
+
302
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
303
+
304
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
305
+
306
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
307
+
308
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
309
+
310
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
311
+
312
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
313
+
314
+ <li><a href="../TaskJuggler/OnShiftCache.html">TaskJuggler::OnShiftCache</a></li>
315
+
316
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
317
+
318
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
319
+
320
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
321
+
322
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
323
+
324
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
325
+
326
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
327
+
328
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
329
+
330
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
331
+
332
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
333
+
334
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
335
+
336
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
337
+
338
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
339
+
340
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
341
+
342
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
343
+
344
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
345
+
346
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
347
+
348
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
349
+
350
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
351
+
352
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
353
+
354
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
355
+
356
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
357
+
358
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
361
+
362
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
363
+
364
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
365
+
366
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
367
+
368
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
369
+
370
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
371
+
372
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
373
+
374
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
375
+
376
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
377
+
378
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
379
+
380
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
381
+
382
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
383
+
384
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
385
+
386
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
387
+
388
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
389
+
390
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
391
+
392
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
393
+
394
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
395
+
396
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
397
+
398
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
399
+
400
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
401
+
402
+ <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
403
+
404
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
405
+
406
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
407
+
408
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
409
+
410
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
411
+
412
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
413
+
414
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
415
+
416
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
417
+
418
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
419
+
420
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
421
+
422
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
423
+
424
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
425
+
426
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
427
+
428
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
429
+
430
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
431
+
432
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
433
+
434
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
435
+
436
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
437
+
438
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
439
+
440
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
441
+
442
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
443
+
444
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
445
+
446
+ <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
447
+
448
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
449
+
450
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
451
+
452
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
453
+
454
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
455
+
456
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
457
+
458
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
459
+
460
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
461
+
462
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
463
+
464
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
465
+
466
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
467
+
468
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
469
+
470
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
471
+
472
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
473
+
474
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
475
+
476
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
477
+
478
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
479
+
480
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
481
+
482
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
483
+
484
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
485
+
486
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
487
+
488
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
489
+
490
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
491
+
492
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
493
+
494
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
495
+
496
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
497
+
498
+ <li><a href="../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
499
+
500
+ <li><a href="../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
501
+
502
+ <li><a href="../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
503
+
504
+ <li><a href="../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
507
+
508
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
509
+
510
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
519
+
520
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
521
+
522
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
523
+
524
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
525
+
526
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
527
+
528
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
529
+
530
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
531
+
532
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
533
+
534
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
535
+
536
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
537
+
538
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
539
+
540
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
541
+
542
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
543
+
544
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
545
+
546
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
547
+
548
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
549
+
550
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
551
+
552
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
553
+
554
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
555
+
556
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
557
+
558
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
559
+
560
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
561
+
562
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
563
+
564
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
565
+
566
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
567
+
568
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
569
+
570
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
571
+
572
+ <li><a href="../AppConfig.html">AppConfig</a></li>
573
+
574
+ <li><a href="../Arguments.html">Arguments</a></li>
575
+
576
+ <li><a href="../Object.html">Object</a></li>
577
+
578
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
579
+
580
+ <li><a href="../String.html">String</a></li>
581
+
582
+ <li><a href="../StringIO.html">StringIO</a></li>
583
+
584
+ </ul>
585
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
586
+ </div>
587
+
588
+
589
+ </div>
590
+ </div>
591
+
592
+ <div id="documentation">
593
+ <h1 class="class">TaskJuggler::ProjectFileScanner</h1>
594
+
595
+ <div id="description">
596
+ <p>
597
+ This class specializes the <a href="TextScanner.html">TextScanner</a> class
598
+ to detect the tokens of the TJP syntax.
599
+ </p>
600
+
601
+ </div>
602
+
603
+ <!-- Constants -->
604
+
605
+
606
+ <!-- Attributes -->
607
+
608
+
609
+ <!-- Methods -->
610
+
611
+ <div id="public-class-method-details" class="method-section section">
612
+ <h3 class="section-header">Public Class Methods</h3>
613
+
614
+
615
+ <div id="new-method" class="method-detail ">
616
+ <a name="method-c-new"></a>
617
+
618
+ <div class="method-heading">
619
+
620
+ <span class="method-name">new</span><span
621
+ class="method-args">(masterFile, messageHandler)</span>
622
+ <span class="method-click-advice">click to toggle source</span>
623
+
624
+ </div>
625
+
626
+ <div class="method-description">
627
+
628
+
629
+
630
+
631
+
632
+ <div class="method-source-code"
633
+ id="new-source">
634
+ <pre>
635
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 21</span>
636
+ 21: <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>)
637
+ 22: <span class="ruby-keyword kw">super</span>
638
+ 23:
639
+ 24: <span class="ruby-identifier">tokenPatterns</span> = [
640
+ 25: <span class="ruby-comment cmt"># Any white spaces</span>
641
+ 26: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'newPos'</span>) ],
642
+ 27:
643
+ 28: <span class="ruby-comment cmt"># Single line comments starting with #</span>
644
+ 29: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-node">/#.*\n?/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'newPos'</span>) ],
645
+ 30:
646
+ 31: <span class="ruby-comment cmt"># C++ style single line comments starting with //</span>
647
+ 32: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\/\/.*\n?/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'newPos'</span>) ],
648
+ 33:
649
+ 34: <span class="ruby-comment cmt"># C style single line comment /* .. */.</span>
650
+ 35: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\/\*.*\*\//</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'newPos'</span>) ],
651
+ 36:
652
+ 37: <span class="ruby-comment cmt"># C style multi line comment: We need three patterns here. The first</span>
653
+ 38: <span class="ruby-comment cmt"># one is for the start of the string. It switches the scanner mode to</span>
654
+ 39: <span class="ruby-comment cmt"># the :cppComment mode.</span>
655
+ 40: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\/\*([^*]*[^\/]|.*)\n/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startComment'</span>) ],
656
+ 41: <span class="ruby-comment cmt"># This is the string end pattern. It switches back to tjp mode.</span>
657
+ 42: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/.*\*\//</span>, <span class="ruby-value">:cppComment</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endComment'</span>) ],
658
+ 43: <span class="ruby-comment cmt"># This pattern matches string lines that contain neither the start,</span>
659
+ 44: <span class="ruby-comment cmt"># nor the end of the string.</span>
660
+ 45: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/^.*\n/</span>, <span class="ruby-value">:cppComment</span> ],
661
+ 46:
662
+ 47: <span class="ruby-comment cmt"># Macro Call: This case is more complicated because we want to replace</span>
663
+ 48: <span class="ruby-comment cmt"># macro calls inside of numbers, strings and identifiers. For this to</span>
664
+ 49: <span class="ruby-comment cmt"># work, macro calls may have a prefix that looks like a number, a part</span>
665
+ 50: <span class="ruby-comment cmt"># of a string or an identifier. This prefix is preserved and</span>
666
+ 51: <span class="ruby-comment cmt"># re-injected into the scanner together with the expanded text. Macro</span>
667
+ 52: <span class="ruby-comment cmt"># calls may span multiple lines. The ${ and the macro name must be in</span>
668
+ 53: <span class="ruby-comment cmt"># the first line. Arguments that span multiple lines are not</span>
669
+ 54: <span class="ruby-comment cmt"># supported. As above, we need rules for the start, the end and lines</span>
670
+ 55: <span class="ruby-comment cmt"># with neither start nor end. Macro calls inside of strings need a</span>
671
+ 56: <span class="ruby-comment cmt"># special start pattern that is active in the string modes. Both</span>
672
+ 57: <span class="ruby-comment cmt"># patterns switch the scanner to macroCall mode.</span>
673
+ 58: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/([-a-zA-Z_0-9&gt;:.+]*|&quot;(\\&quot;|[^&quot;])*|'(\\'|[^'])*|-8&lt;-.*)?\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
674
+ 59: <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
675
+ 60: <span class="ruby-comment cmt"># This pattern is similar to the previous one, but is active inside of</span>
676
+ 61: <span class="ruby-comment cmt"># multi-line strings. The corresponding rule for sizzors strings</span>
677
+ 62: <span class="ruby-comment cmt"># can be found below.</span>
678
+ 63: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/(\\&quot;|[^&quot;])*\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
679
+ 64: <span class="ruby-value">:dqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
680
+ 65: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/(\\'|[^'])*\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
681
+ 66: <span class="ruby-value">:sqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
682
+ 67: <span class="ruby-comment cmt"># This pattern matches the end of a macro call. It injects the prefix</span>
683
+ 68: <span class="ruby-comment cmt"># and the expanded macro into the scanner again. The mode is restored</span>
684
+ 69: <span class="ruby-comment cmt"># to the previous mode.</span>
685
+ 70: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*\s*\}/</span>, <span class="ruby-value">:macroCall</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endMacroCall'</span>) ],
686
+ 71: <span class="ruby-comment cmt"># This pattern collects macro call arguments in lines that contain</span>
687
+ 72: <span class="ruby-comment cmt"># neither the start nor the end of the macro.</span>
688
+ 73: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/.*\n/</span>, <span class="ruby-value">:macroCall</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'midMacroCall'</span>) ],
689
+ 74:
690
+ 75: <span class="ruby-comment cmt"># An ID with a colon suffix: foo:</span>
691
+ 76: [ <span class="ruby-value str">'ID_WITH_COLON'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*:/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'chop'</span>) ],
692
+ 77:
693
+ 78: <span class="ruby-comment cmt"># An absolute ID: a.b.c</span>
694
+ 79: [ <span class="ruby-value str">'ABSOLUTE_ID'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*(\.[a-zA-Z_]\w*)+/</span> ],
695
+ 80:
696
+ 81: <span class="ruby-comment cmt"># A normal ID: bar</span>
697
+ 82: [ <span class="ruby-value str">'ID'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*/</span> ],
698
+ 83:
699
+ 84: <span class="ruby-comment cmt"># A date</span>
700
+ 85: [ <span class="ruby-value str">'DATE'</span>, <span class="ruby-regexp re">/\d{4}-\d{1,2}-\d{1,2}(-\d{1,2}:\d{1,2}(:\d{1,2})?(-[-+]?\d{4})?)?/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'to_date'</span>) ],
701
+ 86:
702
+ 87: <span class="ruby-comment cmt"># A time of day</span>
703
+ 88: [ <span class="ruby-value str">'TIME'</span>, <span class="ruby-regexp re">/\d{1,2}:\d{2}/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'to_time'</span>) ],
704
+ 89:
705
+ 90: <span class="ruby-comment cmt"># A floating point number (e. g. 3.143)</span>
706
+ 91: [ <span class="ruby-value str">'FLOAT'</span>, <span class="ruby-regexp re">/\d*\.\d+/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'to_f'</span>) ],
707
+ 92:
708
+ 93: <span class="ruby-comment cmt"># An integer number</span>
709
+ 94: [ <span class="ruby-value str">'INTEGER'</span>, <span class="ruby-regexp re">/\d+/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'to_i'</span>) ],
710
+ 95:
711
+ 96: <span class="ruby-comment cmt"># Multi line string enclosed with double quotes. The string may</span>
712
+ 97: <span class="ruby-comment cmt"># contain double quotes prefixed by a backslash. The first rule</span>
713
+ 98: <span class="ruby-comment cmt"># switches the scanner to dqString mode.</span>
714
+ 99: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/&quot;(\\&quot;|[^&quot;])*/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startStringDQ'</span>) ],
715
+ 100: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
716
+ 101: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/^(\\&quot;|[^&quot;])*\n/</span>, <span class="ruby-value">:dqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'midStringDQ'</span>) ],
717
+ 102: <span class="ruby-comment cmt"># The end of the string.</span>
718
+ 103: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/(\\&quot;|[^&quot;])*&quot;/</span>, <span class="ruby-value">:dqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endStringDQ'</span>) ],
719
+ 104:
720
+ 105: <span class="ruby-comment cmt"># Multi line string enclosed with single quotes.</span>
721
+ 106: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/'(\\'|[^'])*/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startStringSQ'</span>) ],
722
+ 107: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
723
+ 108: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/^(\\'|[^'])*\n/</span>, <span class="ruby-value">:sqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'midStringSQ'</span>) ],
724
+ 109: <span class="ruby-comment cmt"># The end of the string.</span>
725
+ 110: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/(\\'|[^'])*'/</span>, <span class="ruby-value">:sqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endStringSQ'</span>) ],
726
+ 111:
727
+ 112: <span class="ruby-comment cmt"># Scizzors marked string -8&lt;- ... -&gt;8-: The opening mark must be the</span>
728
+ 113: <span class="ruby-comment cmt"># last thing in the line. The indentation of the first line after the</span>
729
+ 114: <span class="ruby-comment cmt"># opening mark determines the indentation for all following lines. So,</span>
730
+ 115: <span class="ruby-comment cmt"># we first switch the scanner to szrString1 mode.</span>
731
+ 116: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/-8&lt;-.*\n/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startStringSZR'</span>) ],
732
+ 117: <span class="ruby-comment cmt"># Since the first line can be the last line (empty string case), we</span>
733
+ 118: <span class="ruby-comment cmt"># need to detect the end in szrString1 and szrString mode. The</span>
734
+ 119: <span class="ruby-comment cmt"># patterns switch the scanner back to tjp mode.</span>
735
+ 120: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/\s*-&gt;8-/</span>, <span class="ruby-value">:szrString1</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endStringSZR'</span>) ],
736
+ 121: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/\s*-&gt;8-/</span>, <span class="ruby-value">:szrString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endStringSZR'</span>) ],
737
+ 122: <span class="ruby-comment cmt"># This rule handles macros inside of sizzors strings.</span>
738
+ 123: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/.*\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
739
+ 124: [ <span class="ruby-value">:szrString</span>, <span class="ruby-value">:szrString1</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
740
+ 125: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
741
+ 126: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/.*\n/</span>, <span class="ruby-value">:szrString1</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'firstStringSZR'</span>) ],
742
+ 127: [ <span class="ruby-value str">'nil'</span>, <span class="ruby-regexp re">/.*\n/</span>, <span class="ruby-value">:szrString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'midStringSZR'</span>) ],
743
+ 128:
744
+ 129: <span class="ruby-comment cmt"># Single line macro definition</span>
745
+ 130: [ <span class="ruby-value str">'MACRO'</span>, <span class="ruby-regexp re">/\[.*\]\n/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'chop2nl'</span>) ],
746
+ 131:
747
+ 132: <span class="ruby-comment cmt"># Multi line macro definition: The pattern switches the scanner into</span>
748
+ 133: <span class="ruby-comment cmt"># macroDef mode.</span>
749
+ 134: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\[.*\n/</span>, <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroDef'</span>) ],
750
+ 135: <span class="ruby-comment cmt"># The end of the macro is marked by a ']' that is immediately followed</span>
751
+ 136: <span class="ruby-comment cmt"># by a line break. It switches the scanner back to tjp mode.</span>
752
+ 137: [ <span class="ruby-value str">'MACRO'</span>, <span class="ruby-regexp re">/.*\]\n/</span>, <span class="ruby-value">:macroDef</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'endMacroDef'</span>) ],
753
+ 138: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
754
+ 139: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/.*\n/</span>, <span class="ruby-value">:macroDef</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'midMacroDef'</span>) ],
755
+ 140:
756
+ 141: <span class="ruby-comment cmt"># Some multi-char literals.</span>
757
+ 142: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/&lt;=?/</span> ],
758
+ 143: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/&gt;=?/</span> ],
759
+ 144: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/!=?/</span> ],
760
+ 145:
761
+ 146: <span class="ruby-comment cmt"># Everything else is returned as a single-char literal.</span>
762
+ 147: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/./</span> ]
763
+ 148: ]
764
+ 149:
765
+ 150: <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>
766
+ 151: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">0</span>]
767
+ 152: <span class="ruby-identifier">regExp</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">1</span>]
768
+ 153: <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>
769
+ 154: <span class="ruby-identifier">postProc</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">3</span>]
770
+ 155: <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>)
771
+ 156: <span class="ruby-keyword kw">end</span>
772
+ 157: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
773
+ 158: <span class="ruby-keyword kw">end</span></pre>
774
+ </div>
775
+
776
+ </div>
777
+
778
+
779
+
780
+
781
+ </div>
782
+
783
+
784
+ </div>
785
+
786
+ <div id="private-instance-method-details" class="method-section section">
787
+ <h3 class="section-header">Private Instance Methods</h3>
788
+
789
+
790
+ <div id="chop-method" class="method-detail ">
791
+ <a name="method-i-chop"></a>
792
+
793
+ <div class="method-heading">
794
+
795
+ <span class="method-name">chop</span><span
796
+ class="method-args">(type, match)</span>
797
+ <span class="method-click-advice">click to toggle source</span>
798
+
799
+ </div>
800
+
801
+ <div class="method-description">
802
+
803
+
804
+
805
+
806
+
807
+ <div class="method-source-code"
808
+ id="chop-source">
809
+ <pre>
810
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 187</span>
811
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chop</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
812
+ 188: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] ]
813
+ 189: <span class="ruby-keyword kw">end</span></pre>
814
+ </div>
815
+
816
+ </div>
817
+
818
+
819
+
820
+
821
+ </div>
822
+
823
+
824
+ <div id="chop--method" class="method-detail ">
825
+ <a name="method-i-chop2"></a>
826
+
827
+ <div class="method-heading">
828
+
829
+ <span class="method-name">chop2</span><span
830
+ class="method-args">(type, match)</span>
831
+ <span class="method-click-advice">click to toggle source</span>
832
+
833
+ </div>
834
+
835
+ <div class="method-description">
836
+
837
+
838
+
839
+
840
+
841
+ <div class="method-source-code"
842
+ id="chop--source">
843
+ <pre>
844
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 191</span>
845
+ 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chop2</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
846
+ 192: <span class="ruby-comment cmt"># Remove first and last character.</span>
847
+ 193: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] ]
848
+ 194: <span class="ruby-keyword kw">end</span></pre>
849
+ </div>
850
+
851
+ </div>
852
+
853
+
854
+
855
+
856
+ </div>
857
+
858
+
859
+ <div id="chop-nl-method" class="method-detail ">
860
+ <a name="method-i-chop2nl"></a>
861
+
862
+ <div class="method-heading">
863
+
864
+ <span class="method-name">chop2nl</span><span
865
+ class="method-args">(type, match)</span>
866
+ <span class="method-click-advice">click to toggle source</span>
867
+
868
+ </div>
869
+
870
+ <div class="method-description">
871
+
872
+
873
+
874
+
875
+
876
+ <div class="method-source-code"
877
+ id="chop-nl-source">
878
+ <pre>
879
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 196</span>
880
+ 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chop2nl</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
881
+ 197: <span class="ruby-comment cmt"># remove first and last 2 characters.</span>
882
+ 198: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>] ]
883
+ 199: <span class="ruby-keyword kw">end</span></pre>
884
+ </div>
885
+
886
+ </div>
887
+
888
+
889
+
890
+
891
+ </div>
892
+
893
+
894
+ <div id="end-omment-method" class="method-detail ">
895
+ <a name="method-i-endComment"></a>
896
+
897
+ <div class="method-heading">
898
+
899
+ <span class="method-name">endComment</span><span
900
+ class="method-args">(type, match)</span>
901
+ <span class="method-click-advice">click to toggle source</span>
902
+
903
+ </div>
904
+
905
+ <div class="method-description">
906
+
907
+
908
+
909
+
910
+
911
+ <div class="method-source-code"
912
+ id="end-omment-source">
913
+ <pre>
914
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 206</span>
915
+ 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endComment</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
916
+ 207: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
917
+ 208: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
918
+ 209: <span class="ruby-keyword kw">end</span></pre>
919
+ </div>
920
+
921
+ </div>
922
+
923
+
924
+
925
+
926
+ </div>
927
+
928
+
929
+ <div id="end-acro-all-method" class="method-detail ">
930
+ <a name="method-i-endMacroCall"></a>
931
+
932
+ <div class="method-heading">
933
+
934
+ <span class="method-name">endMacroCall</span><span
935
+ class="method-args">(type, match)</span>
936
+ <span class="method-click-advice">click to toggle source</span>
937
+
938
+ </div>
939
+
940
+ <div class="method-description">
941
+
942
+
943
+
944
+
945
+
946
+ <div class="method-source-code"
947
+ id="end-acro-all-source">
948
+ <pre>
949
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 320</span>
950
+ 320: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endMacroCall</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
951
+ 321: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-ivar">@macroCallPreviousMode</span>
952
+ 322: <span class="ruby-ivar">@macroCall</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
953
+ 323:
954
+ 324: <span class="ruby-comment cmt"># Store any characters that precede the ${ in prefix and remove it from</span>
955
+ 325: <span class="ruby-comment cmt"># @macroCall.</span>
956
+ 326: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">macroStart</span> = <span class="ruby-ivar">@macroCall</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'${'</span>)) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
957
+ 327: <span class="ruby-identifier">prefix</span> = <span class="ruby-ivar">@macroCall</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">macroStart</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
958
+ 328: <span class="ruby-ivar">@macroCall</span> = <span class="ruby-ivar">@macroCall</span>[<span class="ruby-identifier">macroStart</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
959
+ 329: <span class="ruby-keyword kw">else</span>
960
+ 330: <span class="ruby-identifier">prefix</span> = <span class="ruby-value str">''</span>
961
+ 331: <span class="ruby-keyword kw">end</span>
962
+ 332:
963
+ 333: <span class="ruby-comment cmt"># Remove '${' and '}'</span>
964
+ 334: <span class="ruby-identifier">argsStr</span> = <span class="ruby-ivar">@macroCall</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>]
965
+ 335: <span class="ruby-comment cmt"># Extract the macro name.</span>
966
+ 336: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">nameEnd</span> = <span class="ruby-identifier">argsStr</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">' '</span>)).<span class="ruby-identifier">nil?</span>
967
+ 337: <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, [ <span class="ruby-identifier">argsStr</span> ])
968
+ 338: <span class="ruby-keyword kw">else</span>
969
+ 339: <span class="ruby-identifier">macroName</span> = <span class="ruby-identifier">argsStr</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">argsStr</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">' '</span>)]
970
+ 340: <span class="ruby-comment cmt"># Remove the name part from argsStr</span>
971
+ 341: <span class="ruby-identifier">argsStr</span> = <span class="ruby-identifier">argsStr</span>[<span class="ruby-identifier">macroName</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
972
+ 342: <span class="ruby-comment cmt"># Array to hold the arguments</span>
973
+ 343: <span class="ruby-identifier">args</span> = []
974
+ 344: <span class="ruby-comment cmt"># We use another StringScanner to clean the double quotes.</span>
975
+ 345: <span class="ruby-identifier">scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argsStr</span>)
976
+ 346: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/\s*&quot;/</span>))
977
+ 347: <span class="ruby-identifier">args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/(\\&quot;|[^&quot;])*/</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\&quot;/</span>, <span class="ruby-value str">'&quot;'</span>)
978
+ 348: <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/&quot;\s*/</span>)
979
+ 349: <span class="ruby-keyword kw">end</span>
980
+ 350:
981
+ 351: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">eos?</span>
982
+ 352: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Junk found at end of macro: #{argsStr[scanner.pos..-1]}&quot;</span>
983
+ 353: <span class="ruby-keyword kw">end</span>
984
+ 354:
985
+ 355: <span class="ruby-comment cmt"># Expand the macro and inject it into the scanner.</span>
986
+ 356: <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, [ <span class="ruby-identifier">macroName</span> ] <span class="ruby-operator">+</span> <span class="ruby-identifier">args</span>)
987
+ 357: <span class="ruby-keyword kw">end</span>
988
+ 358:
989
+ 359: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
990
+ 360: <span class="ruby-keyword kw">end</span></pre>
991
+ </div>
992
+
993
+ </div>
994
+
995
+
996
+
997
+
998
+ </div>
999
+
1000
+
1001
+ <div id="end-acro-ef-method" class="method-detail ">
1002
+ <a name="method-i-endMacroDef"></a>
1003
+
1004
+ <div class="method-heading">
1005
+
1006
+ <span class="method-name">endMacroDef</span><span
1007
+ class="method-args">(type, match)</span>
1008
+ <span class="method-click-advice">click to toggle source</span>
1009
+
1010
+ </div>
1011
+
1012
+ <div class="method-description">
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+ <div class="method-source-code"
1019
+ id="end-acro-ef-source">
1020
+ <pre>
1021
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 301</span>
1022
+ 301: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endMacroDef</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1023
+ 302: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1024
+ 303: <span class="ruby-comment cmt"># Remove &quot;]\n&quot;</span>
1025
+ 304: <span class="ruby-ivar">@macroDef</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>]
1026
+ 305: [ <span class="ruby-value str">'MACRO'</span>, <span class="ruby-ivar">@macroDef</span> ]
1027
+ 306: <span class="ruby-keyword kw">end</span></pre>
1028
+ </div>
1029
+
1030
+ </div>
1031
+
1032
+
1033
+
1034
+
1035
+ </div>
1036
+
1037
+
1038
+ <div id="end-tring--method" class="method-detail ">
1039
+ <a name="method-i-endStringDQ"></a>
1040
+
1041
+ <div class="method-heading">
1042
+
1043
+ <span class="method-name">endStringDQ</span><span
1044
+ class="method-args">(type, match)</span>
1045
+ <span class="method-click-advice">click to toggle source</span>
1046
+
1047
+ </div>
1048
+
1049
+ <div class="method-description">
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+ <div class="method-source-code"
1056
+ id="end-tring--source">
1057
+ <pre>
1058
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 224</span>
1059
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endStringDQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1060
+ 225: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1061
+ 226: <span class="ruby-comment cmt"># Remove the trailing &quot; and remove the backslashes from escaped &quot;.</span>
1062
+ 227: <span class="ruby-ivar">@string</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\&quot;/</span>, <span class="ruby-value str">'&quot;'</span>)
1063
+ 228: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1064
+ 229: <span class="ruby-keyword kw">end</span></pre>
1065
+ </div>
1066
+
1067
+ </div>
1068
+
1069
+
1070
+
1071
+
1072
+ </div>
1073
+
1074
+
1075
+ <div id="end-tring--method" class="method-detail ">
1076
+ <a name="method-i-endStringSQ"></a>
1077
+
1078
+ <div class="method-heading">
1079
+
1080
+ <span class="method-name">endStringSQ</span><span
1081
+ class="method-args">(type, match)</span>
1082
+ <span class="method-click-advice">click to toggle source</span>
1083
+
1084
+ </div>
1085
+
1086
+ <div class="method-description">
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+ <div class="method-source-code"
1093
+ id="end-tring--source">
1094
+ <pre>
1095
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 244</span>
1096
+ 244: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endStringSQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1097
+ 245: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1098
+ 246: <span class="ruby-comment cmt"># Remove the trailing ' and remove the backslashes from escaped '.</span>
1099
+ 247: <span class="ruby-ivar">@string</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\'/</span>, <span class="ruby-value str">&quot;'&quot;</span>)
1100
+ 248: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1101
+ 249: <span class="ruby-keyword kw">end</span></pre>
1102
+ </div>
1103
+
1104
+ </div>
1105
+
1106
+
1107
+
1108
+
1109
+ </div>
1110
+
1111
+
1112
+ <div id="end-tring--method" class="method-detail ">
1113
+ <a name="method-i-endStringSZR"></a>
1114
+
1115
+ <div class="method-heading">
1116
+
1117
+ <span class="method-name">endStringSZR</span><span
1118
+ class="method-args">(type, match)</span>
1119
+ <span class="method-click-advice">click to toggle source</span>
1120
+
1121
+ </div>
1122
+
1123
+ <div class="method-description">
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+ <div class="method-source-code"
1130
+ id="end-tring--source">
1131
+ <pre>
1132
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 284</span>
1133
+ 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">endStringSZR</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1134
+ 285: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1135
+ 286: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1136
+ 287: <span class="ruby-keyword kw">end</span></pre>
1137
+ </div>
1138
+
1139
+ </div>
1140
+
1141
+
1142
+
1143
+
1144
+ </div>
1145
+
1146
+
1147
+ <div id="first-tring--method" class="method-detail ">
1148
+ <a name="method-i-firstStringSZR"></a>
1149
+
1150
+ <div class="method-heading">
1151
+
1152
+ <span class="method-name">firstStringSZR</span><span
1153
+ class="method-args">(type, match)</span>
1154
+ <span class="method-click-advice">click to toggle source</span>
1155
+
1156
+ </div>
1157
+
1158
+ <div class="method-description">
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+ <div class="method-source-code"
1165
+ id="first-tring--source">
1166
+ <pre>
1167
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 266</span>
1168
+ 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">firstStringSZR</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1169
+ 267: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:szrString</span>
1170
+ 268: <span class="ruby-comment cmt"># Split the leading indentation and the rest of the string.</span>
1171
+ 269: <span class="ruby-identifier">foo</span>, <span class="ruby-ivar">@indent</span>, <span class="ruby-ivar">@string</span> = *<span class="ruby-regexp re">/(\s*)(.*\n)/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">match</span>)
1172
+ 270: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1173
+ 271: <span class="ruby-keyword kw">end</span></pre>
1174
+ </div>
1175
+
1176
+ </div>
1177
+
1178
+
1179
+
1180
+
1181
+ </div>
1182
+
1183
+
1184
+ <div id="mid-acro-all-method" class="method-detail ">
1185
+ <a name="method-i-midMacroCall"></a>
1186
+
1187
+ <div class="method-heading">
1188
+
1189
+ <span class="method-name">midMacroCall</span><span
1190
+ class="method-args">(type, match)</span>
1191
+ <span class="method-click-advice">click to toggle source</span>
1192
+
1193
+ </div>
1194
+
1195
+ <div class="method-description">
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+ <div class="method-source-code"
1202
+ id="mid-acro-all-source">
1203
+ <pre>
1204
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 315</span>
1205
+ 315: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midMacroCall</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1206
+ 316: <span class="ruby-ivar">@macroCall</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
1207
+ 317: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1208
+ 318: <span class="ruby-keyword kw">end</span></pre>
1209
+ </div>
1210
+
1211
+ </div>
1212
+
1213
+
1214
+
1215
+
1216
+ </div>
1217
+
1218
+
1219
+ <div id="mid-acro-ef-method" class="method-detail ">
1220
+ <a name="method-i-midMacroDef"></a>
1221
+
1222
+ <div class="method-heading">
1223
+
1224
+ <span class="method-name">midMacroDef</span><span
1225
+ class="method-args">(type, match)</span>
1226
+ <span class="method-click-advice">click to toggle source</span>
1227
+
1228
+ </div>
1229
+
1230
+ <div class="method-description">
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+ <div class="method-source-code"
1237
+ id="mid-acro-ef-source">
1238
+ <pre>
1239
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 296</span>
1240
+ 296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midMacroDef</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1241
+ 297: <span class="ruby-ivar">@macroDef</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
1242
+ 298: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1243
+ 299: <span class="ruby-keyword kw">end</span></pre>
1244
+ </div>
1245
+
1246
+ </div>
1247
+
1248
+
1249
+
1250
+
1251
+ </div>
1252
+
1253
+
1254
+ <div id="mid-tring--method" class="method-detail ">
1255
+ <a name="method-i-midStringDQ"></a>
1256
+
1257
+ <div class="method-heading">
1258
+
1259
+ <span class="method-name">midStringDQ</span><span
1260
+ class="method-args">(type, match)</span>
1261
+ <span class="method-click-advice">click to toggle source</span>
1262
+
1263
+ </div>
1264
+
1265
+ <div class="method-description">
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+ <div class="method-source-code"
1272
+ id="mid-tring--source">
1273
+ <pre>
1274
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 218</span>
1275
+ 218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midStringDQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1276
+ 219: <span class="ruby-comment cmt"># Remove the backslashes from escaped &quot;.</span>
1277
+ 220: <span class="ruby-ivar">@string</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\&quot;/</span>, <span class="ruby-value str">'&quot;'</span>)
1278
+ 221: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1279
+ 222: <span class="ruby-keyword kw">end</span></pre>
1280
+ </div>
1281
+
1282
+ </div>
1283
+
1284
+
1285
+
1286
+
1287
+ </div>
1288
+
1289
+
1290
+ <div id="mid-tring--method" class="method-detail ">
1291
+ <a name="method-i-midStringSQ"></a>
1292
+
1293
+ <div class="method-heading">
1294
+
1295
+ <span class="method-name">midStringSQ</span><span
1296
+ class="method-args">(type, match)</span>
1297
+ <span class="method-click-advice">click to toggle source</span>
1298
+
1299
+ </div>
1300
+
1301
+ <div class="method-description">
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+ <div class="method-source-code"
1308
+ id="mid-tring--source">
1309
+ <pre>
1310
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 238</span>
1311
+ 238: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midStringSQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1312
+ 239: <span class="ruby-comment cmt"># Remove the backslashes from escaped '.</span>
1313
+ 240: <span class="ruby-ivar">@string</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\'/</span>, <span class="ruby-value str">&quot;'&quot;</span>)
1314
+ 241: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1315
+ 242: <span class="ruby-keyword kw">end</span></pre>
1316
+ </div>
1317
+
1318
+ </div>
1319
+
1320
+
1321
+
1322
+
1323
+ </div>
1324
+
1325
+
1326
+ <div id="mid-tring--method" class="method-detail ">
1327
+ <a name="method-i-midStringSZR"></a>
1328
+
1329
+ <div class="method-heading">
1330
+
1331
+ <span class="method-name">midStringSZR</span><span
1332
+ class="method-args">(type, match)</span>
1333
+ <span class="method-click-advice">click to toggle source</span>
1334
+
1335
+ </div>
1336
+
1337
+ <div class="method-description">
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+ <div class="method-source-code"
1344
+ id="mid-tring--source">
1345
+ <pre>
1346
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 273</span>
1347
+ 273: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">midStringSZR</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1348
+ 274: <span class="ruby-comment cmt"># Ignore all the characters from the begining of match that are the same</span>
1349
+ 275: <span class="ruby-comment cmt"># in @indent.</span>
1350
+ 276: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1351
+ 277: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-ivar">@indent</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@indent</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">match</span>[<span class="ruby-identifier">i</span>]
1352
+ 278: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1353
+ 279: <span class="ruby-keyword kw">end</span>
1354
+ 280: <span class="ruby-ivar">@string</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
1355
+ 281: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1356
+ 282: <span class="ruby-keyword kw">end</span></pre>
1357
+ </div>
1358
+
1359
+ </div>
1360
+
1361
+
1362
+
1363
+
1364
+ </div>
1365
+
1366
+
1367
+ <div id="new-os-method" class="method-detail ">
1368
+ <a name="method-i-newPos"></a>
1369
+
1370
+ <div class="method-heading">
1371
+
1372
+ <span class="method-name">newPos</span><span
1373
+ class="method-args">(type, match)</span>
1374
+ <span class="method-click-advice">click to toggle source</span>
1375
+
1376
+ </div>
1377
+
1378
+ <div class="method-description">
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+ <div class="method-source-code"
1385
+ id="new-os-source">
1386
+ <pre>
1387
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 182</span>
1388
+ 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">newPos</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1389
+ 183: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1390
+ 184: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1391
+ 185: <span class="ruby-keyword kw">end</span></pre>
1392
+ </div>
1393
+
1394
+ </div>
1395
+
1396
+
1397
+
1398
+
1399
+ </div>
1400
+
1401
+
1402
+ <div id="start-omment-method" class="method-detail ">
1403
+ <a name="method-i-startComment"></a>
1404
+
1405
+ <div class="method-heading">
1406
+
1407
+ <span class="method-name">startComment</span><span
1408
+ class="method-args">(type, match)</span>
1409
+ <span class="method-click-advice">click to toggle source</span>
1410
+
1411
+ </div>
1412
+
1413
+ <div class="method-description">
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+ <div class="method-source-code"
1420
+ id="start-omment-source">
1421
+ <pre>
1422
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 201</span>
1423
+ 201: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startComment</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1424
+ 202: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:cppComment</span>
1425
+ 203: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1426
+ 204: <span class="ruby-keyword kw">end</span></pre>
1427
+ </div>
1428
+
1429
+ </div>
1430
+
1431
+
1432
+
1433
+
1434
+ </div>
1435
+
1436
+
1437
+ <div id="start-acro-all-method" class="method-detail ">
1438
+ <a name="method-i-startMacroCall"></a>
1439
+
1440
+ <div class="method-heading">
1441
+
1442
+ <span class="method-name">startMacroCall</span><span
1443
+ class="method-args">(type, match)</span>
1444
+ <span class="method-click-advice">click to toggle source</span>
1445
+
1446
+ </div>
1447
+
1448
+ <div class="method-description">
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+ <div class="method-source-code"
1455
+ id="start-acro-all-source">
1456
+ <pre>
1457
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 308</span>
1458
+ 308: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startMacroCall</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1459
+ 309: <span class="ruby-ivar">@macroCallPreviousMode</span> = <span class="ruby-ivar">@scannerMode</span>
1460
+ 310: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:macroCall</span>
1461
+ 311: <span class="ruby-ivar">@macroCall</span> = <span class="ruby-identifier">match</span>
1462
+ 312: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1463
+ 313: <span class="ruby-keyword kw">end</span></pre>
1464
+ </div>
1465
+
1466
+ </div>
1467
+
1468
+
1469
+
1470
+
1471
+ </div>
1472
+
1473
+
1474
+ <div id="start-acro-ef-method" class="method-detail ">
1475
+ <a name="method-i-startMacroDef"></a>
1476
+
1477
+ <div class="method-heading">
1478
+
1479
+ <span class="method-name">startMacroDef</span><span
1480
+ class="method-args">(type, match)</span>
1481
+ <span class="method-click-advice">click to toggle source</span>
1482
+
1483
+ </div>
1484
+
1485
+ <div class="method-description">
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+ <div class="method-source-code"
1492
+ id="start-acro-ef-source">
1493
+ <pre>
1494
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 289</span>
1495
+ 289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startMacroDef</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1496
+ 290: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:macroDef</span>
1497
+ 291: <span class="ruby-comment cmt"># Remove the opening '['</span>
1498
+ 292: <span class="ruby-ivar">@macroDef</span> = <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
1499
+ 293: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1500
+ 294: <span class="ruby-keyword kw">end</span></pre>
1501
+ </div>
1502
+
1503
+ </div>
1504
+
1505
+
1506
+
1507
+
1508
+ </div>
1509
+
1510
+
1511
+ <div id="start-tring--method" class="method-detail ">
1512
+ <a name="method-i-startStringDQ"></a>
1513
+
1514
+ <div class="method-heading">
1515
+
1516
+ <span class="method-name">startStringDQ</span><span
1517
+ class="method-args">(type, match)</span>
1518
+ <span class="method-click-advice">click to toggle source</span>
1519
+
1520
+ </div>
1521
+
1522
+ <div class="method-description">
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+ <div class="method-source-code"
1529
+ id="start-tring--source">
1530
+ <pre>
1531
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 211</span>
1532
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startStringDQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1533
+ 212: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:dqString</span>
1534
+ 213: <span class="ruby-comment cmt"># Remove the opening &quot; and remove the backslashes from escaped &quot;.</span>
1535
+ 214: <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\&quot;/</span>, <span class="ruby-value str">'&quot;'</span>)
1536
+ 215: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1537
+ 216: <span class="ruby-keyword kw">end</span></pre>
1538
+ </div>
1539
+
1540
+ </div>
1541
+
1542
+
1543
+
1544
+
1545
+ </div>
1546
+
1547
+
1548
+ <div id="start-tring--method" class="method-detail ">
1549
+ <a name="method-i-startStringSQ"></a>
1550
+
1551
+ <div class="method-heading">
1552
+
1553
+ <span class="method-name">startStringSQ</span><span
1554
+ class="method-args">(type, match)</span>
1555
+ <span class="method-click-advice">click to toggle source</span>
1556
+
1557
+ </div>
1558
+
1559
+ <div class="method-description">
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+ <div class="method-source-code"
1566
+ id="start-tring--source">
1567
+ <pre>
1568
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 231</span>
1569
+ 231: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startStringSQ</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1570
+ 232: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:sqString</span>
1571
+ 233: <span class="ruby-comment cmt"># Remove the opening ' and remove the backslashes from escaped '.</span>
1572
+ 234: <span class="ruby-ivar">@string</span> = <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\'/</span>, <span class="ruby-value str">&quot;'&quot;</span>)
1573
+ 235: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1574
+ 236: <span class="ruby-keyword kw">end</span></pre>
1575
+ </div>
1576
+
1577
+ </div>
1578
+
1579
+
1580
+
1581
+
1582
+ </div>
1583
+
1584
+
1585
+ <div id="start-tring--method" class="method-detail ">
1586
+ <a name="method-i-startStringSZR"></a>
1587
+
1588
+ <div class="method-heading">
1589
+
1590
+ <span class="method-name">startStringSZR</span><span
1591
+ class="method-args">(type, match)</span>
1592
+ <span class="method-click-advice">click to toggle source</span>
1593
+
1594
+ </div>
1595
+
1596
+ <div class="method-description">
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+ <div class="method-source-code"
1603
+ id="start-tring--source">
1604
+ <pre>
1605
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 251</span>
1606
+ 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startStringSZR</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1607
+ 252: <span class="ruby-comment cmt"># There should be a line break after the cut mark, but we allow some</span>
1608
+ 253: <span class="ruby-comment cmt"># spaces between the mark and the line break as well.</span>
1609
+ 254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">5</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp re">/-8&lt;-\s*\n$/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">match</span>).<span class="ruby-identifier">nil?</span>
1610
+ 255: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">1</span>
1611
+ 256: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'junk_after_cut'</span>,
1612
+ 257: <span class="ruby-value str">'The cut mark -8&lt;- must be immediately followed by a '</span> <span class="ruby-operator">+</span>
1613
+ 258: <span class="ruby-value str">'line break.'</span>)
1614
+ 259: <span class="ruby-keyword kw">end</span>
1615
+ 260: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:szrString1</span>
1616
+ 261: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1617
+ 262: <span class="ruby-ivar">@string</span> = <span class="ruby-value str">''</span>
1618
+ 263: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1619
+ 264: <span class="ruby-keyword kw">end</span></pre>
1620
+ </div>
1621
+
1622
+ </div>
1623
+
1624
+
1625
+
1626
+
1627
+ </div>
1628
+
1629
+
1630
+ <div id="to-date-method" class="method-detail ">
1631
+ <a name="method-i-to_date"></a>
1632
+
1633
+ <div class="method-heading">
1634
+
1635
+ <span class="method-name">to_date</span><span
1636
+ class="method-args">(type, match)</span>
1637
+ <span class="method-click-advice">click to toggle source</span>
1638
+
1639
+ </div>
1640
+
1641
+ <div class="method-description">
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+ <div class="method-source-code"
1648
+ id="to-date-source">
1649
+ <pre>
1650
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 178</span>
1651
+ 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_date</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1652
+ 179: [ <span class="ruby-identifier">type</span>, <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">match</span>) ]
1653
+ 180: <span class="ruby-keyword kw">end</span></pre>
1654
+ </div>
1655
+
1656
+ </div>
1657
+
1658
+
1659
+
1660
+
1661
+ </div>
1662
+
1663
+
1664
+ <div id="to-f-method" class="method-detail ">
1665
+ <a name="method-i-to_f"></a>
1666
+
1667
+ <div class="method-heading">
1668
+
1669
+ <span class="method-name">to_f</span><span
1670
+ class="method-args">(type, match)</span>
1671
+ <span class="method-click-advice">click to toggle source</span>
1672
+
1673
+ </div>
1674
+
1675
+ <div class="method-description">
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+ <div class="method-source-code"
1682
+ id="to-f-source">
1683
+ <pre>
1684
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 166</span>
1685
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_f</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1686
+ 167: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>.<span class="ruby-identifier">to_f</span> ]
1687
+ 168: <span class="ruby-keyword kw">end</span></pre>
1688
+ </div>
1689
+
1690
+ </div>
1691
+
1692
+
1693
+
1694
+
1695
+ </div>
1696
+
1697
+
1698
+ <div id="to-i-method" class="method-detail ">
1699
+ <a name="method-i-to_i"></a>
1700
+
1701
+ <div class="method-heading">
1702
+
1703
+ <span class="method-name">to_i</span><span
1704
+ class="method-args">(type, match)</span>
1705
+ <span class="method-click-advice">click to toggle source</span>
1706
+
1707
+ </div>
1708
+
1709
+ <div class="method-description">
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+ <div class="method-source-code"
1716
+ id="to-i-source">
1717
+ <pre>
1718
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 162</span>
1719
+ 162: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_i</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1720
+ 163: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>.<span class="ruby-identifier">to_i</span> ]
1721
+ 164: <span class="ruby-keyword kw">end</span></pre>
1722
+ </div>
1723
+
1724
+ </div>
1725
+
1726
+
1727
+
1728
+
1729
+ </div>
1730
+
1731
+
1732
+ <div id="to-time-method" class="method-detail ">
1733
+ <a name="method-i-to_time"></a>
1734
+
1735
+ <div class="method-heading">
1736
+
1737
+ <span class="method-name">to_time</span><span
1738
+ class="method-args">(type, match)</span>
1739
+ <span class="method-click-advice">click to toggle source</span>
1740
+
1741
+ </div>
1742
+
1743
+ <div class="method-description">
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+ <div class="method-source-code"
1750
+ id="to-time-source">
1751
+ <pre>
1752
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 170</span>
1753
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_time</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
1754
+ 171: <span class="ruby-identifier">h</span>, <span class="ruby-identifier">m</span>, <span class="ruby-identifier">s</span> = <span class="ruby-identifier">match</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
1755
+ 172: <span class="ruby-identifier">h</span> = <span class="ruby-identifier">h</span>.<span class="ruby-identifier">to_i</span>
1756
+ 173: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">to_i</span>
1757
+ 174: <span class="ruby-identifier">s</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">nil?</span>
1758
+ 175: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">h</span> * <span class="ruby-value">3600</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">m</span> * <span class="ruby-value">60</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">s</span> ]
1759
+ 176: <span class="ruby-keyword kw">end</span></pre>
1760
+ </div>
1761
+
1762
+ </div>
1763
+
1764
+
1765
+
1766
+
1767
+ </div>
1768
+
1769
+
1770
+ </div>
1771
+
1772
+
1773
+ </div>
1774
+
1775
+
1776
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1777
+
1778
+ <p>Disabled; run with --debug to generate this.</p>
1779
+
1780
+ </div>
1781
+
1782
+ <div id="validator-badges">
1783
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1784
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1785
+ Rdoc Generator</a> 1.1.6</small>.</p>
1786
+ </div>
1787
+
1788
+ </body>
1789
+ </html>
1790
+