taskjuggler 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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