taskjuggler 0.0.2

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 (571) hide show
  1. data/COPYING +280 -0
  2. data/README +31 -0
  3. data/Rakefile +20 -0
  4. data/benchmarks/UTF-8-Strings.rb +58 -0
  5. data/benchmarks/allocate.tjp +30 -0
  6. data/benchmarks/booking.tjp +62 -0
  7. data/benchmarks/depends.tjp +112 -0
  8. data/benchmarks/htmltaskreport.tjp +45 -0
  9. data/benchmarks/runbench.rb +24 -0
  10. data/bin/tj3 +3 -0
  11. data/bin/tj3man +3 -0
  12. data/doc/classes/AppConfig.html +808 -0
  13. data/doc/classes/Arguments.html +226 -0
  14. data/doc/classes/String.html +395 -0
  15. data/doc/classes/TaskJuggler.html +1358 -0
  16. data/doc/classes/TaskJuggler/Account.html +257 -0
  17. data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
  18. data/doc/classes/TaskJuggler/Allocation.html +419 -0
  19. data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
  20. data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
  21. data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
  22. data/doc/classes/TaskJuggler/Booking.html +307 -0
  23. data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
  24. data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
  25. data/doc/classes/TaskJuggler/CSVFile.html +325 -0
  26. data/doc/classes/TaskJuggler/Charge.html +279 -0
  27. data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
  28. data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
  29. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
  30. data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
  31. data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
  32. data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
  33. data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
  34. data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
  35. data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
  36. data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
  37. data/doc/classes/TaskJuggler/GanttChart.html +667 -0
  38. data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
  39. data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
  40. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
  41. data/doc/classes/TaskJuggler/GanttLine.html +398 -0
  42. data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
  43. data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
  44. data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
  45. data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
  46. data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
  47. data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
  48. data/doc/classes/TaskJuggler/Interval.html +552 -0
  49. data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
  50. data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
  51. data/doc/classes/TaskJuggler/Limits.html +416 -0
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
  53. data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
  54. data/doc/classes/TaskJuggler/Log.html +613 -0
  55. data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
  56. data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
  57. data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
  58. data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
  59. data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
  60. data/doc/classes/TaskJuggler/Macro.html +194 -0
  61. data/doc/classes/TaskJuggler/MacroParser.html +360 -0
  62. data/doc/classes/TaskJuggler/MacroTable.html +366 -0
  63. data/doc/classes/TaskJuggler/Message.html +281 -0
  64. data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
  65. data/doc/classes/TaskJuggler/Project.html +1606 -0
  66. data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
  67. data/doc/classes/TaskJuggler/PropertyList.html +597 -0
  68. data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
  69. data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
  70. data/doc/classes/TaskJuggler/Query.html +600 -0
  71. data/doc/classes/TaskJuggler/RealFormat.html +252 -0
  72. data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/Report.html +528 -0
  74. data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
  75. data/doc/classes/TaskJuggler/ReportTable.html +497 -0
  76. data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
  77. data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
  78. data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
  79. data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
  80. data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
  81. data/doc/classes/TaskJuggler/Resource.html +211 -0
  82. data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
  83. data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
  84. data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
  85. data/doc/classes/TaskJuggler/RichText.html +537 -0
  86. data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
  87. data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
  88. data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
  89. data/doc/classes/TaskJuggler/RichTextException.html +212 -0
  90. data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
  91. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
  92. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
  93. data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
  94. data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
  95. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
  96. data/doc/classes/TaskJuggler/Scenario.html +163 -0
  97. data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
  98. data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
  99. data/doc/classes/TaskJuggler/Shift.html +255 -0
  100. data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
  101. data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
  102. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
  103. data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
  104. data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
  105. data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
  106. data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
  107. data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
  108. data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
  109. data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
  110. data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
  111. data/doc/classes/TaskJuggler/Task.html +203 -0
  112. data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
  113. data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
  114. data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
  115. data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
  116. data/doc/classes/TaskJuggler/TextParser.html +670 -0
  117. data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
  118. data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
  119. data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
  120. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
  121. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
  122. data/doc/classes/TaskJuggler/TextScanner.html +708 -0
  123. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
  124. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
  125. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
  126. data/doc/classes/TaskJuggler/TjException.html +185 -0
  127. data/doc/classes/TaskJuggler/TjTime.html +1845 -0
  128. data/doc/classes/TaskJuggler/TjpExample.html +310 -0
  129. data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
  130. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
  131. data/doc/classes/TaskJuggler/UserManual.html +606 -0
  132. data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
  133. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
  134. data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
  135. data/doc/classes/TaskJuggler/XMLComment.html +206 -0
  136. data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
  137. data/doc/classes/TaskJuggler/XMLElement.html +341 -0
  138. data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
  139. data/doc/classes/TaskJuggler/XMLText.html +221 -0
  140. data/doc/files/COPYING.html +448 -0
  141. data/doc/files/README.html +134 -0
  142. data/doc/files/lib/AccountScenario_rb.html +116 -0
  143. data/doc/files/lib/Account_rb.html +118 -0
  144. data/doc/files/lib/Allocation_rb.html +118 -0
  145. data/doc/files/lib/AppConfig_rb.html +116 -0
  146. data/doc/files/lib/AttributeBase_rb.html +106 -0
  147. data/doc/files/lib/AttributeDefinition_rb.html +106 -0
  148. data/doc/files/lib/Attributes_rb.html +130 -0
  149. data/doc/files/lib/Booking_rb.html +106 -0
  150. data/doc/files/lib/ChargeSet_rb.html +116 -0
  151. data/doc/files/lib/Charge_rb.html +116 -0
  152. data/doc/files/lib/HTMLDocument_rb.html +116 -0
  153. data/doc/files/lib/Interval_rb.html +116 -0
  154. data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
  155. data/doc/files/lib/Limits_rb.html +116 -0
  156. data/doc/files/lib/Log_rb.html +116 -0
  157. data/doc/files/lib/LogicalExpression_rb.html +122 -0
  158. data/doc/files/lib/LogicalFlag_rb.html +116 -0
  159. data/doc/files/lib/LogicalFunction_rb.html +116 -0
  160. data/doc/files/lib/LogicalOperation_rb.html +116 -0
  161. data/doc/files/lib/MacroParser_rb.html +118 -0
  162. data/doc/files/lib/MacroTable_rb.html +122 -0
  163. data/doc/files/lib/MessageHandler_rb.html +106 -0
  164. data/doc/files/lib/Message_rb.html +116 -0
  165. data/doc/files/lib/ProjectFileParser_rb.html +122 -0
  166. data/doc/files/lib/Project_rb.html +148 -0
  167. data/doc/files/lib/PropertyList_rb.html +106 -0
  168. data/doc/files/lib/PropertySet_rb.html +118 -0
  169. data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
  170. data/doc/files/lib/Query_rb.html +116 -0
  171. data/doc/files/lib/RealFormat_rb.html +106 -0
  172. data/doc/files/lib/ResourceScenario_rb.html +116 -0
  173. data/doc/files/lib/Resource_rb.html +118 -0
  174. data/doc/files/lib/RichTextDocument_rb.html +120 -0
  175. data/doc/files/lib/RichTextElement_rb.html +120 -0
  176. data/doc/files/lib/RichTextParser_rb.html +120 -0
  177. data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
  178. data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
  179. data/doc/files/lib/RichTextScanner_rb.html +116 -0
  180. data/doc/files/lib/RichTextSnip_rb.html +118 -0
  181. data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
  182. data/doc/files/lib/RichText_rb.html +118 -0
  183. data/doc/files/lib/ScenarioData_rb.html +118 -0
  184. data/doc/files/lib/Scenario_rb.html +116 -0
  185. data/doc/files/lib/Scoreboard_rb.html +106 -0
  186. data/doc/files/lib/ShiftAssignments_rb.html +116 -0
  187. data/doc/files/lib/ShiftScenario_rb.html +116 -0
  188. data/doc/files/lib/Shift_rb.html +118 -0
  189. data/doc/files/lib/SourceFileInfo_rb.html +106 -0
  190. data/doc/files/lib/SyntaxReference_rb.html +122 -0
  191. data/doc/files/lib/TOCEntry_rb.html +118 -0
  192. data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
  193. data/doc/files/lib/TableOfContents_rb.html +118 -0
  194. data/doc/files/lib/TaskDependency_rb.html +106 -0
  195. data/doc/files/lib/TaskJuggler_rb.html +120 -0
  196. data/doc/files/lib/TaskScenario_rb.html +116 -0
  197. data/doc/files/lib/Task_rb.html +118 -0
  198. data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
  199. data/doc/files/lib/TextParser/Rule_rb.html +106 -0
  200. data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
  201. data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
  202. data/doc/files/lib/TextParser_rb.html +124 -0
  203. data/doc/files/lib/TextScanner_rb.html +128 -0
  204. data/doc/files/lib/Tj3Config_rb.html +118 -0
  205. data/doc/files/lib/TjException_rb.html +106 -0
  206. data/doc/files/lib/TjTime_rb.html +118 -0
  207. data/doc/files/lib/TjpExample_rb.html +116 -0
  208. data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
  209. data/doc/files/lib/UTF8String_rb.html +132 -0
  210. data/doc/files/lib/UserManual_rb.html +124 -0
  211. data/doc/files/lib/WorkingHours_rb.html +116 -0
  212. data/doc/files/lib/XMLDocument_rb.html +116 -0
  213. data/doc/files/lib/XMLElement_rb.html +116 -0
  214. data/doc/files/lib/reports/CSVFile_rb.html +116 -0
  215. data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
  216. data/doc/files/lib/reports/GanttChart_rb.html +122 -0
  217. data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
  218. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
  219. data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
  220. data/doc/files/lib/reports/GanttLine_rb.html +126 -0
  221. data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
  222. data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
  223. data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
  224. data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
  225. data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
  226. data/doc/files/lib/reports/ReportElement_rb.html +118 -0
  227. data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
  228. data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
  229. data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
  230. data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
  231. data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
  232. data/doc/files/lib/reports/ReportTable_rb.html +118 -0
  233. data/doc/files/lib/reports/Report_rb.html +126 -0
  234. data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
  235. data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
  236. data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
  237. data/doc/files/lib/taskjuggler3_rb.html +276 -0
  238. data/doc/files/lib/tj3man_rb.html +189 -0
  239. data/doc/fr_class_index.html +285 -0
  240. data/doc/fr_file_index.html +223 -0
  241. data/doc/fr_method_index.html +1953 -0
  242. data/doc/index.html +21 -0
  243. data/doc/rdoc-style.css +299 -0
  244. data/examples/tutorial.tjp +361 -0
  245. data/gem_spec.rb +30 -0
  246. data/lib/Account.rb +50 -0
  247. data/lib/AccountScenario.rb +39 -0
  248. data/lib/Allocation.rb +102 -0
  249. data/lib/AppConfig.rb +134 -0
  250. data/lib/AttributeBase.rb +131 -0
  251. data/lib/AttributeDefinition.rb +47 -0
  252. data/lib/Attributes.rb +478 -0
  253. data/lib/BatchProcessor.rb +209 -0
  254. data/lib/Booking.rb +59 -0
  255. data/lib/Charge.rb +71 -0
  256. data/lib/ChargeSet.rb +126 -0
  257. data/lib/HTMLDocument.rb +59 -0
  258. data/lib/Interval.rb +127 -0
  259. data/lib/KeywordDocumentation.rb +560 -0
  260. data/lib/Limits.rb +219 -0
  261. data/lib/Log.rb +160 -0
  262. data/lib/LogicalExpression.rb +71 -0
  263. data/lib/LogicalFlag.rb +34 -0
  264. data/lib/LogicalFunction.rb +102 -0
  265. data/lib/LogicalOperation.rb +118 -0
  266. data/lib/MacroParser.rb +77 -0
  267. data/lib/MacroTable.rb +84 -0
  268. data/lib/Message.rb +56 -0
  269. data/lib/MessageHandler.rb +34 -0
  270. data/lib/Project.rb +662 -0
  271. data/lib/ProjectFileParser.rb +333 -0
  272. data/lib/PropertyList.rb +181 -0
  273. data/lib/PropertySet.rb +304 -0
  274. data/lib/PropertyTreeNode.rb +461 -0
  275. data/lib/Query.rb +227 -0
  276. data/lib/RealFormat.rb +73 -0
  277. data/lib/Resource.rb +42 -0
  278. data/lib/ResourceScenario.rb +511 -0
  279. data/lib/RichText.rb +147 -0
  280. data/lib/RichTextDocument.rb +139 -0
  281. data/lib/RichTextElement.rb +391 -0
  282. data/lib/RichTextParser.rb +66 -0
  283. data/lib/RichTextProtocolExample.rb +65 -0
  284. data/lib/RichTextProtocolHandler.rb +35 -0
  285. data/lib/RichTextScanner.rb +390 -0
  286. data/lib/RichTextSnip.rb +104 -0
  287. data/lib/RichTextSyntaxRules.rb +265 -0
  288. data/lib/Scenario.rb +27 -0
  289. data/lib/ScenarioData.rb +65 -0
  290. data/lib/Scoreboard.rb +141 -0
  291. data/lib/Shift.rb +48 -0
  292. data/lib/ShiftAssignments.rb +291 -0
  293. data/lib/ShiftScenario.rb +46 -0
  294. data/lib/SourceFileInfo.rb +37 -0
  295. data/lib/SyntaxReference.rb +284 -0
  296. data/lib/TOCEntry.rb +76 -0
  297. data/lib/TableColumnDefinition.rb +54 -0
  298. data/lib/TableOfContents.rb +46 -0
  299. data/lib/Task.rb +37 -0
  300. data/lib/TaskDependency.rb +39 -0
  301. data/lib/TaskJuggler.rb +84 -0
  302. data/lib/TaskScenario.rb +1622 -0
  303. data/lib/TextParser.rb +416 -0
  304. data/lib/TextParser/Pattern.rb +263 -0
  305. data/lib/TextParser/Rule.rb +171 -0
  306. data/lib/TextParser/StackElement.rb +45 -0
  307. data/lib/TextParser/TokenDoc.rb +38 -0
  308. data/lib/TextScanner.rb +682 -0
  309. data/lib/Tj3Config.rb +27 -0
  310. data/lib/TjException.rb +27 -0
  311. data/lib/TjTime.rb +395 -0
  312. data/lib/TjpExample.rb +119 -0
  313. data/lib/TjpSyntaxRules.rb +4022 -0
  314. data/lib/UTF8String.rb +100 -0
  315. data/lib/UserManual.rb +282 -0
  316. data/lib/WorkingHours.rb +323 -0
  317. data/lib/XMLDocument.rb +54 -0
  318. data/lib/XMLElement.rb +175 -0
  319. data/lib/reports/CSVFile.rb +146 -0
  320. data/lib/reports/ColumnTable.rb +66 -0
  321. data/lib/reports/GanttChart.rb +308 -0
  322. data/lib/reports/GanttContainer.rb +107 -0
  323. data/lib/reports/GanttHeader.rb +141 -0
  324. data/lib/reports/GanttHeaderScaleItem.rb +42 -0
  325. data/lib/reports/GanttLine.rb +329 -0
  326. data/lib/reports/GanttLoadStack.rb +113 -0
  327. data/lib/reports/GanttMilestone.rb +80 -0
  328. data/lib/reports/GanttRouter.rb +375 -0
  329. data/lib/reports/GanttTaskBar.rb +95 -0
  330. data/lib/reports/HTMLGraphics.rb +65 -0
  331. data/lib/reports/Report.rb +344 -0
  332. data/lib/reports/ReportElement.rb +427 -0
  333. data/lib/reports/ReportTable.rb +144 -0
  334. data/lib/reports/ReportTableCell.rb +142 -0
  335. data/lib/reports/ReportTableColumn.rb +82 -0
  336. data/lib/reports/ReportTableElement.rb +852 -0
  337. data/lib/reports/ReportTableLegend.rb +167 -0
  338. data/lib/reports/ReportTableLine.rb +87 -0
  339. data/lib/reports/ResourceListRE.rb +72 -0
  340. data/lib/reports/TaskListRE.rb +73 -0
  341. data/lib/reports/TjpExportRE.rb +394 -0
  342. data/lib/taskjuggler3.rb +106 -0
  343. data/lib/tj3man.rb +88 -0
  344. data/manual/Day_To_Day_Juggling +168 -0
  345. data/manual/Getting_Started +61 -0
  346. data/manual/How_To_Contribute +185 -0
  347. data/manual/Installation +68 -0
  348. data/manual/Intro +102 -0
  349. data/manual/Reporting_Bugs +26 -0
  350. data/manual/Rich_Text_Attributes +90 -0
  351. data/manual/TaskJuggler_2x_Migration +40 -0
  352. data/manual/Tutorial +579 -0
  353. data/manual/fdl +450 -0
  354. data/prj_cfg.rb +43 -0
  355. data/setup.rb +1585 -0
  356. data/tasks/csts.rake +72 -0
  357. data/tasks/gem.rake +14 -0
  358. data/tasks/manual.rake +10 -0
  359. data/tasks/missing.rake +21 -0
  360. data/tasks/rcov.rake +14 -0
  361. data/tasks/rdoc.rake +17 -0
  362. data/tasks/rexml_fix.rb +16 -0
  363. data/tasks/rexml_fix_19.rb +49 -0
  364. data/tasks/show.rake +21 -0
  365. data/tasks/stats.rake +25 -0
  366. data/tasks/test.rake +11 -0
  367. data/test/MessageChecker.rb +53 -0
  368. data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
  369. data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
  370. data/test/TestSuite/CSV-Reports/genrefs +6 -0
  371. data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
  372. data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
  373. data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
  374. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
  375. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
  376. data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
  377. data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
  378. data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
  379. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
  380. data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
  381. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
  382. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
  383. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
  384. data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
  385. data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
  386. data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
  387. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
  388. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
  389. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
  390. data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
  391. data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
  392. data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
  393. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
  394. data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
  395. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
  396. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
  397. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
  398. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
  399. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
  400. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
  401. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
  402. data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
  403. data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
  404. data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
  405. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
  406. data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
  407. data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
  408. data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
  409. data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
  410. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
  411. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
  412. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
  413. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
  414. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
  415. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
  416. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
  417. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
  418. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
  419. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
  420. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
  421. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
  422. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
  423. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
  424. data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
  425. data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
  426. data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
  427. data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
  428. data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
  429. data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
  430. data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
  431. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
  432. data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
  433. data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
  434. data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
  435. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
  436. data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
  437. data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
  438. data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
  439. data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
  440. data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
  441. data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
  442. data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
  443. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
  444. data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
  445. data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
  446. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
  447. data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
  448. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
  449. data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
  450. data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
  451. data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
  452. data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
  453. data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
  454. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
  455. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
  456. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
  457. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
  458. data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
  459. data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
  460. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
  461. data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
  462. data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
  463. data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
  464. data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
  465. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
  466. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
  467. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
  468. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
  469. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
  470. data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
  471. data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
  472. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
  473. data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
  474. data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
  475. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
  476. data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
  477. data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
  478. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
  479. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
  480. data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
  481. data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
  482. data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
  483. data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
  484. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
  485. data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
  486. data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
  487. data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
  488. data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
  489. data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
  490. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
  491. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
  492. data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
  493. data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
  494. data/test/TestSuite/Syntax/Correct/csvtest +16 -0
  495. data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
  496. data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
  497. data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
  498. data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
  499. data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
  500. data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
  501. data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
  502. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
  503. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
  504. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
  505. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
  506. data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
  507. data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
  508. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
  509. data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
  510. data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
  511. data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
  512. data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
  513. data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
  514. data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
  515. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
  516. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
  517. data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
  518. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
  519. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
  520. data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
  521. data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
  522. data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
  523. data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
  524. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
  525. data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
  526. data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
  527. data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
  528. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
  529. data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
  530. data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
  531. data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
  532. data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
  533. data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
  534. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
  535. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
  536. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
  537. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
  538. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
  539. data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
  540. data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
  541. data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
  542. data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
  543. data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
  544. data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
  545. data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
  546. data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
  547. data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
  548. data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
  549. data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
  550. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
  551. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
  552. data/test/all.rb +31 -0
  553. data/test/test_BatchProcessor.rb +54 -0
  554. data/test/test_CSV-Reports.rb +101 -0
  555. data/test/test_Limits.rb +104 -0
  556. data/test/test_LogicalExpression.rb +110 -0
  557. data/test/test_MacroTable.rb +51 -0
  558. data/test/test_Project.rb +57 -0
  559. data/test/test_PropertySet.rb +71 -0
  560. data/test/test_Query.rb +83 -0
  561. data/test/test_RealFormat.rb +83 -0
  562. data/test/test_RichText.rb +869 -0
  563. data/test/test_Scheduler.rb +42 -0
  564. data/test/test_ShiftAssignments.rb +77 -0
  565. data/test/test_Syntax.rb +41 -0
  566. data/test/test_TextScanner.rb +95 -0
  567. data/test/test_TjTime.rb +114 -0
  568. data/test/test_TjpExample.rb +169 -0
  569. data/test/test_UTF8String.rb +84 -0
  570. data/test/test_WorkingHours.rb +56 -0
  571. metadata +649 -0
@@ -0,0 +1,221 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: TaskJuggler::TextParser::TokenDoc [TaskJuggler III API documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::TextParser::TokenDoc</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../../files/lib/TextParser/TokenDoc_rb.html">
57
+
58
+ lib/TextParser/TokenDoc.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ Utility class to store a name and a textual description of the meaning of a
89
+ token used by the parser syntax tree. A specification of the variable type
90
+ and a reference to a specific pattern are optional.
91
+ </p>
92
+
93
+ </div>
94
+
95
+ </div>
96
+
97
+
98
+ <div id="method-list">
99
+ <h3 class="section-bar">Methods</h3>
100
+
101
+ <div class="name-list">
102
+
103
+ <a href="#M000492">new</a>&nbsp;&nbsp;
104
+
105
+ </div>
106
+ </div>
107
+
108
+ </div>
109
+
110
+ <!-- if includes -->
111
+
112
+ <div id="section">
113
+
114
+
115
+
116
+ <div id="attribute-list">
117
+ <h3 class="section-bar">Attributes</h3>
118
+
119
+ <div class="name-list">
120
+ <table>
121
+
122
+ <tr class="top-aligned-row context-row">
123
+ <td class="context-item-name">name</td>
124
+
125
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
126
+
127
+ <td class="context-item-desc"></td>
128
+ </tr>
129
+
130
+ <tr class="top-aligned-row context-row">
131
+ <td class="context-item-name">pattern</td>
132
+
133
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
134
+
135
+ <td class="context-item-desc"></td>
136
+ </tr>
137
+
138
+ <tr class="top-aligned-row context-row">
139
+ <td class="context-item-name">text</td>
140
+
141
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
142
+
143
+ <td class="context-item-desc"></td>
144
+ </tr>
145
+
146
+ <tr class="top-aligned-row context-row">
147
+ <td class="context-item-name">typeSpec</td>
148
+
149
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
150
+
151
+ <td class="context-item-desc"></td>
152
+ </tr>
153
+
154
+ </table>
155
+ </div>
156
+ </div>
157
+
158
+
159
+ <!-- if method_list -->
160
+
161
+ <div id="methods">
162
+
163
+ <h3 class="section-bar">Public Class methods</h3>
164
+
165
+
166
+ <div id="method-M000492" class="method-detail">
167
+ <a name="M000492"></a>
168
+
169
+ <div class="method-heading">
170
+
171
+ <a href="#M000492" class="method-signature">
172
+
173
+ <span class="method-name">new</span><span class="method-args">(name, arg)</span>
174
+
175
+ </a>
176
+
177
+ </div>
178
+
179
+ <div class="method-description">
180
+
181
+ <p>
182
+ Construct a ParserTokenDoc object. <em>name</em> and <em>text</em> are
183
+ Strings that hold the name and textual description of the parser token.
184
+ </p>
185
+
186
+ <p><a class="source-toggle" href="#"
187
+ onclick="toggleCode('M000492-source');return false;">[Source]</a></p>
188
+ <div class="method-source-code" id="M000492-source">
189
+ <pre>
190
+ <span class="ruby-comment cmt"># File lib/TextParser/TokenDoc.rb, line 25</span>
191
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">arg</span>)
192
+ 26: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
193
+ 27: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
194
+ 28: <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">arg</span>
195
+ 29: <span class="ruby-keyword kw">else</span>
196
+ 30: <span class="ruby-ivar">@pattern</span> = <span class="ruby-identifier">arg</span>
197
+ 31: <span class="ruby-keyword kw">end</span>
198
+ 32: <span class="ruby-ivar">@typeSpec</span> = <span class="ruby-keyword kw">nil</span>
199
+ 33: <span class="ruby-ivar">@pattern</span> = <span class="ruby-keyword kw">nil</span>
200
+ 34: <span class="ruby-keyword kw">end</span>
201
+ </pre>
202
+ </div>
203
+
204
+ </div>
205
+ </div>
206
+
207
+
208
+
209
+ </div>
210
+
211
+
212
+
213
+
214
+ </div>
215
+
216
+ <div id="validator-badges">
217
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
218
+ </div>
219
+
220
+ </body>
221
+ </html>
@@ -0,0 +1,708 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: TaskJuggler::TextScanner [TaskJuggler III API documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">TaskJuggler::TextScanner</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/TextScanner_rb.html">
57
+
58
+ lib/TextScanner.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ The <a href="TextScanner.html">TextScanner</a> class can scan text files
89
+ and chop then into tokens to be used by a parser. Files can be nested. A
90
+ file can include an other file.
91
+ </p>
92
+
93
+ </div>
94
+
95
+ </div>
96
+
97
+
98
+ <div id="method-list">
99
+ <h3 class="section-bar">Methods</h3>
100
+
101
+ <div class="name-list">
102
+
103
+ <a href="#M000403">addMacro</a>&nbsp;&nbsp;
104
+
105
+ <a href="#M000397">close</a>&nbsp;&nbsp;
106
+
107
+ <a href="#M000406">error</a>&nbsp;&nbsp;
108
+
109
+ <a href="#M000405">expandMacro</a>&nbsp;&nbsp;
110
+
111
+ <a href="#M000400">fileName</a>&nbsp;&nbsp;
112
+
113
+ <a href="#M000398">include</a>&nbsp;&nbsp;
114
+
115
+ <a href="#M000404">macroDefined?</a>&nbsp;&nbsp;
116
+
117
+ <a href="#M000395">new</a>&nbsp;&nbsp;
118
+
119
+ <a href="#M000401">nextToken</a>&nbsp;&nbsp;
120
+
121
+ <a href="#M000396">open</a>&nbsp;&nbsp;
122
+
123
+ <a href="#M000402">returnToken</a>&nbsp;&nbsp;
124
+
125
+ <a href="#M000399">sourceFileInfo</a>&nbsp;&nbsp;
126
+
127
+ </div>
128
+ </div>
129
+
130
+ </div>
131
+
132
+ <!-- if includes -->
133
+
134
+ <div id="section">
135
+
136
+ <div id="class-list">
137
+ <h3 class="section-bar">Classes and Modules</h3>
138
+
139
+ Class <a href="TextScanner/BufferStreamHandle.html" class="link">TaskJuggler::TextScanner::BufferStreamHandle</a><br />
140
+ Class <a href="TextScanner/FileStreamHandle.html" class="link">TaskJuggler::TextScanner::FileStreamHandle</a><br />
141
+ Class <a href="TextScanner/StreamHandle.html" class="link">TaskJuggler::TextScanner::StreamHandle</a><br />
142
+
143
+ </div>
144
+
145
+
146
+
147
+
148
+ <!-- if method_list -->
149
+
150
+ <div id="methods">
151
+
152
+ <h3 class="section-bar">Public Class methods</h3>
153
+
154
+
155
+ <div id="method-M000395" class="method-detail">
156
+ <a name="M000395"></a>
157
+
158
+ <div class="method-heading">
159
+
160
+ <a href="#M000395" class="method-signature">
161
+
162
+ <span class="method-name">new</span><span class="method-args">(masterFile, messageHandler)</span>
163
+
164
+ </a>
165
+
166
+ </div>
167
+
168
+ <div class="method-description">
169
+
170
+ <p>
171
+ Create a new instance of <a href="TextScanner.html">TextScanner</a>.
172
+ <em>masterFile</em> must be a <a href="../String.html">String</a> that
173
+ either contains the name of the file to start with or the text itself.
174
+ <em>messageHandler</em> is a <a
175
+ href="MessageHandler.html">MessageHandler</a> that is used for error
176
+ messages.
177
+ </p>
178
+
179
+ <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">
182
+ <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>
200
+ </pre>
201
+ </div>
202
+
203
+ </div>
204
+ </div>
205
+
206
+
207
+ <h3 class="section-bar">Public Instance methods</h3>
208
+
209
+
210
+ <div id="method-M000403" class="method-detail">
211
+ <a name="M000403"></a>
212
+
213
+ <div class="method-heading">
214
+
215
+ <a href="#M000403" class="method-signature">
216
+
217
+ <span class="method-name">addMacro</span><span class="method-args">(macro)</span>
218
+
219
+ </a>
220
+
221
+ </div>
222
+
223
+ <div class="method-description">
224
+
225
+ <p>
226
+ Add a <a href="Macro.html">Macro</a> to the macro translation table.
227
+ </p>
228
+
229
+ <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">
232
+ <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>
237
+ </pre>
238
+ </div>
239
+
240
+ </div>
241
+ </div>
242
+
243
+
244
+ <div id="method-M000397" class="method-detail">
245
+ <a name="M000397"></a>
246
+
247
+ <div class="method-heading">
248
+
249
+ <a href="#M000397" class="method-signature">
250
+
251
+ <span class="method-name">close</span><span class="method-args">()</span>
252
+
253
+ </a>
254
+
255
+ </div>
256
+
257
+ <div class="method-description">
258
+
259
+ <p>
260
+ Finish processing and reset all data structures.
261
+ </p>
262
+
263
+ <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">
266
+ <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>
274
+ </pre>
275
+ </div>
276
+
277
+ </div>
278
+ </div>
279
+
280
+
281
+ <div id="method-M000406" class="method-detail">
282
+ <a name="M000406"></a>
283
+
284
+ <div class="method-heading">
285
+
286
+ <a href="#M000406" class="method-signature">
287
+
288
+ <span class="method-name">error</span><span class="method-args">(id, text, property = nil)</span>
289
+
290
+ </a>
291
+
292
+ </div>
293
+
294
+ <div class="method-description">
295
+
296
+ <p>
297
+ Call this function to report any errors related to the parsed input.
298
+ </p>
299
+
300
+ <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">
303
+ <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>
321
+ </pre>
322
+ </div>
323
+
324
+ </div>
325
+ </div>
326
+
327
+
328
+ <div id="method-M000405" class="method-detail">
329
+ <a name="M000405"></a>
330
+
331
+ <div class="method-heading">
332
+
333
+ <a href="#M000405" class="method-signature">
334
+
335
+ <span class="method-name">expandMacro</span><span class="method-args">(args)</span>
336
+
337
+ </a>
338
+
339
+ </div>
340
+
341
+ <div class="method-description">
342
+
343
+ <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">
346
+ <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>
360
+ </pre>
361
+ </div>
362
+
363
+ </div>
364
+ </div>
365
+
366
+
367
+ <div id="method-M000400" class="method-detail">
368
+ <a name="M000400"></a>
369
+
370
+ <div class="method-heading">
371
+
372
+ <a href="#M000400" class="method-signature">
373
+
374
+ <span class="method-name">fileName</span><span class="method-args">()</span>
375
+
376
+ </a>
377
+
378
+ </div>
379
+
380
+ <div class="method-description">
381
+
382
+ <p>
383
+ Return the name of the currently processed file. If we are working on a
384
+ text buffer, the text will be returned.
385
+ </p>
386
+
387
+ <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">
390
+ <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>
395
+ </pre>
396
+ </div>
397
+
398
+ </div>
399
+ </div>
400
+
401
+
402
+ <div id="method-M000398" class="method-detail">
403
+ <a name="M000398"></a>
404
+
405
+ <div class="method-heading">
406
+
407
+ <a href="#M000398" class="method-signature">
408
+
409
+ <span class="method-name">include</span><span class="method-args">(fileName)</span>
410
+
411
+ </a>
412
+
413
+ </div>
414
+
415
+ <div class="method-description">
416
+
417
+ <p>
418
+ Continue processing with a new file specified by <em>fileName</em>. When
419
+ this file is finished, we will continue in the old file after the location
420
+ where we started with the new file.
421
+ </p>
422
+
423
+ <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">
426
+ <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>
448
+ </pre>
449
+ </div>
450
+
451
+ </div>
452
+ </div>
453
+
454
+
455
+ <div id="method-M000404" class="method-detail">
456
+ <a name="M000404"></a>
457
+
458
+ <div class="method-heading">
459
+
460
+ <a href="#M000404" class="method-signature">
461
+
462
+ <span class="method-name">macroDefined?</span><span class="method-args">(name)</span>
463
+
464
+ </a>
465
+
466
+ </div>
467
+
468
+ <div class="method-description">
469
+
470
+ <p>
471
+ Return true if the <a href="Macro.html">Macro</a> <em>name</em> has been
472
+ added already.
473
+ </p>
474
+
475
+ <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">
478
+ <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>
483
+ </pre>
484
+ </div>
485
+
486
+ </div>
487
+ </div>
488
+
489
+
490
+ <div id="method-M000401" class="method-detail">
491
+ <a name="M000401"></a>
492
+
493
+ <div class="method-heading">
494
+
495
+ <a href="#M000401" class="method-signature">
496
+
497
+ <span class="method-name">nextToken</span><span class="method-args">()</span>
498
+
499
+ </a>
500
+
501
+ </div>
502
+
503
+ <div class="method-description">
504
+
505
+ <p>
506
+ Scan for the next token in the input stream and return it. The result will
507
+ be an Array of the form [ TokenType, TokenValue ].
508
+ </p>
509
+
510
+ <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">
513
+ <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>
568
+ </pre>
569
+ </div>
570
+
571
+ </div>
572
+ </div>
573
+
574
+
575
+ <div id="method-M000396" class="method-detail">
576
+ <a name="M000396"></a>
577
+
578
+ <div class="method-heading">
579
+
580
+ <a href="#M000396" class="method-signature">
581
+
582
+ <span class="method-name">open</span><span class="method-args">(fileNameIsBuffer = false)</span>
583
+
584
+ </a>
585
+
586
+ </div>
587
+
588
+ <div class="method-description">
589
+
590
+ <p>
591
+ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
592
+ <a href="../String.html">String</a>, else on a File.
593
+ </p>
594
+
595
+ <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">
598
+ <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>
613
+ </pre>
614
+ </div>
615
+
616
+ </div>
617
+ </div>
618
+
619
+
620
+ <div id="method-M000402" class="method-detail">
621
+ <a name="M000402"></a>
622
+
623
+ <div class="method-heading">
624
+
625
+ <a href="#M000402" class="method-signature">
626
+
627
+ <span class="method-name">returnToken</span><span class="method-args">(token)</span>
628
+
629
+ </a>
630
+
631
+ </div>
632
+
633
+ <div class="method-description">
634
+
635
+ <p>
636
+ Return a token to retrieve it with the next nextToken() call again. Only 1
637
+ token can be returned before the next nextToken() call.
638
+ </p>
639
+
640
+ <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">
643
+ <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>
653
+ </pre>
654
+ </div>
655
+
656
+ </div>
657
+ </div>
658
+
659
+
660
+ <div id="method-M000399" class="method-detail">
661
+ <a name="M000399"></a>
662
+
663
+ <div class="method-heading">
664
+
665
+ <a href="#M000399" class="method-signature">
666
+
667
+ <span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
668
+
669
+ </a>
670
+
671
+ </div>
672
+
673
+ <div class="method-description">
674
+
675
+ <p>
676
+ Return <a href="SourceFileInfo.html">SourceFileInfo</a> for the current
677
+ processing prosition.
678
+ </p>
679
+
680
+ <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">
683
+ <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>
688
+ </pre>
689
+ </div>
690
+
691
+ </div>
692
+ </div>
693
+
694
+
695
+
696
+ </div>
697
+
698
+
699
+
700
+
701
+ </div>
702
+
703
+ <div id="validator-badges">
704
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
705
+ </div>
706
+
707
+ </body>
708
+ </html>