taskjuggler 0.0.2 → 0.0.3

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 (432) hide show
  1. data/Rakefile +1 -0
  2. data/benchmarks/depends.tjp +2 -1
  3. data/benchmarks/htmltaskreport.tjp +2 -1
  4. data/doc/classes/AppConfig.html +124 -120
  5. data/doc/classes/Arguments.html +10 -6
  6. data/doc/classes/Object.html +229 -0
  7. data/doc/classes/String.html +35 -31
  8. data/doc/classes/TaskJuggler/Account.html +18 -18
  9. data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
  10. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  11. data/doc/classes/TaskJuggler/Allocation.html +34 -30
  12. data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
  13. data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
  14. data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
  15. data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
  16. data/doc/classes/TaskJuggler/Booking.html +22 -18
  17. data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
  18. data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
  19. data/doc/classes/TaskJuggler/CSVFile.html +28 -24
  20. data/doc/classes/TaskJuggler/Charge.html +22 -18
  21. data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
  22. data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
  23. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
  24. data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
  25. data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
  26. data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
  27. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
  28. data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
  29. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  30. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  31. data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
  32. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  33. data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
  34. data/doc/classes/TaskJuggler/GanttChart.html +236 -207
  35. data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
  36. data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
  37. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
  38. data/doc/classes/TaskJuggler/GanttLine.html +28 -24
  39. data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
  40. data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
  41. data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
  42. data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
  43. data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
  44. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  45. data/doc/classes/TaskJuggler/Interval.html +126 -120
  46. data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
  47. data/doc/classes/TaskJuggler/JobInfo.html +284 -0
  48. data/doc/classes/TaskJuggler/Journal.html +197 -0
  49. data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
  50. data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
  51. data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
  53. data/doc/classes/TaskJuggler/Limits.html +68 -62
  54. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  55. data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
  56. data/doc/classes/TaskJuggler/Log.html +72 -68
  57. data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
  58. data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
  59. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
  60. data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
  61. data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
  62. data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
  63. data/doc/classes/TaskJuggler/Macro.html +10 -6
  64. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  65. data/doc/classes/TaskJuggler/MacroTable.html +40 -36
  66. data/doc/classes/TaskJuggler/Message.html +16 -12
  67. data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
  68. data/doc/classes/TaskJuggler/Navigator.html +249 -0
  69. data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
  70. data/doc/classes/TaskJuggler/Project.html +1064 -678
  71. data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
  72. data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/PropertyList.html +114 -113
  74. data/doc/classes/TaskJuggler/PropertySet.html +355 -312
  75. data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
  76. data/doc/classes/TaskJuggler/Query.html +90 -85
  77. data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
  78. data/doc/classes/TaskJuggler/RTPReport.html +301 -0
  79. data/doc/classes/TaskJuggler/RealFormat.html +114 -57
  80. data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
  81. data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
  82. data/doc/classes/TaskJuggler/Report.html +82 -291
  83. data/doc/classes/TaskJuggler/ReportBase.html +448 -0
  84. data/doc/classes/TaskJuggler/ReportContext.html +243 -0
  85. data/doc/classes/TaskJuggler/ReportTable.html +158 -129
  86. data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
  87. data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
  88. data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
  89. data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
  90. data/doc/classes/TaskJuggler/Resource.html +12 -12
  91. data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
  92. data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
  93. data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
  94. data/doc/classes/TaskJuggler/RichText.html +52 -48
  95. data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
  96. data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
  97. data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
  98. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  99. data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
  100. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
  101. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
  102. data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
  103. data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
  104. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
  105. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  106. data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
  107. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
  108. data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
  109. data/doc/classes/TaskJuggler/Shift.html +18 -18
  110. data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
  111. data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
  112. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  113. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  114. data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
  115. data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
  116. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  117. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  118. data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
  119. data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
  120. data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
  121. data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
  122. data/doc/classes/TaskJuggler/TableReport.html +1036 -0
  123. data/doc/classes/TaskJuggler/Task.html +12 -12
  124. data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
  125. data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
  126. data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
  127. data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
  128. data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
  129. data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
  130. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
  131. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  132. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
  133. data/doc/classes/TaskJuggler/TextParser.html +203 -140
  134. data/doc/classes/TaskJuggler/TextReport.html +364 -0
  135. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  136. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
  137. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
  138. data/doc/classes/TaskJuggler/TextScanner.html +334 -240
  139. data/doc/classes/TaskJuggler/TjException.html +6 -6
  140. data/doc/classes/TaskJuggler/TjTime.html +547 -497
  141. data/doc/classes/TaskJuggler/TjpExample.html +29 -25
  142. data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
  143. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
  144. data/doc/classes/TaskJuggler/UserManual.html +54 -54
  145. data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
  146. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
  147. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  148. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  149. data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
  150. data/doc/classes/TaskJuggler/XMLElement.html +70 -58
  151. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  152. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  153. data/doc/classes/TaskJuggler.html +266 -183
  154. data/doc/files/COPYING.html +1 -1
  155. data/doc/files/README.html +1 -1
  156. data/doc/files/lib/AccountScenario_rb.html +1 -1
  157. data/doc/files/lib/Account_rb.html +1 -1
  158. data/doc/files/lib/Allocation_rb.html +1 -1
  159. data/doc/files/lib/AppConfig_rb.html +1 -1
  160. data/doc/files/lib/AttributeBase_rb.html +11 -1
  161. data/doc/files/lib/AttributeDefinition_rb.html +1 -1
  162. data/doc/files/lib/Attributes_rb.html +1 -1
  163. data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
  164. data/doc/files/lib/Booking_rb.html +1 -1
  165. data/doc/files/lib/ChargeSet_rb.html +1 -1
  166. data/doc/files/lib/Charge_rb.html +1 -1
  167. data/doc/files/lib/HTMLDocument_rb.html +1 -1
  168. data/doc/files/lib/Interval_rb.html +1 -1
  169. data/doc/files/lib/Journal_rb.html +106 -0
  170. data/doc/files/lib/KeywordArray_rb.html +106 -0
  171. data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
  172. data/doc/files/lib/Limits_rb.html +1 -1
  173. data/doc/files/lib/Log_rb.html +1 -1
  174. data/doc/files/lib/LogicalExpression_rb.html +1 -3
  175. data/doc/files/lib/LogicalFunction_rb.html +1 -1
  176. data/doc/files/lib/LogicalOperation_rb.html +1 -1
  177. data/doc/files/lib/MacroParser_rb.html +1 -1
  178. data/doc/files/lib/MacroTable_rb.html +1 -1
  179. data/doc/files/lib/MessageHandler_rb.html +1 -1
  180. data/doc/files/lib/Message_rb.html +1 -1
  181. data/doc/files/lib/ProjectFileParser_rb.html +5 -1
  182. data/doc/files/lib/Project_rb.html +5 -1
  183. data/doc/files/lib/PropertyList_rb.html +1 -1
  184. data/doc/files/lib/PropertySet_rb.html +1 -1
  185. data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
  186. data/doc/files/lib/Query_rb.html +1 -1
  187. data/doc/files/lib/RTPNavigator_rb.html +120 -0
  188. data/doc/files/lib/RTPReport_rb.html +118 -0
  189. data/doc/files/lib/RealFormat_rb.html +1 -1
  190. data/doc/files/lib/ResourceScenario_rb.html +1 -1
  191. data/doc/files/lib/Resource_rb.html +1 -1
  192. data/doc/files/lib/RichTextDocument_rb.html +1 -1
  193. data/doc/files/lib/RichTextElement_rb.html +1 -1
  194. data/doc/files/lib/RichTextParser_rb.html +1 -1
  195. data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
  196. data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
  197. data/doc/files/lib/RichTextScanner_rb.html +1 -1
  198. data/doc/files/lib/RichTextSnip_rb.html +1 -1
  199. data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
  200. data/doc/files/lib/RichText_rb.html +1 -1
  201. data/doc/files/lib/ScenarioData_rb.html +1 -1
  202. data/doc/files/lib/Scenario_rb.html +1 -1
  203. data/doc/files/lib/Scoreboard_rb.html +1 -1
  204. data/doc/files/lib/ShiftAssignments_rb.html +1 -1
  205. data/doc/files/lib/ShiftScenario_rb.html +1 -1
  206. data/doc/files/lib/Shift_rb.html +1 -1
  207. data/doc/files/lib/SourceFileInfo_rb.html +1 -1
  208. data/doc/files/lib/SyntaxReference_rb.html +1 -1
  209. data/doc/files/lib/TOCEntry_rb.html +1 -1
  210. data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
  211. data/doc/files/lib/TableOfContents_rb.html +1 -1
  212. data/doc/files/lib/TaskDependency_rb.html +1 -1
  213. data/doc/files/lib/TaskJuggler_rb.html +1 -1
  214. data/doc/files/lib/TaskScenario_rb.html +1 -1
  215. data/doc/files/lib/Task_rb.html +1 -1
  216. data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
  217. data/doc/files/lib/TextParser/Rule_rb.html +1 -1
  218. data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
  219. data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
  220. data/doc/files/lib/TextParser_rb.html +1 -1
  221. data/doc/files/lib/TextScanner_rb.html +1 -1
  222. data/doc/files/lib/Tj3Config_rb.html +1 -1
  223. data/doc/files/lib/TjException_rb.html +1 -1
  224. data/doc/files/lib/TjTime_rb.html +1 -1
  225. data/doc/files/lib/TjpExample_rb.html +1 -1
  226. data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
  227. data/doc/files/lib/UTF8String_rb.html +1 -1
  228. data/doc/files/lib/UserManual_rb.html +1 -1
  229. data/doc/files/lib/WorkingHours_rb.html +1 -1
  230. data/doc/files/lib/XMLDocument_rb.html +1 -1
  231. data/doc/files/lib/XMLElement_rb.html +1 -1
  232. data/doc/files/lib/deep_copy_rb.html +106 -0
  233. data/doc/files/lib/ms_test_rb.html +90 -0
  234. data/doc/files/lib/reports/CSVFile_rb.html +1 -1
  235. data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
  236. data/doc/files/lib/reports/GanttChart_rb.html +1 -1
  237. data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
  238. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  239. data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
  240. data/doc/files/lib/reports/GanttLine_rb.html +1 -1
  241. data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
  242. data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
  243. data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
  244. data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
  245. data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
  246. data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
  247. data/doc/files/lib/reports/ReportBase_rb.html +106 -0
  248. data/doc/files/lib/reports/ReportContext_rb.html +106 -0
  249. data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
  250. data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
  251. data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
  252. data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
  253. data/doc/files/lib/reports/ReportTable_rb.html +1 -1
  254. data/doc/files/lib/reports/Report_rb.html +8 -2
  255. data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
  256. data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
  257. data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
  258. data/doc/files/lib/reports/TextReport_rb.html +116 -0
  259. data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
  260. data/doc/files/lib/taskjuggler3_rb.html +61 -56
  261. data/doc/files/lib/tj3man_rb.html +1 -1
  262. data/doc/fr_class_index.html +41 -3
  263. data/doc/fr_file_index.html +21 -5
  264. data/doc/fr_method_index.html +1069 -959
  265. data/examples/ContactList.html +1467 -0
  266. data/examples/Deliveries.html +485 -0
  267. data/examples/Development.html +2525 -0
  268. data/examples/Overview.html +747 -0
  269. data/examples/Resource Graph.html +616 -0
  270. data/examples/tutorial.tjp +63 -67
  271. data/lib/AttributeBase.rb +27 -31
  272. data/lib/AttributeDefinition.rb +12 -7
  273. data/lib/Attributes.rb +134 -34
  274. data/lib/Interval.rb +2 -0
  275. data/lib/Journal.rb +44 -0
  276. data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
  277. data/lib/KeywordDocumentation.rb +84 -47
  278. data/lib/Limits.rb +7 -5
  279. data/lib/LogicalExpression.rb +1 -1
  280. data/lib/LogicalOperation.rb +33 -0
  281. data/lib/Project.rb +313 -99
  282. data/lib/ProjectFileParser.rb +88 -11
  283. data/lib/PropertyList.rb +2 -1
  284. data/lib/PropertySet.rb +13 -4
  285. data/lib/PropertyTreeNode.rb +34 -15
  286. data/lib/Query.rb +2 -1
  287. data/lib/RTPNavigator.rb +53 -0
  288. data/lib/RTPReport.rb +62 -0
  289. data/lib/RealFormat.rb +28 -10
  290. data/lib/RichTextElement.rb +18 -12
  291. data/lib/RichTextParser.rb +1 -0
  292. data/lib/RichTextProtocolExample.rb +8 -11
  293. data/lib/RichTextProtocolHandler.rb +11 -1
  294. data/lib/RichTextScanner.rb +308 -164
  295. data/lib/RichTextSyntaxRules.rb +24 -0
  296. data/lib/TableColumnDefinition.rb +5 -1
  297. data/lib/TaskJuggler.rb +3 -2
  298. data/lib/TaskScenario.rb +123 -31
  299. data/lib/TextParser.rb +14 -3
  300. data/lib/TextScanner.rb +210 -34
  301. data/lib/Tj3Config.rb +1 -1
  302. data/lib/TjTime.rb +15 -0
  303. data/lib/TjpExample.rb +1 -1
  304. data/lib/TjpSyntaxRules.rb +674 -473
  305. data/lib/WorkingHours.rb +1 -1
  306. data/lib/XMLElement.rb +11 -3
  307. data/lib/deep_copy.rb +72 -0
  308. data/lib/ms_test.rb +27 -0
  309. data/lib/reports/ColumnTable.rb +7 -5
  310. data/lib/reports/GanttChart.rb +60 -34
  311. data/lib/reports/GanttHeader.rb +1 -1
  312. data/lib/reports/GanttRouter.rb +7 -5
  313. data/lib/reports/Navigator.rb +72 -0
  314. data/lib/reports/Report.rb +58 -73
  315. data/lib/reports/ReportBase.rb +241 -0
  316. data/lib/reports/ReportContext.rb +41 -0
  317. data/lib/reports/ReportTable.rb +7 -2
  318. data/lib/reports/ReportTableCell.rb +3 -3
  319. data/lib/reports/ResourceListRE.rb +19 -26
  320. data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
  321. data/lib/reports/TaskListRE.rb +16 -24
  322. data/lib/reports/TextReport.rb +87 -0
  323. data/lib/reports/TjpExportRE.rb +55 -50
  324. data/lib/taskjuggler3.rb +6 -1
  325. data/manual/Getting_Started +57 -6
  326. data/manual/How_To_Contribute +2 -4
  327. data/manual/Intro +2 -2
  328. data/manual/Reporting_Bugs +9 -2
  329. data/manual/Rich_Text_Attributes +41 -0
  330. data/manual/Tutorial +219 -173
  331. data/tasks/test.rake +3 -0
  332. data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
  333. data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
  334. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
  335. data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
  336. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
  337. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
  338. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  339. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  340. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  341. data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
  342. data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
  343. data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
  344. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
  345. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
  346. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  347. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
  348. data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
  349. data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
  350. data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
  351. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
  352. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
  353. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
  354. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
  355. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
  356. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
  357. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
  358. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
  359. data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
  360. data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
  361. data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
  362. data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
  363. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
  364. data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
  365. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
  366. data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
  367. data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
  368. data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
  369. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
  370. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
  371. data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
  372. data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
  373. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
  374. data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
  375. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
  376. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
  377. data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
  378. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
  379. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
  380. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
  381. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
  382. data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
  383. data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
  384. data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
  385. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
  386. data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
  387. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
  388. data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
  389. data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
  390. data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
  391. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
  392. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
  393. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
  394. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
  395. data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
  396. data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
  397. data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
  398. data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
  399. data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
  400. data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
  401. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
  402. data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
  403. data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
  404. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
  405. data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
  406. data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
  407. data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
  408. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
  409. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
  410. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
  411. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
  412. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
  413. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
  414. data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
  415. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
  416. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
  417. data/test/all.rb +1 -16
  418. data/test/test_CSV-Reports.rb +8 -5
  419. data/test/test_Query.rb +2 -2
  420. data/test/test_RichText.rb +95 -0
  421. data/test/test_Scheduler.rb +8 -4
  422. data/test/test_Syntax.rb +8 -4
  423. data/test/test_deep_copy.rb +83 -0
  424. metadata +549 -487
  425. data/benchmarks/UTF-8-Strings.rb +0 -58
  426. data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
  427. data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
  428. data/lib/reports/ReportElement.rb +0 -427
  429. data/test/TestSuite/Syntax/Correct/csvtest +0 -16
  430. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
  431. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
  432. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
@@ -70,8 +70,12 @@
70
70
  <td><strong>Parent:</strong></td>
71
71
  <td>
72
72
 
73
+ <a href="../Object.html">
74
+
73
75
  Object
74
76
 
77
+ </a>
78
+
75
79
  </td>
76
80
  </tr>
77
81
 
@@ -100,29 +104,33 @@ file can include an other file.
100
104
 
101
105
  <div class="name-list">
102
106
 
103
- <a href="#M000403">addMacro</a>&nbsp;&nbsp;
107
+ <a href="#M000734">addMacro</a>&nbsp;&nbsp;
108
+
109
+ <a href="#M000728">close</a>&nbsp;&nbsp;
104
110
 
105
- <a href="#M000397">close</a>&nbsp;&nbsp;
111
+ <a href="#M000737">error</a>&nbsp;&nbsp;
106
112
 
107
- <a href="#M000406">error</a>&nbsp;&nbsp;
113
+ <a href="#M000736">expandMacro</a>&nbsp;&nbsp;
108
114
 
109
- <a href="#M000405">expandMacro</a>&nbsp;&nbsp;
115
+ <a href="#M000731">fileName</a>&nbsp;&nbsp;
110
116
 
111
- <a href="#M000400">fileName</a>&nbsp;&nbsp;
117
+ <a href="#M000729">include</a>&nbsp;&nbsp;
112
118
 
113
- <a href="#M000398">include</a>&nbsp;&nbsp;
119
+ <a href="#M000735">macroDefined?</a>&nbsp;&nbsp;
114
120
 
115
- <a href="#M000404">macroDefined?</a>&nbsp;&nbsp;
121
+ <a href="#M000739">message</a>&nbsp;&nbsp;
116
122
 
117
- <a href="#M000395">new</a>&nbsp;&nbsp;
123
+ <a href="#M000726">new</a>&nbsp;&nbsp;
118
124
 
119
- <a href="#M000401">nextToken</a>&nbsp;&nbsp;
125
+ <a href="#M000732">nextToken</a>&nbsp;&nbsp;
120
126
 
121
- <a href="#M000396">open</a>&nbsp;&nbsp;
127
+ <a href="#M000727">open</a>&nbsp;&nbsp;
122
128
 
123
- <a href="#M000402">returnToken</a>&nbsp;&nbsp;
129
+ <a href="#M000733">returnToken</a>&nbsp;&nbsp;
124
130
 
125
- <a href="#M000399">sourceFileInfo</a>&nbsp;&nbsp;
131
+ <a href="#M000730">sourceFileInfo</a>&nbsp;&nbsp;
132
+
133
+ <a href="#M000738">warning</a>&nbsp;&nbsp;
126
134
 
127
135
  </div>
128
136
  </div>
@@ -152,12 +160,12 @@ Class <a href="TextScanner/StreamHandle.html" class="link">TaskJuggler::TextScan
152
160
  <h3 class="section-bar">Public Class methods</h3>
153
161
 
154
162
 
155
- <div id="method-M000395" class="method-detail">
156
- <a name="M000395"></a>
163
+ <div id="method-M000726" class="method-detail">
164
+ <a name="M000726"></a>
157
165
 
158
166
  <div class="method-heading">
159
167
 
160
- <a href="#M000395" class="method-signature">
168
+ <a href="#M000726" class="method-signature">
161
169
 
162
170
  <span class="method-name">new</span><span class="method-args">(masterFile, messageHandler)</span>
163
171
 
@@ -177,26 +185,26 @@ messages.
177
185
  </p>
178
186
 
179
187
  <p><a class="source-toggle" href="#"
180
- onclick="toggleCode('M000395-source');return false;">[Source]</a></p>
181
- <div class="method-source-code" id="M000395-source">
188
+ onclick="toggleCode('M000726-source');return false;">[Source]</a></p>
189
+ <div class="method-source-code" id="M000726-source">
182
190
  <pre>
183
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 138</span>
184
- 138: <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>)
185
- 139: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
186
- 140: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
187
- 141: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
188
- 142: <span class="ruby-comment cmt"># text.</span>
189
- 143: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
190
- 144: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
191
- 145: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 3 elements, the @cf,</span>
192
- 146: <span class="ruby-comment cmt"># @tokenBuffer and the @pos of the file.</span>
193
- 147: <span class="ruby-ivar">@fileStack</span> = []
194
- 148: <span class="ruby-comment cmt"># This Array stores the currently processed nested macros.</span>
195
- 149: <span class="ruby-ivar">@macroStack</span> = []
196
- 150: <span class="ruby-comment cmt"># In certain situation we want to ignore Macro replacement and this flag</span>
197
- 151: <span class="ruby-comment cmt"># is set to true.</span>
198
- 152: <span class="ruby-ivar">@ignoreMacros</span> = <span class="ruby-keyword kw">false</span>
199
- 153: <span class="ruby-keyword kw">end</span>
191
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 146</span>
192
+ 146: <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>)
193
+ 147: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
194
+ 148: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
195
+ 149: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
196
+ 150: <span class="ruby-comment cmt"># text.</span>
197
+ 151: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
198
+ 152: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
199
+ 153: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 3 elements, the @cf,</span>
200
+ 154: <span class="ruby-comment cmt"># @tokenBuffer and the @pos of the file.</span>
201
+ 155: <span class="ruby-ivar">@fileStack</span> = []
202
+ 156: <span class="ruby-comment cmt"># This Array stores the currently processed nested macros.</span>
203
+ 157: <span class="ruby-ivar">@macroStack</span> = []
204
+ 158: <span class="ruby-comment cmt"># In certain situation we want to ignore Macro replacement and this flag</span>
205
+ 159: <span class="ruby-comment cmt"># is set to true.</span>
206
+ 160: <span class="ruby-ivar">@ignoreMacros</span> = <span class="ruby-keyword kw">false</span>
207
+ 161: <span class="ruby-keyword kw">end</span>
200
208
  </pre>
201
209
  </div>
202
210
 
@@ -207,12 +215,12 @@ messages.
207
215
  <h3 class="section-bar">Public Instance methods</h3>
208
216
 
209
217
 
210
- <div id="method-M000403" class="method-detail">
211
- <a name="M000403"></a>
218
+ <div id="method-M000734" class="method-detail">
219
+ <a name="M000734"></a>
212
220
 
213
221
  <div class="method-heading">
214
222
 
215
- <a href="#M000403" class="method-signature">
223
+ <a href="#M000734" class="method-signature">
216
224
 
217
225
  <span class="method-name">addMacro</span><span class="method-args">(macro)</span>
218
226
 
@@ -227,13 +235,13 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
227
235
  </p>
228
236
 
229
237
  <p><a class="source-toggle" href="#"
230
- onclick="toggleCode('M000403-source');return false;">[Source]</a></p>
231
- <div class="method-source-code" id="M000403-source">
238
+ onclick="toggleCode('M000734-source');return false;">[Source]</a></p>
239
+ <div class="method-source-code" id="M000734-source">
232
240
  <pre>
233
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 294</span>
234
- 294: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
235
- 295: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
236
- 296: <span class="ruby-keyword kw">end</span>
241
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 325</span>
242
+ 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
243
+ 326: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
244
+ 327: <span class="ruby-keyword kw">end</span>
237
245
  </pre>
238
246
  </div>
239
247
 
@@ -241,12 +249,12 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
241
249
  </div>
242
250
 
243
251
 
244
- <div id="method-M000397" class="method-detail">
245
- <a name="M000397"></a>
252
+ <div id="method-M000728" class="method-detail">
253
+ <a name="M000728"></a>
246
254
 
247
255
  <div class="method-heading">
248
256
 
249
- <a href="#M000397" class="method-signature">
257
+ <a href="#M000728" class="method-signature">
250
258
 
251
259
  <span class="method-name">close</span><span class="method-args">()</span>
252
260
 
@@ -261,16 +269,16 @@ Finish processing and reset all data structures.
261
269
  </p>
262
270
 
263
271
  <p><a class="source-toggle" href="#"
264
- onclick="toggleCode('M000397-source');return false;">[Source]</a></p>
265
- <div class="method-source-code" id="M000397-source">
272
+ onclick="toggleCode('M000728-source');return false;">[Source]</a></p>
273
+ <div class="method-source-code" id="M000728-source">
266
274
  <pre>
267
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 172</span>
268
- 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
269
- 173: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{@masterFile}&quot;</span>)
270
- 174: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
271
- 175: <span class="ruby-ivar">@fileStack</span> = []
272
- 176: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-keyword kw">nil</span>
273
- 177: <span class="ruby-keyword kw">end</span>
275
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 180</span>
276
+ 180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
277
+ 181: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">&quot;Reading file #{@masterFile}&quot;</span>)
278
+ 182: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
279
+ 183: <span class="ruby-ivar">@fileStack</span> = []
280
+ 184: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
281
+ 185: <span class="ruby-keyword kw">end</span>
274
282
  </pre>
275
283
  </div>
276
284
 
@@ -278,12 +286,12 @@ Finish processing and reset all data structures.
278
286
  </div>
279
287
 
280
288
 
281
- <div id="method-M000406" class="method-detail">
282
- <a name="M000406"></a>
289
+ <div id="method-M000737" class="method-detail">
290
+ <a name="M000737"></a>
283
291
 
284
292
  <div class="method-heading">
285
293
 
286
- <a href="#M000406" class="method-signature">
294
+ <a href="#M000737" class="method-signature">
287
295
 
288
296
  <span class="method-name">error</span><span class="method-args">(id, text, property = nil)</span>
289
297
 
@@ -298,26 +306,13 @@ Call this function to report any errors related to the parsed input.
298
306
  </p>
299
307
 
300
308
  <p><a class="source-toggle" href="#"
301
- onclick="toggleCode('M000406-source');return false;">[Source]</a></p>
302
- <div class="method-source-code" id="M000406-source">
309
+ onclick="toggleCode('M000737-source');return false;">[Source]</a></p>
310
+ <div class="method-source-code" id="M000737-source">
303
311
  <pre>
304
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 317</span>
305
- 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
306
- 318: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-value str">'error'</span>, <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_s</span>,
307
- 319: <span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sourceFileInfo</span>)
308
- 320: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
309
- 321:
310
- 322: <span class="ruby-keyword kw">until</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span>
311
- 323: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
312
- 324: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span> }
313
- 325: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
314
- 326: <span class="ruby-node">&quot; #{macro.name} #{args.join(' ')}&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
315
- 327: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
316
- 328: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
317
- 329: <span class="ruby-keyword kw">end</span>
318
- 330:
319
- 331: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">'Syntax error during parse'</span>
320
- 332: <span class="ruby-keyword kw">end</span>
312
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 348</span>
313
+ 348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
314
+ 349: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'error'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
315
+ 350: <span class="ruby-keyword kw">end</span>
321
316
  </pre>
322
317
  </div>
323
318
 
@@ -325,12 +320,12 @@ Call this function to report any errors related to the parsed input.
325
320
  </div>
326
321
 
327
322
 
328
- <div id="method-M000405" class="method-detail">
329
- <a name="M000405"></a>
323
+ <div id="method-M000736" class="method-detail">
324
+ <a name="M000736"></a>
330
325
 
331
326
  <div class="method-heading">
332
327
 
333
- <a href="#M000405" class="method-signature">
328
+ <a href="#M000736" class="method-signature">
334
329
 
335
330
  <span class="method-name">expandMacro</span><span class="method-args">(args)</span>
336
331
 
@@ -341,22 +336,22 @@ Call this function to report any errors related to the parsed input.
341
336
  <div class="method-description">
342
337
 
343
338
  <p><a class="source-toggle" href="#"
344
- onclick="toggleCode('M000405-source');return false;">[Source]</a></p>
345
- <div class="method-source-code" id="M000405-source">
339
+ onclick="toggleCode('M000736-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000736-source">
346
341
  <pre>
347
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 303</span>
348
- 303: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">args</span>)
349
- 304: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
350
- 305: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
351
- 306:
352
- 307: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> ]
353
- 308: <span class="ruby-comment cmt"># Mark end of macro with a 0 element</span>
354
- 309: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>
355
- 310: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
356
- 311: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
357
- 312: <span class="ruby-keyword kw">end</span>
358
- 313: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> = <span class="ruby-value str">''</span>
359
- 314: <span class="ruby-keyword kw">end</span>
342
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 334</span>
343
+ 334: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">args</span>)
344
+ 335: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
345
+ 336: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
346
+ 337:
347
+ 338: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> ]
348
+ 339: <span class="ruby-comment cmt"># Mark end of macro with a 0 element</span>
349
+ 340: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>
350
+ 341: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
351
+ 342: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
352
+ 343: <span class="ruby-keyword kw">end</span>
353
+ 344: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> = <span class="ruby-value str">''</span>
354
+ 345: <span class="ruby-keyword kw">end</span>
360
355
  </pre>
361
356
  </div>
362
357
 
@@ -364,12 +359,12 @@ Call this function to report any errors related to the parsed input.
364
359
  </div>
365
360
 
366
361
 
367
- <div id="method-M000400" class="method-detail">
368
- <a name="M000400"></a>
362
+ <div id="method-M000731" class="method-detail">
363
+ <a name="M000731"></a>
369
364
 
370
365
  <div class="method-heading">
371
366
 
372
- <a href="#M000400" class="method-signature">
367
+ <a href="#M000731" class="method-signature">
373
368
 
374
369
  <span class="method-name">fileName</span><span class="method-args">()</span>
375
370
 
@@ -385,13 +380,13 @@ text buffer, the text will be returned.
385
380
  </p>
386
381
 
387
382
  <p><a class="source-toggle" href="#"
388
- onclick="toggleCode('M000400-source');return false;">[Source]</a></p>
389
- <div class="method-source-code" id="M000400-source">
383
+ onclick="toggleCode('M000731-source');return false;">[Source]</a></p>
384
+ <div class="method-source-code" id="M000731-source">
390
385
  <pre>
391
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 210</span>
392
- 210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
393
- 211: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
394
- 212: <span class="ruby-keyword kw">end</span>
386
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 230</span>
387
+ 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
388
+ 231: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
389
+ 232: <span class="ruby-keyword kw">end</span>
395
390
  </pre>
396
391
  </div>
397
392
 
@@ -399,12 +394,12 @@ text buffer, the text will be returned.
399
394
  </div>
400
395
 
401
396
 
402
- <div id="method-M000398" class="method-detail">
403
- <a name="M000398"></a>
397
+ <div id="method-M000729" class="method-detail">
398
+ <a name="M000729"></a>
404
399
 
405
400
  <div class="method-heading">
406
401
 
407
- <a href="#M000398" class="method-signature">
402
+ <a href="#M000729" class="method-signature">
408
403
 
409
404
  <span class="method-name">include</span><span class="method-args">(fileName)</span>
410
405
 
@@ -421,30 +416,42 @@ where we started with the new file.
421
416
  </p>
422
417
 
423
418
  <p><a class="source-toggle" href="#"
424
- onclick="toggleCode('M000398-source');return false;">[Source]</a></p>
425
- <div class="method-source-code" id="M000398-source">
419
+ onclick="toggleCode('M000729-source');return false;">[Source]</a></p>
420
+ <div class="method-source-code" id="M000729-source">
426
421
  <pre>
427
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 182</span>
428
- 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">fileName</span>)
429
- 183: <span class="ruby-keyword kw">begin</span>
430
- 184: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
431
- 185: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@masterPath</span>
432
- 186: <span class="ruby-keyword kw">else</span>
433
- 187: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
434
- 188: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>, <span class="ruby-value">2</span>] = [ <span class="ruby-ivar">@tokenBuffer</span>, <span class="ruby-ivar">@pos</span> ]
435
- 189: <span class="ruby-keyword kw">end</span>
436
- 190: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
437
- 191: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
438
- 192: <span class="ruby-comment cmt"># name relative to the including file.</span>
439
- 193: <span class="ruby-identifier">fileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">fileName</span>
440
- 194: <span class="ruby-keyword kw">end</span>
441
- 195:
442
- 196: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-keyword kw">nil</span>
443
- 197: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>)), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ]
444
- 198: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
445
- 199: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">&quot;Cannot open include file #{fileName}&quot;</span>)
446
- 200: <span class="ruby-keyword kw">end</span>
447
- 201: <span class="ruby-keyword kw">end</span>
422
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 190</span>
423
+ 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">fileName</span>)
424
+ 191: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
425
+ 192: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@masterPath</span>
426
+ 193: <span class="ruby-keyword kw">else</span>
427
+ 194: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
428
+ 195: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>, <span class="ruby-value">2</span>] = [ <span class="ruby-ivar">@tokenBuffer</span>, <span class="ruby-ivar">@pos</span> ]
429
+ 196: <span class="ruby-keyword kw">end</span>
430
+ 197: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
431
+ 198: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
432
+ 199: <span class="ruby-comment cmt"># name relative to the including file.</span>
433
+ 200: <span class="ruby-identifier">fileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">fileName</span>
434
+ 201: <span class="ruby-keyword kw">end</span>
435
+ 202:
436
+ 203: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
437
+ 204:
438
+ 205: <span class="ruby-comment cmt"># Check the current file stack to find recusions.</span>
439
+ 206: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pos</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">fileName</span>
440
+ 207: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>, <span class="ruby-node">&quot;Recursive inclusion of #{fileName} detected&quot;</span>)
441
+ 208: <span class="ruby-keyword kw">else</span>
442
+ 209: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
443
+ 210: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
444
+ 211: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>, <span class="ruby-node">&quot;Recursive inclusion of #{fileName} &quot;</span> <span class="ruby-operator">+</span>
445
+ 212: <span class="ruby-value str">&quot;detected&quot;</span>)
446
+ 213: <span class="ruby-keyword kw">end</span>
447
+ 214: <span class="ruby-keyword kw">end</span>
448
+ 215: <span class="ruby-keyword kw">end</span>
449
+ 216: <span class="ruby-keyword kw">begin</span>
450
+ 217: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator">&lt;&lt;</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>)), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ]
451
+ 218: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
452
+ 219: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">&quot;Cannot open include file #{fileName}&quot;</span>)
453
+ 220: <span class="ruby-keyword kw">end</span>
454
+ 221: <span class="ruby-keyword kw">end</span>
448
455
  </pre>
449
456
  </div>
450
457
 
@@ -452,12 +459,12 @@ where we started with the new file.
452
459
  </div>
453
460
 
454
461
 
455
- <div id="method-M000404" class="method-detail">
456
- <a name="M000404"></a>
462
+ <div id="method-M000735" class="method-detail">
463
+ <a name="M000735"></a>
457
464
 
458
465
  <div class="method-heading">
459
466
 
460
- <a href="#M000404" class="method-signature">
467
+ <a href="#M000735" class="method-signature">
461
468
 
462
469
  <span class="method-name">macroDefined?</span><span class="method-args">(name)</span>
463
470
 
@@ -473,13 +480,59 @@ added already.
473
480
  </p>
474
481
 
475
482
  <p><a class="source-toggle" href="#"
476
- onclick="toggleCode('M000404-source');return false;">[Source]</a></p>
477
- <div class="method-source-code" id="M000404-source">
483
+ onclick="toggleCode('M000735-source');return false;">[Source]</a></p>
484
+ <div class="method-source-code" id="M000735-source">
485
+ <pre>
486
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 330</span>
487
+ 330: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
488
+ 331: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
489
+ 332: <span class="ruby-keyword kw">end</span>
490
+ </pre>
491
+ </div>
492
+
493
+ </div>
494
+ </div>
495
+
496
+
497
+ <div id="method-M000739" class="method-detail">
498
+ <a name="M000739"></a>
499
+
500
+ <div class="method-heading">
501
+
502
+ <a href="#M000739" class="method-signature">
503
+
504
+ <span class="method-name">message</span><span class="method-args">(type, id, text, property)</span>
505
+
506
+ </a>
507
+
508
+ </div>
509
+
510
+ <div class="method-description">
511
+
512
+ <p><a class="source-toggle" href="#"
513
+ onclick="toggleCode('M000739-source');return false;">[Source]</a></p>
514
+ <div class="method-source-code" id="M000739-source">
478
515
  <pre>
479
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 299</span>
480
- 299: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
481
- 300: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
482
- 301: <span class="ruby-keyword kw">end</span>
516
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 356</span>
517
+ 356: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
518
+ 357: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
519
+ 358: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_s</span>,
520
+ 359: <span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sourceFileInfo</span>)
521
+ 360: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
522
+ 361:
523
+ 362: <span class="ruby-keyword kw">until</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span>
524
+ 363: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
525
+ 364: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'&quot;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&quot;'</span> }
526
+ 365: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
527
+ 366: <span class="ruby-node">&quot; #{macro.name} #{args.join(' ')}&quot;</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
528
+ 367: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
529
+ 368: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
530
+ 369: <span class="ruby-keyword kw">end</span>
531
+ 370: <span class="ruby-keyword kw">end</span>
532
+ 371:
533
+ 372: <span class="ruby-comment cmt"># An empty strings signals an already reported error</span>
534
+ 373: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'error'</span>
535
+ 374: <span class="ruby-keyword kw">end</span>
483
536
  </pre>
484
537
  </div>
485
538
 
@@ -487,12 +540,12 @@ added already.
487
540
  </div>
488
541
 
489
542
 
490
- <div id="method-M000401" class="method-detail">
491
- <a name="M000401"></a>
543
+ <div id="method-M000732" class="method-detail">
544
+ <a name="M000732"></a>
492
545
 
493
546
  <div class="method-heading">
494
547
 
495
- <a href="#M000401" class="method-signature">
548
+ <a href="#M000732" class="method-signature">
496
549
 
497
550
  <span class="method-name">nextToken</span><span class="method-args">()</span>
498
551
 
@@ -508,63 +561,73 @@ be an Array of the form [ TokenType, TokenValue ].
508
561
  </p>
509
562
 
510
563
  <p><a class="source-toggle" href="#"
511
- onclick="toggleCode('M000401-source');return false;">[Source]</a></p>
512
- <div class="method-source-code" id="M000401-source">
564
+ onclick="toggleCode('M000732-source');return false;">[Source]</a></p>
565
+ <div class="method-source-code" id="M000732-source">
513
566
  <pre>
514
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 228</span>
515
- 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
516
- 229: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
517
- 230: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
518
- 231: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
519
- 232: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-keyword kw">nil</span>
520
- 233: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
521
- 234: <span class="ruby-keyword kw">end</span>
522
- 235:
523
- 236: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
524
- 237: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span> ]
525
- 238: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
526
- 239: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">c</span>
527
- 240: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>, <span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-value str">&quot;\t&quot;</span>
528
- 241: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">tok</span> = <span class="ruby-identifier">readBlanks</span>(<span class="ruby-identifier">c</span>))
529
- 242: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">tok</span>
530
- 243: <span class="ruby-keyword kw">break</span>
531
- 244: <span class="ruby-keyword kw">end</span>
532
- 245: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
533
- 246: <span class="ruby-identifier">skipComment</span>
534
- 247: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'/'</span>
535
- 248: <span class="ruby-identifier">skipCPlusPlusComments</span>
536
- 249: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'0'</span><span class="ruby-operator">..</span><span class="ruby-value str">'9'</span>
537
- 250: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readNumber</span>(<span class="ruby-identifier">c</span>)
538
- 251: <span class="ruby-keyword kw">break</span>
539
- 252: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;'&quot;</span>
540
- 253: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
541
- 254: <span class="ruby-keyword kw">break</span>
542
- 255: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&quot;'</span>
543
- 256: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
544
- 257: <span class="ruby-keyword kw">break</span>
545
- 258: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span>
546
- 259: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readRelativeId</span>(<span class="ruby-identifier">c</span>)
547
- 260: <span class="ruby-keyword kw">break</span>
548
- 261: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'a'</span><span class="ruby-operator">..</span><span class="ruby-value str">'z'</span>, <span class="ruby-value str">'A'</span><span class="ruby-operator">..</span><span class="ruby-value str">'Z'</span>, <span class="ruby-value str">'_'</span>
549
- 262: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readId</span>(<span class="ruby-identifier">c</span>)
550
- 263: <span class="ruby-keyword kw">break</span>
551
- 264: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'['</span>
552
- 265: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readMacro</span>
553
- 266: <span class="ruby-keyword kw">break</span>
554
- 267: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
555
- 268: <span class="ruby-comment cmt"># We've reached an end of file or buffer</span>
556
- 269: <span class="ruby-keyword kw">break</span>
557
- 270: <span class="ruby-keyword kw">else</span>
558
- 271: <span class="ruby-identifier">str</span> = <span class="ruby-value str">&quot;&quot;</span>
559
- 272: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
560
- 273: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-identifier">str</span> ]
561
- 274: <span class="ruby-keyword kw">break</span>
562
- 275: <span class="ruby-keyword kw">end</span>
563
- 276: <span class="ruby-keyword kw">end</span>
564
- 277: <span class="ruby-ivar">@lastPos</span> = <span class="ruby-ivar">@pos</span>
565
- 278: <span class="ruby-ivar">@pos</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
566
- 279: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">token</span>
567
- 280: <span class="ruby-keyword kw">end</span>
567
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 248</span>
568
+ 248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
569
+ 249: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
570
+ 250: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
571
+ 251: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
572
+ 252: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
573
+ 253: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@tokenBufferPos</span>
574
+ 254: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
575
+ 255: <span class="ruby-keyword kw">end</span>
576
+ 256:
577
+ 257: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
578
+ 258: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
579
+ 259: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'&lt;END&gt;'</span> ]
580
+ 260: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
581
+ 261: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">c</span>
582
+ 262: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>, <span class="ruby-value str">&quot;\n&quot;</span>, <span class="ruby-value str">&quot;\t&quot;</span>
583
+ 263: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">tok</span> = <span class="ruby-identifier">readBlanks</span>(<span class="ruby-identifier">c</span>))
584
+ 264: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">tok</span>
585
+ 265: <span class="ruby-keyword kw">break</span>
586
+ 266: <span class="ruby-keyword kw">end</span>
587
+ 267: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
588
+ 268: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
589
+ 269: <span class="ruby-identifier">skipComment</span>
590
+ 270: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
591
+ 271: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'/'</span>
592
+ 272: <span class="ruby-identifier">skipCPlusPlusComments</span>
593
+ 273: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
594
+ 274: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'0'</span><span class="ruby-operator">..</span><span class="ruby-value str">'9'</span>
595
+ 275: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readNumber</span>(<span class="ruby-identifier">c</span>)
596
+ 276: <span class="ruby-keyword kw">break</span>
597
+ 277: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;'&quot;</span>
598
+ 278: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
599
+ 279: <span class="ruby-keyword kw">break</span>
600
+ 280: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&quot;'</span>
601
+ 281: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
602
+ 282: <span class="ruby-keyword kw">break</span>
603
+ 283: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
604
+ 284: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">handleDash</span>
605
+ 285: <span class="ruby-keyword kw">break</span>
606
+ 286: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span>
607
+ 287: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readRelativeId</span>(<span class="ruby-identifier">c</span>)
608
+ 288: <span class="ruby-keyword kw">break</span>
609
+ 289: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'a'</span><span class="ruby-operator">..</span><span class="ruby-value str">'z'</span>, <span class="ruby-value str">'A'</span><span class="ruby-operator">..</span><span class="ruby-value str">'Z'</span>, <span class="ruby-value str">'_'</span>
610
+ 290: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readId</span>(<span class="ruby-identifier">c</span>)
611
+ 291: <span class="ruby-keyword kw">break</span>
612
+ 292: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'&lt;'</span>, <span class="ruby-value str">'&gt;'</span>, <span class="ruby-value str">'='</span>
613
+ 293: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readOperator</span>(<span class="ruby-identifier">c</span>)
614
+ 294: <span class="ruby-keyword kw">break</span>
615
+ 295: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'['</span>
616
+ 296: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readMacro</span>
617
+ 297: <span class="ruby-keyword kw">break</span>
618
+ 298: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
619
+ 299: <span class="ruby-comment cmt"># We've reached an end of file or buffer</span>
620
+ 300: <span class="ruby-keyword kw">break</span>
621
+ 301: <span class="ruby-keyword kw">else</span>
622
+ 302: <span class="ruby-identifier">str</span> = <span class="ruby-value str">&quot;&quot;</span>
623
+ 303: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">c</span>
624
+ 304: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-identifier">str</span> ]
625
+ 305: <span class="ruby-keyword kw">break</span>
626
+ 306: <span class="ruby-keyword kw">end</span>
627
+ 307: <span class="ruby-keyword kw">end</span>
628
+ 308: <span class="ruby-ivar">@pos</span> = <span class="ruby-identifier">startOfToken</span>
629
+ 309: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">token</span>
630
+ 310: <span class="ruby-keyword kw">end</span>
568
631
  </pre>
569
632
  </div>
570
633
 
@@ -572,12 +635,12 @@ be an Array of the form [ TokenType, TokenValue ].
572
635
  </div>
573
636
 
574
637
 
575
- <div id="method-M000396" class="method-detail">
576
- <a name="M000396"></a>
638
+ <div id="method-M000727" class="method-detail">
639
+ <a name="M000727"></a>
577
640
 
578
641
  <div class="method-heading">
579
642
 
580
- <a href="#M000396" class="method-signature">
643
+ <a href="#M000727" class="method-signature">
581
644
 
582
645
  <span class="method-name">open</span><span class="method-args">(fileNameIsBuffer = false)</span>
583
646
 
@@ -593,23 +656,23 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
593
656
  </p>
594
657
 
595
658
  <p><a class="source-toggle" href="#"
596
- onclick="toggleCode('M000396-source');return false;">[Source]</a></p>
597
- <div class="method-source-code" id="M000396-source">
659
+ onclick="toggleCode('M000727-source');return false;">[Source]</a></p>
660
+ <div class="method-source-code" id="M000727-source">
598
661
  <pre>
599
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 157</span>
600
- 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
601
- 158: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
602
- 159: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
603
- 160: <span class="ruby-keyword kw">else</span>
604
- 161: <span class="ruby-keyword kw">begin</span>
605
- 162: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
606
- 163: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
607
- 164: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Cannot open file #{@masterFile}&quot;</span>
608
- 165: <span class="ruby-keyword kw">end</span>
609
- 166: <span class="ruby-keyword kw">end</span>
610
- 167: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
611
- 168: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-keyword kw">nil</span>
612
- 169: <span class="ruby-keyword kw">end</span>
662
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 165</span>
663
+ 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
664
+ 166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
665
+ 167: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
666
+ 168: <span class="ruby-keyword kw">else</span>
667
+ 169: <span class="ruby-keyword kw">begin</span>
668
+ 170: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
669
+ 171: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
670
+ 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Cannot open file #{@masterFile}&quot;</span>
671
+ 173: <span class="ruby-keyword kw">end</span>
672
+ 174: <span class="ruby-keyword kw">end</span>
673
+ 175: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
674
+ 176: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@lastPos</span> = <span class="ruby-keyword kw">nil</span>
675
+ 177: <span class="ruby-keyword kw">end</span>
613
676
  </pre>
614
677
  </div>
615
678
 
@@ -617,12 +680,12 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
617
680
  </div>
618
681
 
619
682
 
620
- <div id="method-M000402" class="method-detail">
621
- <a name="M000402"></a>
683
+ <div id="method-M000733" class="method-detail">
684
+ <a name="M000733"></a>
622
685
 
623
686
  <div class="method-heading">
624
687
 
625
- <a href="#M000402" class="method-signature">
688
+ <a href="#M000733" class="method-signature">
626
689
 
627
690
  <span class="method-name">returnToken</span><span class="method-args">(token)</span>
628
691
 
@@ -638,18 +701,19 @@ token can be returned before the next nextToken() call.
638
701
  </p>
639
702
 
640
703
  <p><a class="source-toggle" href="#"
641
- onclick="toggleCode('M000402-source');return false;">[Source]</a></p>
642
- <div class="method-source-code" id="M000402-source">
704
+ onclick="toggleCode('M000733-source');return false;">[Source]</a></p>
705
+ <div class="method-source-code" id="M000733-source">
643
706
  <pre>
644
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 284</span>
645
- 284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
646
- 285: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
647
- 286: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
648
- 287: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: Cannot return more than 1 token in a row&quot;</span>
649
- 288: <span class="ruby-keyword kw">end</span>
650
- 289: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
651
- 290: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@lastPos</span>
652
- 291: <span class="ruby-keyword kw">end</span>
707
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 314</span>
708
+ 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
709
+ 315: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
710
+ 316: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
711
+ 317: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: Cannot return more than 1 token in a row&quot;</span>
712
+ 318: <span class="ruby-keyword kw">end</span>
713
+ 319: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
714
+ 320: <span class="ruby-ivar">@tokenBufferPos</span> = <span class="ruby-ivar">@pos</span>
715
+ 321: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@lastPos</span>
716
+ 322: <span class="ruby-keyword kw">end</span>
653
717
  </pre>
654
718
  </div>
655
719
 
@@ -657,12 +721,12 @@ token can be returned before the next nextToken() call.
657
721
  </div>
658
722
 
659
723
 
660
- <div id="method-M000399" class="method-detail">
661
- <a name="M000399"></a>
724
+ <div id="method-M000730" class="method-detail">
725
+ <a name="M000730"></a>
662
726
 
663
727
  <div class="method-heading">
664
728
 
665
- <a href="#M000399" class="method-signature">
729
+ <a href="#M000730" class="method-signature">
666
730
 
667
731
  <span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
668
732
 
@@ -678,13 +742,43 @@ processing prosition.
678
742
  </p>
679
743
 
680
744
  <p><a class="source-toggle" href="#"
681
- onclick="toggleCode('M000399-source');return false;">[Source]</a></p>
682
- <div class="method-source-code" id="M000399-source">
745
+ onclick="toggleCode('M000730-source');return false;">[Source]</a></p>
746
+ <div class="method-source-code" id="M000730-source">
747
+ <pre>
748
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 224</span>
749
+ 224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
750
+ 225: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
751
+ 226: <span class="ruby-keyword kw">end</span>
752
+ </pre>
753
+ </div>
754
+
755
+ </div>
756
+ </div>
757
+
758
+
759
+ <div id="method-M000738" class="method-detail">
760
+ <a name="M000738"></a>
761
+
762
+ <div class="method-heading">
763
+
764
+ <a href="#M000738" class="method-signature">
765
+
766
+ <span class="method-name">warning</span><span class="method-args">(id, text, property = nil)</span>
767
+
768
+ </a>
769
+
770
+ </div>
771
+
772
+ <div class="method-description">
773
+
774
+ <p><a class="source-toggle" href="#"
775
+ onclick="toggleCode('M000738-source');return false;">[Source]</a></p>
776
+ <div class="method-source-code" id="M000738-source">
683
777
  <pre>
684
- <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 204</span>
685
- 204: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
686
- 205: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
687
- 206: <span class="ruby-keyword kw">end</span>
778
+ <span class="ruby-comment cmt"># File lib/TextScanner.rb, line 352</span>
779
+ 352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
780
+ 353: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
781
+ 354: <span class="ruby-keyword kw">end</span>
688
782
  </pre>
689
783
  </div>
690
784