taskjuggler 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -215,6 +215,10 @@
215
215
 
216
216
  <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
217
217
 
218
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
219
+
220
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
221
+
218
222
  <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
219
223
 
220
224
  <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
@@ -287,8 +291,6 @@
287
291
 
288
292
  <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
289
293
 
290
- <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
291
-
292
294
  <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
293
295
 
294
296
  <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
@@ -353,6 +355,8 @@
353
355
 
354
356
  <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
355
357
 
358
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
359
+
356
360
  <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
357
361
 
358
362
  <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
@@ -399,8 +403,6 @@
399
403
 
400
404
  <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
401
405
 
402
- <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
403
-
404
406
  <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
405
407
 
406
408
  <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
@@ -441,6 +443,8 @@
441
443
 
442
444
  <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
443
445
 
446
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
447
+
444
448
  <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
445
449
 
446
450
  <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
@@ -551,6 +555,8 @@
551
555
 
552
556
  <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
553
557
 
558
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
559
+
554
560
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
555
561
 
556
562
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
@@ -634,143 +640,134 @@ to detect the tokens of the TJP syntax.
634
640
  <pre>
635
641
  <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 21</span>
636
642
  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>
643
+ 22: <span class="ruby-identifier">tokenPatterns</span> = [
644
+ 23: <span class="ruby-comment cmt"># Any white spaces</span>
645
+ 24: [ <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>) ],
646
+ 25:
647
+ 26: <span class="ruby-comment cmt"># Single line comments starting with #</span>
648
+ 27: [ <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>) ],
649
+ 28:
650
+ 29: <span class="ruby-comment cmt"># C++ style single line comments starting with //</span>
651
+ 30: [ <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>) ],
652
+ 31:
653
+ 32: <span class="ruby-comment cmt"># C style single line comment /* .. */.</span>
654
+ 33: [ <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>) ],
655
+ 34:
656
+ 35: <span class="ruby-comment cmt"># C style multi line comment: We need three patterns here. The first</span>
657
+ 36: <span class="ruby-comment cmt"># one is for the start of the string. It switches the scanner mode to</span>
658
+ 37: <span class="ruby-comment cmt"># the :cppComment mode.</span>
659
+ 38: [ <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>) ],
660
+ 39: <span class="ruby-comment cmt"># This is the string end pattern. It switches back to tjp mode.</span>
661
+ 40: [ <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>) ],
662
+ 41: <span class="ruby-comment cmt"># This pattern matches string lines that contain neither the start,</span>
663
+ 42: <span class="ruby-comment cmt"># nor the end of the string.</span>
664
+ 43: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/^.*\n/</span>, <span class="ruby-value">:cppComment</span> ],
665
+ 44:
666
+ 45: <span class="ruby-comment cmt"># Macro Call: This case is more complicated because we want to replace</span>
667
+ 46: <span class="ruby-comment cmt"># macro calls inside of numbers, strings and identifiers. For this to</span>
668
+ 47: <span class="ruby-comment cmt"># work, macro calls may have a prefix that looks like a number, a part</span>
669
+ 48: <span class="ruby-comment cmt"># of a string or an identifier. This prefix is preserved and</span>
670
+ 49: <span class="ruby-comment cmt"># re-injected into the scanner together with the expanded text. Macro</span>
671
+ 50: <span class="ruby-comment cmt"># calls may span multiple lines. The ${ and the macro name must be in</span>
672
+ 51: <span class="ruby-comment cmt"># the first line. Arguments that span multiple lines are not</span>
673
+ 52: <span class="ruby-comment cmt"># supported. As above, we need rules for the start, the end and lines</span>
674
+ 53: <span class="ruby-comment cmt"># with neither start nor end. Macro calls inside of strings need a</span>
675
+ 54: <span class="ruby-comment cmt"># special start pattern that is active in the string modes. Both</span>
676
+ 55: <span class="ruby-comment cmt"># patterns switch the scanner to macroCall mode.</span>
677
+ 56: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/([-a-zA-Z_0-9&gt;:.+]*|&quot;(\\&quot;|[^&quot;])*?|'(\\'|[^'])*?)?\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
678
+ 57: <span class="ruby-value">:tjp</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
679
+ 58: <span class="ruby-comment cmt"># This pattern is similar to the previous one, but is active inside of</span>
680
+ 59: <span class="ruby-comment cmt"># multi-line strings. The corresponding rule for sizzors strings</span>
681
+ 60: <span class="ruby-comment cmt"># can be found below.</span>
682
+ 61: [ <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>,
683
+ 62: <span class="ruby-value">:dqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
684
+ 63: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/(\\'|[^'])*?\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
685
+ 64: <span class="ruby-value">:sqString</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'startMacroCall'</span>) ],
686
+ 65: <span class="ruby-comment cmt"># This pattern matches the end of a macro call. It injects the prefix</span>
687
+ 66: <span class="ruby-comment cmt"># and the expanded macro into the scanner again. The mode is restored</span>
688
+ 67: <span class="ruby-comment cmt"># to the previous mode.</span>
689
+ 68: [ <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>) ],
690
+ 69: <span class="ruby-comment cmt"># This pattern collects macro call arguments in lines that contain</span>
691
+ 70: <span class="ruby-comment cmt"># neither the start nor the end of the macro.</span>
692
+ 71: [ <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>) ],
693
+ 72:
694
+ 73: <span class="ruby-comment cmt"># An ID with a colon suffix: foo:</span>
695
+ 74: [ <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>) ],
696
+ 75:
697
+ 76: <span class="ruby-comment cmt"># An absolute ID: a.b.c</span>
698
+ 77: [ <span class="ruby-value str">'ABSOLUTE_ID'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*(\.[a-zA-Z_]\w*)+/</span> ],
699
+ 78:
700
+ 79: <span class="ruby-comment cmt"># A normal ID: bar</span>
701
+ 80: [ <span class="ruby-value str">'ID'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*/</span> ],
702
+ 81:
703
+ 82: <span class="ruby-comment cmt"># A date</span>
704
+ 83: [ <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>) ],
705
+ 84:
706
+ 85: <span class="ruby-comment cmt"># A time of day</span>
707
+ 86: [ <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>) ],
708
+ 87:
709
+ 88: <span class="ruby-comment cmt"># A floating point number (e. g. 3.143)</span>
710
+ 89: [ <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>) ],
711
+ 90:
712
+ 91: <span class="ruby-comment cmt"># An integer number</span>
713
+ 92: [ <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>) ],
714
+ 93:
715
+ 94: <span class="ruby-comment cmt"># Multi line string enclosed with double quotes. The string may</span>
716
+ 95: <span class="ruby-comment cmt"># contain double quotes prefixed by a backslash. The first rule</span>
717
+ 96: <span class="ruby-comment cmt"># switches the scanner to dqString mode.</span>
718
+ 97: [ <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>) ],
719
+ 98: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
720
+ 99: [ <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>) ],
721
+ 100: <span class="ruby-comment cmt"># The end of the string.</span>
722
+ 101: [ <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>) ],
723
+ 102:
724
+ 103: <span class="ruby-comment cmt"># Multi line string enclosed with single quotes.</span>
725
+ 104: [ <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>) ],
726
+ 105: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
727
+ 106: [ <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>) ],
728
+ 107: <span class="ruby-comment cmt"># The end of the string.</span>
729
+ 108: [ <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>) ],
730
+ 109:
731
+ 110: <span class="ruby-comment cmt"># Scizzors marked string -8&lt;- ... -&gt;8-: The opening mark must be the</span>
732
+ 111: <span class="ruby-comment cmt"># last thing in the line. The indentation of the first line after the</span>
733
+ 112: <span class="ruby-comment cmt"># opening mark determines the indentation for all following lines. So,</span>
734
+ 113: <span class="ruby-comment cmt"># we first switch the scanner to szrString1 mode.</span>
735
+ 114: [ <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>) ],
736
+ 115: <span class="ruby-comment cmt"># Since the first line can be the last line (empty string case), we</span>
737
+ 116: <span class="ruby-comment cmt"># need to detect the end in szrString1 and szrString mode. The</span>
738
+ 117: <span class="ruby-comment cmt"># patterns switch the scanner back to tjp mode.</span>
739
+ 118: [ <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>) ],
740
+ 119: [ <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>) ],
741
+ 120: <span class="ruby-comment cmt"># This rule handles macros inside of sizzors strings.</span>
742
+ 121: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/.*?\$\{\s*([a-zA-Z_]\w*)(\s*&quot;(\\&quot;|[^&quot;])*&quot;)*/</span>,
743
+ 122: [ <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>) ],
744
+ 123: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
745
+ 124: [ <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>) ],
746
+ 125: [ <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>) ],
747
+ 126:
748
+ 127: <span class="ruby-comment cmt"># Single line macro definition</span>
749
+ 128: [ <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>) ],
750
+ 129:
751
+ 130: <span class="ruby-comment cmt"># Multi line macro definition: The pattern switches the scanner into</span>
752
+ 131: <span class="ruby-comment cmt"># macroDef mode.</span>
753
+ 132: [ <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>) ],
754
+ 133: <span class="ruby-comment cmt"># The end of the macro is marked by a ']' that is immediately followed</span>
755
+ 134: <span class="ruby-comment cmt"># by a line break. It switches the scanner back to tjp mode.</span>
756
+ 135: [ <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>) ],
757
+ 136: <span class="ruby-comment cmt"># Any line not containing the start or end.</span>
758
+ 137: [ <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>) ],
759
+ 138:
760
+ 139: <span class="ruby-comment cmt"># Some multi-char literals.</span>
761
+ 140: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/&lt;=?/</span> ],
762
+ 141: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/&gt;=?/</span> ],
763
+ 142: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/!=?/</span> ],
764
+ 143:
765
+ 144: <span class="ruby-comment cmt"># Everything else is returned as a single-char literal.</span>
766
+ 145: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/./</span> ]
767
+ 146: ]
768
+ 147:
769
+ 148: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>, <span class="ruby-identifier">tokenPatterns</span>, <span class="ruby-value">:tjp</span>)
770
+ 149: <span class="ruby-keyword kw">end</span></pre>
774
771
  </div>
775
772
 
776
773
  </div>
@@ -807,10 +804,10 @@ to detect the tokens of the TJP syntax.
807
804
  <div class="method-source-code"
808
805
  id="chop-source">
809
806
  <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>
807
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 178</span>
808
+ 178: <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>)
809
+ 179: [ <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>] ]
810
+ 180: <span class="ruby-keyword kw">end</span></pre>
814
811
  </div>
815
812
 
816
813
  </div>
@@ -841,11 +838,11 @@ to detect the tokens of the TJP syntax.
841
838
  <div class="method-source-code"
842
839
  id="chop--source">
843
840
  <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>
841
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 182</span>
842
+ 182: <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>)
843
+ 183: <span class="ruby-comment cmt"># Remove first and last character.</span>
844
+ 184: [ <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>] ]
845
+ 185: <span class="ruby-keyword kw">end</span></pre>
849
846
  </div>
850
847
 
851
848
  </div>
@@ -876,11 +873,11 @@ to detect the tokens of the TJP syntax.
876
873
  <div class="method-source-code"
877
874
  id="chop-nl-source">
878
875
  <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>
876
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 187</span>
877
+ 187: <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>)
878
+ 188: <span class="ruby-comment cmt"># remove first and last 2 characters.</span>
879
+ 189: [ <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>] ]
880
+ 190: <span class="ruby-keyword kw">end</span></pre>
884
881
  </div>
885
882
 
886
883
  </div>
@@ -911,11 +908,11 @@ to detect the tokens of the TJP syntax.
911
908
  <div class="method-source-code"
912
909
  id="end-omment-source">
913
910
  <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>
911
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 197</span>
912
+ 197: <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>)
913
+ 198: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
914
+ 199: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
915
+ 200: <span class="ruby-keyword kw">end</span></pre>
919
916
  </div>
920
917
 
921
918
  </div>
@@ -946,48 +943,48 @@ to detect the tokens of the TJP syntax.
946
943
  <div class="method-source-code"
947
944
  id="end-acro-all-source">
948
945
  <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>
946
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 311</span>
947
+ 311: <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>)
948
+ 312: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-ivar">@macroCallPreviousMode</span>
949
+ 313: <span class="ruby-ivar">@macroCall</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
950
+ 314:
951
+ 315: <span class="ruby-comment cmt"># Store any characters that precede the ${ in prefix and remove it from</span>
952
+ 316: <span class="ruby-comment cmt"># @macroCall.</span>
953
+ 317: <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>
954
+ 318: <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>)]
955
+ 319: <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>]
956
+ 320: <span class="ruby-keyword kw">else</span>
957
+ 321: <span class="ruby-identifier">prefix</span> = <span class="ruby-value str">''</span>
958
+ 322: <span class="ruby-keyword kw">end</span>
953
959
  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>]
960
+ 324: <span class="ruby-comment cmt"># Remove '${' and '}'</span>
961
+ 325: <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>]
962
+ 326: <span class="ruby-comment cmt"># Extract the macro name.</span>
963
+ 327: <span class="ruby-keyword kw">if</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>
964
+ 328: <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, [ <span class="ruby-identifier">argsStr</span> ])
959
965
  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>
966
+ 330: <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>)]
967
+ 331: <span class="ruby-comment cmt"># Remove the name part from argsStr</span>
968
+ 332: <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>]
969
+ 333: <span class="ruby-comment cmt"># Array to hold the arguments</span>
970
+ 334: <span class="ruby-identifier">args</span> = []
971
+ 335: <span class="ruby-comment cmt"># We use another StringScanner to clean the double quotes.</span>
972
+ 336: <span class="ruby-identifier">scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argsStr</span>)
973
+ 337: <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>))
974
+ 338: <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>)
975
+ 339: <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/&quot;\s*/</span>)
976
+ 340: <span class="ruby-keyword kw">end</span>
977
+ 341:
978
+ 342: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">eos?</span>
979
+ 343: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Junk found at end of macro: #{argsStr[scanner.pos..-1]}&quot;</span>
980
+ 344: <span class="ruby-keyword kw">end</span>
981
+ 345:
982
+ 346: <span class="ruby-comment cmt"># Expand the macro and inject it into the scanner.</span>
983
+ 347: <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>)
984
+ 348: <span class="ruby-keyword kw">end</span>
985
+ 349:
986
+ 350: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
987
+ 351: <span class="ruby-keyword kw">end</span></pre>
991
988
  </div>
992
989
 
993
990
  </div>
@@ -1018,13 +1015,13 @@ to detect the tokens of the TJP syntax.
1018
1015
  <div class="method-source-code"
1019
1016
  id="end-acro-ef-source">
1020
1017
  <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>
1018
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 292</span>
1019
+ 292: <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>)
1020
+ 293: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1021
+ 294: <span class="ruby-comment cmt"># Remove &quot;]\n&quot;</span>
1022
+ 295: <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>]
1023
+ 296: [ <span class="ruby-value str">'MACRO'</span>, <span class="ruby-ivar">@macroDef</span> ]
1024
+ 297: <span class="ruby-keyword kw">end</span></pre>
1028
1025
  </div>
1029
1026
 
1030
1027
  </div>
@@ -1055,13 +1052,13 @@ to detect the tokens of the TJP syntax.
1055
1052
  <div class="method-source-code"
1056
1053
  id="end-tring--source">
1057
1054
  <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>
1055
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 215</span>
1056
+ 215: <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>)
1057
+ 216: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1058
+ 217: <span class="ruby-comment cmt"># Remove the trailing &quot; and remove the backslashes from escaped &quot;.</span>
1059
+ 218: <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>)
1060
+ 219: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1061
+ 220: <span class="ruby-keyword kw">end</span></pre>
1065
1062
  </div>
1066
1063
 
1067
1064
  </div>
@@ -1092,13 +1089,13 @@ to detect the tokens of the TJP syntax.
1092
1089
  <div class="method-source-code"
1093
1090
  id="end-tring--source">
1094
1091
  <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>
1092
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 235</span>
1093
+ 235: <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>)
1094
+ 236: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1095
+ 237: <span class="ruby-comment cmt"># Remove the trailing ' and remove the backslashes from escaped '.</span>
1096
+ 238: <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>)
1097
+ 239: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1098
+ 240: <span class="ruby-keyword kw">end</span></pre>
1102
1099
  </div>
1103
1100
 
1104
1101
  </div>
@@ -1129,11 +1126,11 @@ to detect the tokens of the TJP syntax.
1129
1126
  <div class="method-source-code"
1130
1127
  id="end-tring--source">
1131
1128
  <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>
1129
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 275</span>
1130
+ 275: <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>)
1131
+ 276: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:tjp</span>
1132
+ 277: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-ivar">@string</span> ]
1133
+ 278: <span class="ruby-keyword kw">end</span></pre>
1137
1134
  </div>
1138
1135
 
1139
1136
  </div>
@@ -1164,13 +1161,13 @@ to detect the tokens of the TJP syntax.
1164
1161
  <div class="method-source-code"
1165
1162
  id="first-tring--source">
1166
1163
  <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>
1164
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 257</span>
1165
+ 257: <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>)
1166
+ 258: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:szrString</span>
1167
+ 259: <span class="ruby-comment cmt"># Split the leading indentation and the rest of the string.</span>
1168
+ 260: <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>)[<span class="ruby-value">1</span>, <span class="ruby-value">2</span>]
1169
+ 261: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1170
+ 262: <span class="ruby-keyword kw">end</span></pre>
1174
1171
  </div>
1175
1172
 
1176
1173
  </div>
@@ -1201,11 +1198,11 @@ to detect the tokens of the TJP syntax.
1201
1198
  <div class="method-source-code"
1202
1199
  id="mid-acro-all-source">
1203
1200
  <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>
1201
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 306</span>
1202
+ 306: <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>)
1203
+ 307: <span class="ruby-ivar">@macroCall</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
1204
+ 308: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1205
+ 309: <span class="ruby-keyword kw">end</span></pre>
1209
1206
  </div>
1210
1207
 
1211
1208
  </div>
@@ -1236,11 +1233,11 @@ to detect the tokens of the TJP syntax.
1236
1233
  <div class="method-source-code"
1237
1234
  id="mid-acro-ef-source">
1238
1235
  <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>
1236
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 287</span>
1237
+ 287: <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>)
1238
+ 288: <span class="ruby-ivar">@macroDef</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">match</span>
1239
+ 289: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1240
+ 290: <span class="ruby-keyword kw">end</span></pre>
1244
1241
  </div>
1245
1242
 
1246
1243
  </div>
@@ -1271,12 +1268,12 @@ to detect the tokens of the TJP syntax.
1271
1268
  <div class="method-source-code"
1272
1269
  id="mid-tring--source">
1273
1270
  <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>
1271
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 209</span>
1272
+ 209: <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>)
1273
+ 210: <span class="ruby-comment cmt"># Remove the backslashes from escaped &quot;.</span>
1274
+ 211: <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>)
1275
+ 212: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1276
+ 213: <span class="ruby-keyword kw">end</span></pre>
1280
1277
  </div>
1281
1278
 
1282
1279
  </div>
@@ -1307,12 +1304,12 @@ to detect the tokens of the TJP syntax.
1307
1304
  <div class="method-source-code"
1308
1305
  id="mid-tring--source">
1309
1306
  <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>
1307
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 229</span>
1308
+ 229: <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>)
1309
+ 230: <span class="ruby-comment cmt"># Remove the backslashes from escaped '.</span>
1310
+ 231: <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>)
1311
+ 232: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1312
+ 233: <span class="ruby-keyword kw">end</span></pre>
1316
1313
  </div>
1317
1314
 
1318
1315
  </div>
@@ -1343,17 +1340,17 @@ to detect the tokens of the TJP syntax.
1343
1340
  <div class="method-source-code"
1344
1341
  id="mid-tring--source">
1345
1342
  <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>
1343
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 264</span>
1344
+ 264: <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>)
1345
+ 265: <span class="ruby-comment cmt"># Ignore all the characters from the begining of match that are the same</span>
1346
+ 266: <span class="ruby-comment cmt"># in @indent.</span>
1347
+ 267: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
1348
+ 268: <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>]
1349
+ 269: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1350
+ 270: <span class="ruby-keyword kw">end</span>
1351
+ 271: <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>]
1352
+ 272: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1353
+ 273: <span class="ruby-keyword kw">end</span></pre>
1357
1354
  </div>
1358
1355
 
1359
1356
  </div>
@@ -1384,11 +1381,11 @@ to detect the tokens of the TJP syntax.
1384
1381
  <div class="method-source-code"
1385
1382
  id="new-os-source">
1386
1383
  <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>
1384
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 173</span>
1385
+ 173: <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>)
1386
+ 174: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1387
+ 175: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1388
+ 176: <span class="ruby-keyword kw">end</span></pre>
1392
1389
  </div>
1393
1390
 
1394
1391
  </div>
@@ -1419,11 +1416,11 @@ to detect the tokens of the TJP syntax.
1419
1416
  <div class="method-source-code"
1420
1417
  id="start-omment-source">
1421
1418
  <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>
1419
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 192</span>
1420
+ 192: <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>)
1421
+ 193: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:cppComment</span>
1422
+ 194: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1423
+ 195: <span class="ruby-keyword kw">end</span></pre>
1427
1424
  </div>
1428
1425
 
1429
1426
  </div>
@@ -1454,13 +1451,13 @@ to detect the tokens of the TJP syntax.
1454
1451
  <div class="method-source-code"
1455
1452
  id="start-acro-all-source">
1456
1453
  <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>
1454
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 299</span>
1455
+ 299: <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>)
1456
+ 300: <span class="ruby-ivar">@macroCallPreviousMode</span> = <span class="ruby-ivar">@scannerMode</span>
1457
+ 301: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:macroCall</span>
1458
+ 302: <span class="ruby-ivar">@macroCall</span> = <span class="ruby-identifier">match</span>
1459
+ 303: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1460
+ 304: <span class="ruby-keyword kw">end</span></pre>
1464
1461
  </div>
1465
1462
 
1466
1463
  </div>
@@ -1491,13 +1488,13 @@ to detect the tokens of the TJP syntax.
1491
1488
  <div class="method-source-code"
1492
1489
  id="start-acro-ef-source">
1493
1490
  <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>
1491
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 280</span>
1492
+ 280: <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>)
1493
+ 281: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:macroDef</span>
1494
+ 282: <span class="ruby-comment cmt"># Remove the opening '['</span>
1495
+ 283: <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>]
1496
+ 284: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1497
+ 285: <span class="ruby-keyword kw">end</span></pre>
1501
1498
  </div>
1502
1499
 
1503
1500
  </div>
@@ -1528,13 +1525,13 @@ to detect the tokens of the TJP syntax.
1528
1525
  <div class="method-source-code"
1529
1526
  id="start-tring--source">
1530
1527
  <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>
1528
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 202</span>
1529
+ 202: <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>)
1530
+ 203: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:dqString</span>
1531
+ 204: <span class="ruby-comment cmt"># Remove the opening &quot; and remove the backslashes from escaped &quot;.</span>
1532
+ 205: <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>)
1533
+ 206: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1534
+ 207: <span class="ruby-keyword kw">end</span></pre>
1538
1535
  </div>
1539
1536
 
1540
1537
  </div>
@@ -1565,13 +1562,13 @@ to detect the tokens of the TJP syntax.
1565
1562
  <div class="method-source-code"
1566
1563
  id="start-tring--source">
1567
1564
  <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>
1565
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 222</span>
1566
+ 222: <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>)
1567
+ 223: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:sqString</span>
1568
+ 224: <span class="ruby-comment cmt"># Remove the opening ' and remove the backslashes from escaped '.</span>
1569
+ 225: <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>)
1570
+ 226: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1571
+ 227: <span class="ruby-keyword kw">end</span></pre>
1575
1572
  </div>
1576
1573
 
1577
1574
  </div>
@@ -1602,21 +1599,21 @@ to detect the tokens of the TJP syntax.
1602
1599
  <div class="method-source-code"
1603
1600
  id="start-tring--source">
1604
1601
  <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>
1602
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 242</span>
1603
+ 242: <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>)
1604
+ 243: <span class="ruby-comment cmt"># There should be a line break after the cut mark, but we allow some</span>
1605
+ 244: <span class="ruby-comment cmt"># spaces between the mark and the line break as well.</span>
1606
+ 245: <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>
1607
+ 246: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">1</span>
1608
+ 247: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'junk_after_cut'</span>,
1609
+ 248: <span class="ruby-value str">'The cut mark -8&lt;- must be immediately followed by a '</span> <span class="ruby-operator">+</span>
1610
+ 249: <span class="ruby-value str">'line break.'</span>)
1611
+ 250: <span class="ruby-keyword kw">end</span>
1612
+ 251: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:szrString1</span>
1613
+ 252: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
1614
+ 253: <span class="ruby-ivar">@string</span> = <span class="ruby-value str">''</span>
1615
+ 254: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">''</span> ]
1616
+ 255: <span class="ruby-keyword kw">end</span></pre>
1620
1617
  </div>
1621
1618
 
1622
1619
  </div>
@@ -1647,10 +1644,10 @@ to detect the tokens of the TJP syntax.
1647
1644
  <div class="method-source-code"
1648
1645
  id="to-date-source">
1649
1646
  <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>
1647
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 169</span>
1648
+ 169: <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>)
1649
+ 170: [ <span class="ruby-identifier">type</span>, <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">match</span>) ]
1650
+ 171: <span class="ruby-keyword kw">end</span></pre>
1654
1651
  </div>
1655
1652
 
1656
1653
  </div>
@@ -1681,10 +1678,10 @@ to detect the tokens of the TJP syntax.
1681
1678
  <div class="method-source-code"
1682
1679
  id="to-f-source">
1683
1680
  <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>
1681
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 157</span>
1682
+ 157: <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>)
1683
+ 158: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>.<span class="ruby-identifier">to_f</span> ]
1684
+ 159: <span class="ruby-keyword kw">end</span></pre>
1688
1685
  </div>
1689
1686
 
1690
1687
  </div>
@@ -1715,10 +1712,10 @@ to detect the tokens of the TJP syntax.
1715
1712
  <div class="method-source-code"
1716
1713
  id="to-i-source">
1717
1714
  <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>
1715
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 153</span>
1716
+ 153: <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>)
1717
+ 154: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>.<span class="ruby-identifier">to_i</span> ]
1718
+ 155: <span class="ruby-keyword kw">end</span></pre>
1722
1719
  </div>
1723
1720
 
1724
1721
  </div>
@@ -1749,14 +1746,14 @@ to detect the tokens of the TJP syntax.
1749
1746
  <div class="method-source-code"
1750
1747
  id="to-time-source">
1751
1748
  <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>
1749
+ <span class="ruby-comment cmt"># File lib/ProjectFileScanner.rb, line 161</span>
1750
+ 161: <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>)
1751
+ 162: <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>)
1752
+ 163: <span class="ruby-identifier">h</span> = <span class="ruby-identifier">h</span>.<span class="ruby-identifier">to_i</span>
1753
+ 164: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">to_i</span>
1754
+ 165: <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>
1755
+ 166: [ <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> ]
1756
+ 167: <span class="ruby-keyword kw">end</span></pre>
1760
1757
  </div>
1761
1758
 
1762
1759
  </div>