taskjuggler 0.0.10 → 0.0.11

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 (787) hide show
  1. data/CHANGELOG +115 -0
  2. data/README.rdoc +105 -0
  3. data/examples/tutorial.tjp +21 -16
  4. data/gem_spec.rb +1 -1
  5. data/lib/{Account.rb → taskjuggler/Account.rb} +2 -3
  6. data/lib/{AccountScenario.rb → taskjuggler/AccountScenario.rb} +1 -1
  7. data/lib/taskjuggler/AlgorithmDiff.rb +311 -0
  8. data/lib/{Allocation.rb → taskjuggler/Allocation.rb} +3 -3
  9. data/lib/{AppConfig.rb → taskjuggler/AppConfig.rb} +0 -1
  10. data/lib/{AttributeBase.rb → taskjuggler/AttributeBase.rb} +1 -1
  11. data/lib/{AttributeDefinition.rb → taskjuggler/AttributeDefinition.rb} +0 -0
  12. data/lib/{Attributes.rb → taskjuggler/Attributes.rb} +19 -9
  13. data/lib/{BatchProcessor.rb → taskjuggler/BatchProcessor.rb} +0 -0
  14. data/lib/{Booking.rb → taskjuggler/Booking.rb} +0 -0
  15. data/lib/{Charge.rb → taskjuggler/Charge.rb} +1 -1
  16. data/lib/{ChargeSet.rb → taskjuggler/ChargeSet.rb} +1 -1
  17. data/lib/{DataCache.rb → taskjuggler/DataCache.rb} +0 -0
  18. data/lib/{FileList.rb → taskjuggler/FileList.rb} +0 -0
  19. data/lib/{HTMLDocument.rb → taskjuggler/HTMLDocument.rb} +1 -1
  20. data/lib/{Interval.rb → taskjuggler/Interval.rb} +1 -1
  21. data/lib/{IntervalList.rb → taskjuggler/IntervalList.rb} +1 -1
  22. data/lib/{Journal.rb → taskjuggler/Journal.rb} +2 -2
  23. data/lib/{KeywordArray.rb → taskjuggler/KeywordArray.rb} +0 -0
  24. data/lib/{KeywordDocumentation.rb → taskjuggler/KeywordDocumentation.rb} +5 -5
  25. data/lib/{Limits.rb → taskjuggler/Limits.rb} +1 -1
  26. data/lib/{Log.rb → taskjuggler/Log.rb} +0 -0
  27. data/lib/{LogFile.rb → taskjuggler/LogFile.rb} +0 -0
  28. data/lib/{LogicalExpression.rb → taskjuggler/LogicalExpression.rb} +3 -3
  29. data/lib/{LogicalFunction.rb → taskjuggler/LogicalFunction.rb} +1 -1
  30. data/lib/{LogicalOperation.rb → taskjuggler/LogicalOperation.rb} +1 -1
  31. data/lib/{MessageHandler.rb → taskjuggler/MessageHandler.rb} +3 -1
  32. data/lib/{Project.rb → taskjuggler/Project.rb} +51 -48
  33. data/lib/{ProjectFileParser.rb → taskjuggler/ProjectFileParser.rb} +25 -9
  34. data/lib/{ProjectFileScanner.rb → taskjuggler/ProjectFileScanner.rb} +5 -5
  35. data/lib/{PropertyList.rb → taskjuggler/PropertyList.rb} +0 -0
  36. data/lib/{PropertySet.rb → taskjuggler/PropertySet.rb} +3 -4
  37. data/lib/{PropertyTreeNode.rb → taskjuggler/PropertyTreeNode.rb} +157 -11
  38. data/lib/{Query.rb → taskjuggler/Query.rb} +17 -7
  39. data/lib/{RealFormat.rb → taskjuggler/RealFormat.rb} +0 -0
  40. data/lib/{Resource.rb → taskjuggler/Resource.rb} +8 -6
  41. data/lib/{ResourceScenario.rb → taskjuggler/ResourceScenario.rb} +26 -65
  42. data/lib/{RichText.rb → taskjuggler/RichText.rb} +3 -3
  43. data/lib/{RichTextDocument.rb → taskjuggler/RichText/Document.rb} +3 -3
  44. data/lib/{RichTextElement.rb → taskjuggler/RichText/Element.rb} +10 -4
  45. data/lib/{RichTextFunctionExample.rb → taskjuggler/RichText/FunctionExample.rb} +3 -3
  46. data/lib/{RichTextFunctionHandler.rb → taskjuggler/RichText/FunctionHandler.rb} +0 -0
  47. data/lib/{RichTextParser.rb → taskjuggler/RichText/Parser.rb} +6 -4
  48. data/lib/{RTFHandlers.rb → taskjuggler/RichText/RTFHandlers.rb} +4 -4
  49. data/lib/{RTFNavigator.rb → taskjuggler/RichText/RTFNavigator.rb} +3 -3
  50. data/lib/{RTFQuery.rb → taskjuggler/RichText/RTFQuery.rb} +62 -39
  51. data/lib/{RTFReport.rb → taskjuggler/RichText/RTFReport.rb} +2 -2
  52. data/lib/{RTFReportLink.rb → taskjuggler/RichText/RTFReportLink.rb} +4 -4
  53. data/lib/{RTFWithQuerySupport.rb → taskjuggler/RichText/RTFWithQuerySupport.rb} +1 -1
  54. data/lib/{RichTextScanner.rb → taskjuggler/RichText/Scanner.rb} +18 -5
  55. data/lib/{RichTextSnip.rb → taskjuggler/RichText/Snip.rb} +2 -2
  56. data/lib/{RichTextSyntaxRules.rb → taskjuggler/RichText/SyntaxRules.rb} +14 -0
  57. data/lib/{TOCEntry.rb → taskjuggler/RichText/TOCEntry.rb} +2 -2
  58. data/lib/{TableOfContents.rb → taskjuggler/RichText/TableOfContents.rb} +2 -2
  59. data/lib/{RuntimeConfig.rb → taskjuggler/RuntimeConfig.rb} +18 -18
  60. data/lib/{Scenario.rb → taskjuggler/Scenario.rb} +1 -1
  61. data/lib/{ScenarioData.rb → taskjuggler/ScenarioData.rb} +2 -3
  62. data/lib/{Scoreboard.rb → taskjuggler/Scoreboard.rb} +4 -4
  63. data/lib/{SheetHandlerBase.rb → taskjuggler/SheetHandlerBase.rb} +3 -3
  64. data/lib/{SheetReceiver.rb → taskjuggler/SheetReceiver.rb} +2 -2
  65. data/lib/{SheetSender.rb → taskjuggler/SheetSender.rb} +5 -5
  66. data/lib/{Shift.rb → taskjuggler/Shift.rb} +2 -3
  67. data/lib/{ShiftAssignments.rb → taskjuggler/ShiftAssignments.rb} +1 -1
  68. data/lib/{ShiftScenario.rb → taskjuggler/ShiftScenario.rb} +1 -1
  69. data/lib/{SimpleQueryExpander.rb → taskjuggler/SimpleQueryExpander.rb} +0 -0
  70. data/lib/{StatusSheetReceiver.rb → taskjuggler/StatusSheetReceiver.rb} +1 -1
  71. data/lib/{StatusSheetSender.rb → taskjuggler/StatusSheetSender.rb} +1 -1
  72. data/lib/{SyntaxReference.rb → taskjuggler/SyntaxReference.rb} +4 -4
  73. data/lib/{TableColumnDefinition.rb → taskjuggler/TableColumnDefinition.rb} +0 -0
  74. data/lib/{Task.rb → taskjuggler/Task.rb} +2 -2
  75. data/lib/{TaskDependency.rb → taskjuggler/TaskDependency.rb} +8 -0
  76. data/lib/{TaskJuggler.rb → taskjuggler/TaskJuggler.rb} +6 -4
  77. data/lib/{TaskScenario.rb → taskjuggler/TaskScenario.rb} +211 -150
  78. data/lib/taskjuggler/TernarySearchTree.rb +203 -0
  79. data/lib/{TextFormatter.rb → taskjuggler/TextFormatter.rb} +1 -1
  80. data/lib/{TextParser.rb → taskjuggler/TextParser.rb} +6 -6
  81. data/lib/{MacroTable.rb → taskjuggler/TextParser/MacroTable.rb} +2 -12
  82. data/lib/{TextParser → taskjuggler/TextParser}/Pattern.rb +5 -2
  83. data/lib/{TextParser → taskjuggler/TextParser}/Rule.rb +1 -1
  84. data/lib/{TextScanner.rb → taskjuggler/TextParser/Scanner.rb} +34 -32
  85. data/lib/{SourceFileInfo.rb → taskjuggler/TextParser/SourceFileInfo.rb} +1 -1
  86. data/lib/{TextParser → taskjuggler/TextParser}/StackElement.rb +0 -2
  87. data/lib/{TextParser → taskjuggler/TextParser}/State.rb +0 -0
  88. data/lib/{TextParser → taskjuggler/TextParser}/TokenDoc.rb +0 -0
  89. data/lib/{TimeSheetReceiver.rb → taskjuggler/TimeSheetReceiver.rb} +1 -1
  90. data/lib/{TimeSheetSender.rb → taskjuggler/TimeSheetSender.rb} +1 -1
  91. data/lib/{TimeSheetSummary.rb → taskjuggler/TimeSheetSummary.rb} +1 -1
  92. data/lib/{TimeSheets.rb → taskjuggler/TimeSheets.rb} +23 -16
  93. data/lib/{Tj3AppBase.rb → taskjuggler/Tj3AppBase.rb} +19 -12
  94. data/lib/{Tj3Config.rb → taskjuggler/Tj3Config.rb} +3 -3
  95. data/lib/taskjuggler/Tj3Man.rb +78 -0
  96. data/lib/{Tj3SheetAppBase.rb → taskjuggler/Tj3SheetAppBase.rb} +2 -2
  97. data/lib/{TjException.rb → taskjuggler/TjException.rb} +0 -0
  98. data/lib/{TjTime.rb → taskjuggler/TjTime.rb} +279 -234
  99. data/lib/{TjpExample.rb → taskjuggler/TjpExample.rb} +0 -0
  100. data/lib/{TjpSyntaxRules.rb → taskjuggler/TjpSyntaxRules.rb} +253 -95
  101. data/lib/{URLParameter.rb → taskjuggler/URLParameter.rb} +0 -0
  102. data/lib/{UTF8String.rb → taskjuggler/UTF8String.rb} +0 -0
  103. data/lib/{UserManual.rb → taskjuggler/UserManual.rb} +6 -6
  104. data/lib/{VimSyntax.rb → taskjuggler/VimSyntax.rb} +6 -2
  105. data/lib/{WorkingHours.rb → taskjuggler/WorkingHours.rb} +14 -22
  106. data/lib/{XMLDocument.rb → taskjuggler/XMLDocument.rb} +1 -1
  107. data/lib/{XMLElement.rb → taskjuggler/XMLElement.rb} +1 -1
  108. data/lib/taskjuggler/apps/Tj3.rb +134 -0
  109. data/lib/taskjuggler/apps/Tj3Client.rb +467 -0
  110. data/lib/taskjuggler/apps/Tj3Daemon.rb +142 -0
  111. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +56 -0
  112. data/lib/taskjuggler/apps/Tj3SsSender.rb +90 -0
  113. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +59 -0
  114. data/lib/taskjuggler/apps/Tj3TsSender.rb +77 -0
  115. data/lib/taskjuggler/apps/Tj3TsSummary.rb +86 -0
  116. data/lib/{daemon → taskjuggler/daemon}/Daemon.rb +4 -3
  117. data/lib/{daemon → taskjuggler/daemon}/ProcessIntercom.rb +2 -2
  118. data/lib/{daemon → taskjuggler/daemon}/ProjectBroker.rb +5 -5
  119. data/lib/{daemon → taskjuggler/daemon}/ProjectServer.rb +16 -16
  120. data/lib/{daemon → taskjuggler/daemon}/ReportServer.rb +6 -6
  121. data/lib/{daemon → taskjuggler/daemon}/ReportServlet.rb +2 -2
  122. data/lib/{daemon → taskjuggler/daemon}/WebServer.rb +4 -4
  123. data/lib/{daemon → taskjuggler/daemon}/WelcomePage.rb +2 -1
  124. data/lib/{deep_copy.rb → taskjuggler/deep_copy.rb} +0 -0
  125. data/lib/{reports → taskjuggler/reports}/CSVFile.rb +2 -2
  126. data/lib/{reports → taskjuggler/reports}/CollisionDetector.rb +1 -1
  127. data/lib/{reports → taskjuggler/reports}/ColumnTable.rb +1 -1
  128. data/lib/{reports → taskjuggler/reports}/GanttChart.rb +4 -4
  129. data/lib/{reports → taskjuggler/reports}/GanttContainer.rb +1 -1
  130. data/lib/{reports → taskjuggler/reports}/GanttHeader.rb +1 -1
  131. data/lib/{reports → taskjuggler/reports}/GanttHeaderScaleItem.rb +0 -0
  132. data/lib/{reports → taskjuggler/reports}/GanttLine.rb +6 -6
  133. data/lib/{reports → taskjuggler/reports}/GanttLoadStack.rb +1 -1
  134. data/lib/{reports → taskjuggler/reports}/GanttMilestone.rb +1 -1
  135. data/lib/{reports → taskjuggler/reports}/GanttRouter.rb +1 -1
  136. data/lib/{reports → taskjuggler/reports}/GanttTaskBar.rb +1 -1
  137. data/lib/{reports → taskjuggler/reports}/HTMLGraphics.rb +0 -0
  138. data/lib/{reports → taskjuggler/reports}/Navigator.rb +1 -1
  139. data/lib/{reports → taskjuggler/reports}/NikuReport.rb +3 -6
  140. data/lib/{reports → taskjuggler/reports}/Report.rb +19 -14
  141. data/lib/{reports → taskjuggler/reports}/ReportBase.rb +0 -0
  142. data/lib/{reports → taskjuggler/reports}/ReportContext.rb +0 -0
  143. data/lib/{reports → taskjuggler/reports}/ReportTable.rb +2 -2
  144. data/lib/{reports → taskjuggler/reports}/ReportTableCell.rb +0 -0
  145. data/lib/{reports → taskjuggler/reports}/ReportTableColumn.rb +0 -0
  146. data/lib/{reports → taskjuggler/reports}/ReportTableLegend.rb +0 -0
  147. data/lib/{reports → taskjuggler/reports}/ReportTableLine.rb +1 -1
  148. data/lib/{reports → taskjuggler/reports}/ResourceListRE.rb +4 -4
  149. data/lib/{reports → taskjuggler/reports}/StatusSheetReport.rb +1 -1
  150. data/lib/{reports → taskjuggler/reports}/TableReport.rb +8 -7
  151. data/lib/{reports → taskjuggler/reports}/TaskListRE.rb +4 -4
  152. data/lib/{reports → taskjuggler/reports}/TextReport.rb +1 -1
  153. data/lib/{reports → taskjuggler/reports}/TimeSheetReport.rb +1 -1
  154. data/lib/{reports → taskjuggler/reports}/TjpExportRE.rb +87 -29
  155. data/lib/tj3.rb +2 -144
  156. data/lib/tj3client.rb +2 -442
  157. data/lib/tj3d.rb +1 -133
  158. data/lib/tj3man.rb +2 -75
  159. data/lib/tj3ss_receiver.rb +2 -42
  160. data/lib/tj3ss_sender.rb +1 -76
  161. data/lib/tj3ts_receiver.rb +1 -45
  162. data/lib/tj3ts_sender.rb +1 -63
  163. data/lib/tj3ts_summary.rb +1 -72
  164. data/manual/How_To_Contribute +19 -49
  165. data/manual/Installation +65 -6
  166. data/manual/Reporting_Bugs +6 -20
  167. data/manual/TaskJuggler_Internals +8 -1
  168. data/manual/Tutorial +16 -0
  169. data/prj_cfg.rb +2 -3
  170. data/spec/IntervalList_spec.rb +2 -1
  171. data/spec/ProjectBroker_spec.rb +1 -1
  172. data/spec/TernarySearchTree_spec.rb +131 -0
  173. data/spec/TimeSheets_spec.rb +129 -0
  174. data/spec/Tj3Daemon_spec.rb +51 -0
  175. data/spec/Tj3_spec.rb +36 -0
  176. data/spec/support/DaemonControl.rb +78 -0
  177. data/spec/support/StdIoWrapper.rb +43 -0
  178. data/spec/tj3client.log +23 -0
  179. data/tasks/changelog.rake +17 -2
  180. data/tasks/csts.rake +2 -2
  181. data/tasks/manual.rake +9 -5
  182. data/tasks/missing.rake +0 -4
  183. data/tasks/rdoc.rake +2 -2
  184. data/tasks/vim.rake +9 -0
  185. data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
  186. data/test/TestSuite/CSV-Reports/celltext.tjp +1 -0
  187. data/test/TestSuite/CSV-Reports/inputs.tjp +19 -0
  188. data/test/TestSuite/CSV-Reports/project-1.tji +9 -0
  189. data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
  190. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -0
  191. data/test/TestSuite/CSV-Reports/refs/inputs.csv +6 -0
  192. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +4 -4
  193. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +22 -22
  194. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -0
  195. data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +1 -0
  196. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -0
  197. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +14 -13
  198. data/test/TestSuite/CSV-Reports/refs/targets.csv +5 -0
  199. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +15 -14
  200. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +33 -32
  201. data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -0
  202. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -0
  203. data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -0
  204. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +1 -0
  205. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -0
  206. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  207. data/test/TestSuite/CSV-Reports/targets.tjp +20 -0
  208. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  209. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  210. data/test/TestSuite/CSV-Reports/weekly.tjp +5 -2
  211. data/test/TestSuite/Export-Reports/export.tji +6 -0
  212. data/test/TestSuite/Export-Reports/refs/Account.tjp +92 -0
  213. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +38 -0
  214. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +124 -0
  215. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +50 -0
  216. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +45 -0
  217. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +18 -0
  218. data/test/TestSuite/Export-Reports/refs/Booking.tjp +48 -0
  219. data/test/TestSuite/Export-Reports/refs/Caption.tjp +65 -0
  220. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +45 -0
  221. data/test/TestSuite/Export-Reports/refs/Comments.tjp +67 -0
  222. data/test/TestSuite/Export-Reports/refs/Complete.tjp +50 -0
  223. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +41 -0
  224. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +18 -0
  225. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +24 -0
  226. data/test/TestSuite/Export-Reports/refs/DST.tjp +89 -0
  227. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +57 -0
  228. data/test/TestSuite/Export-Reports/refs/Durations.tjp +84 -0
  229. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +58 -0
  230. data/test/TestSuite/Export-Reports/refs/Flags.tjp +51 -0
  231. data/test/TestSuite/Export-Reports/refs/Gap.tjp +38 -0
  232. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +67 -0
  233. data/test/TestSuite/Export-Reports/refs/Include.tjp +58 -0
  234. data/test/TestSuite/Export-Reports/refs/Journal.tjp +28 -0
  235. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +283 -0
  236. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +617 -0
  237. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +18 -0
  238. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +57 -0
  239. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +91 -0
  240. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +18 -0
  241. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +18 -0
  242. data/test/TestSuite/Export-Reports/refs/Manager.tjp +121 -0
  243. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +59 -0
  244. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +27 -0
  245. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +30 -0
  246. data/test/TestSuite/Export-Reports/refs/Niku.tjp +218 -0
  247. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +18 -0
  248. data/test/TestSuite/Export-Reports/refs/Period.tjp +25 -0
  249. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +49 -0
  250. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +46 -0
  251. data/test/TestSuite/Export-Reports/refs/Priority.tjp +141 -0
  252. data/test/TestSuite/Export-Reports/refs/Project.tjp +18 -0
  253. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +36 -0
  254. data/test/TestSuite/Export-Reports/refs/Query.tjp +49 -0
  255. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +79 -0
  256. data/test/TestSuite/Export-Reports/refs/Reports.tjp +130 -0
  257. data/test/TestSuite/Export-Reports/refs/Resource.tjp +59 -0
  258. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +67 -0
  259. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +90 -0
  260. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +50 -0
  261. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +90 -0
  262. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +25 -0
  263. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +55 -0
  264. data/test/TestSuite/Export-Reports/refs/Select.tjp +89 -0
  265. data/test/TestSuite/Export-Reports/refs/Shift.tjp +39 -0
  266. data/test/TestSuite/Export-Reports/refs/Simple.tjp +67 -0
  267. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +95 -0
  268. data/test/TestSuite/Export-Reports/refs/String.tjp +33 -0
  269. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +41 -0
  270. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +49 -0
  271. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +75 -0
  272. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +51 -0
  273. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +81 -0
  274. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +18 -0
  275. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +69 -0
  276. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +1061 -0
  277. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +3 -1
  278. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +5 -3
  279. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +19 -19
  280. data/test/TestSuite/Scheduler/Correct/PriorityInversion.tjp +32 -0
  281. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +19 -0
  282. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +11 -0
  283. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +14 -14
  284. data/test/TestSuite/Scheduler/Correct/checks.tji +5 -0
  285. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +20 -0
  286. data/test/TestSuite/StatusSheets/boss_mail +1 -1
  287. data/test/TestSuite/StatusSheets/dev2_mail +1 -1
  288. data/test/TestSuite/StatusSheets/run +2 -3
  289. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -0
  290. data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +9 -0
  291. data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +3 -1
  292. data/test/TestSuite/Syntax/Correct/Alternative.tjp +3 -1
  293. data/test/TestSuite/Syntax/Correct/AutoID.tjp +3 -1
  294. data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -0
  295. data/test/TestSuite/Syntax/Correct/Caption.tjp +3 -1
  296. data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -1
  297. data/test/TestSuite/Syntax/Correct/Comments.tjp +3 -1
  298. data/test/TestSuite/Syntax/Correct/Complete.tjp +1 -0
  299. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +2 -1
  300. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +2 -1
  301. data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +3 -2
  302. data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
  303. data/test/TestSuite/Syntax/Correct/Depends1.tjp +6 -4
  304. data/test/TestSuite/Syntax/Correct/Durations.tjp +3 -1
  305. data/test/TestSuite/Syntax/Correct/Efficiency.tjp +4 -2
  306. data/test/TestSuite/Syntax/Correct/Export.tjp +6 -4
  307. data/test/TestSuite/Syntax/Correct/Flags.tjp +3 -1
  308. data/test/TestSuite/Syntax/Correct/Freeze.tjp +2 -2
  309. data/test/TestSuite/Syntax/Correct/Gap.tjp +3 -1
  310. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +4 -2
  311. data/test/TestSuite/Syntax/Correct/Include.tjp +3 -1
  312. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -1
  313. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +13 -9
  314. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +1 -0
  315. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +3 -1
  316. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +3 -1
  317. data/test/TestSuite/Syntax/Correct/Macro-1.tjp +3 -1
  318. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +3 -1
  319. data/test/TestSuite/Syntax/Correct/Macro-3.tjp +1 -0
  320. data/test/TestSuite/Syntax/Correct/Manager.tjp +4 -2
  321. data/test/TestSuite/Syntax/Correct/Mandatory.tjp +3 -1
  322. data/test/TestSuite/Syntax/Correct/Milestone.tjp +3 -1
  323. data/test/TestSuite/Syntax/Correct/MinMax.tjp +3 -1
  324. data/test/TestSuite/Syntax/Correct/Niku.tjp +1 -0
  325. data/test/TestSuite/Syntax/Correct/Numberformat.tjp +3 -2
  326. data/test/TestSuite/Syntax/Correct/Period.tjp +1 -0
  327. data/test/TestSuite/Syntax/Correct/Persistent.tjp +3 -1
  328. data/test/TestSuite/Syntax/Correct/Precedes1.tjp +6 -4
  329. data/test/TestSuite/Syntax/Correct/Priority.tjp +4 -2
  330. data/test/TestSuite/Syntax/Correct/Project.tjp +5 -4
  331. data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +3 -2
  332. data/test/TestSuite/Syntax/Correct/Query.tjp +1 -0
  333. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +3 -1
  334. data/test/TestSuite/Syntax/Correct/Reports.tjp +7 -5
  335. data/test/TestSuite/Syntax/Correct/Resource.tjp +4 -2
  336. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +4 -2
  337. data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +3 -1
  338. data/test/TestSuite/Syntax/Correct/Responsible.tjp +3 -1
  339. data/test/TestSuite/Syntax/Correct/RollupResource.tjp +3 -1
  340. data/test/TestSuite/Syntax/Correct/Scenario.tjp +2 -1
  341. data/test/TestSuite/Syntax/Correct/Scheduling.tjp +3 -1
  342. data/test/TestSuite/Syntax/Correct/Select.tjp +3 -1
  343. data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -2
  344. data/test/TestSuite/Syntax/Correct/Simple.tjp +3 -1
  345. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +4 -2
  346. data/test/TestSuite/Syntax/Correct/String.tjp +3 -1
  347. data/test/TestSuite/Syntax/Correct/Supplement.tjp +3 -1
  348. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +3 -2
  349. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +3 -1
  350. data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +3 -1
  351. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -2
  352. data/test/TestSuite/Syntax/Correct/Vacation.tjp +5 -3
  353. data/test/TestSuite/Syntax/Correct/tutorial.tjp +23 -16
  354. data/test/TestSuite/Syntax/Errors/adopt_common_root.tjp +10 -0
  355. data/test/TestSuite/Syntax/Errors/adopt_duplicate_child.tjp +10 -0
  356. data/test/TestSuite/Syntax/Errors/adopt_duplicate_parent.tjp +10 -0
  357. data/test/TestSuite/{Scheduler/Errors/milestone_duration.tjp → Syntax/Errors/multiple_durations.tjp} +1 -1
  358. data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +6 -4
  359. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +5 -3
  360. data/test/TestSuite/TimeSheets/dev2_mail1 +1 -1
  361. data/test/TestSuite/TimeSheets/dev2_mail2 +1 -1
  362. data/test/TestSuite/TimeSheets/run +2 -2
  363. data/test/TestSuite/TimeSheets/uu.txt +29 -0
  364. data/test/test_AlgorithmDiff.rb +139 -0
  365. data/test/test_BatchProcessor.rb +2 -1
  366. data/test/test_CSV-Reports.rb +30 -19
  367. data/test/test_CSVFile.rb +2 -1
  368. data/test/test_CollisionDetector.rb +2 -1
  369. data/test/test_Export-Reports.rb +128 -0
  370. data/test/test_Journal.rb +2 -1
  371. data/test/test_Limits.rb +4 -3
  372. data/test/test_LogicalExpression.rb +2 -1
  373. data/test/test_MacroTable.rb +8 -6
  374. data/test/test_Project.rb +2 -1
  375. data/test/test_ProjectFileScanner.rb +4 -3
  376. data/test/test_PropertySet.rb +2 -1
  377. data/test/test_Query.rb +3 -2
  378. data/test/test_RealFormat.rb +2 -1
  379. data/test/test_ReportGenerator.rb +3 -2
  380. data/test/test_RichText.rb +14 -3
  381. data/test/test_Scheduler.rb +2 -1
  382. data/test/test_ShiftAssignments.rb +3 -1
  383. data/test/test_SimpleQueryExpander.rb +3 -2
  384. data/test/test_Syntax.rb +2 -1
  385. data/test/test_TextFormatter.rb +2 -1
  386. data/test/test_TjTime.rb +15 -14
  387. data/test/test_TjpExample.rb +2 -1
  388. data/test/test_URLParameter.rb +2 -1
  389. data/test/test_UTF8String.rb +2 -1
  390. data/test/test_WorkingHours.rb +3 -2
  391. data/test/test_deep_copy.rb +2 -1
  392. metadata +250 -541
  393. data/README +0 -31
  394. data/benchmarks/allocatedSlots.csv +0 -334
  395. data/benchmarks/profile.clt +0 -42974
  396. data/benchmarks/profile.html +0 -61128
  397. data/doc/AppConfig.html +0 -1471
  398. data/doc/Arguments.html +0 -720
  399. data/doc/CHANGELOG.html +0 -1987
  400. data/doc/COPYING.html +0 -879
  401. data/doc/Object.html +0 -1056
  402. data/doc/README.html +0 -565
  403. data/doc/RuntimeConfig.html +0 -804
  404. data/doc/String.html +0 -913
  405. data/doc/TaskJuggler.html +0 -2512
  406. data/doc/TaskJuggler/Account.html +0 -733
  407. data/doc/TaskJuggler/AccountAttribute.html +0 -749
  408. data/doc/TaskJuggler/AccountScenario.html +0 -692
  409. data/doc/TaskJuggler/Allocation.html +0 -943
  410. data/doc/TaskJuggler/AllocationAttribute.html +0 -779
  411. data/doc/TaskJuggler/AttributeBase.html +0 -1308
  412. data/doc/TaskJuggler/AttributeDefinition.html +0 -795
  413. data/doc/TaskJuggler/AttributeOverwrite.html +0 -586
  414. data/doc/TaskJuggler/BatchProcessor.html +0 -1158
  415. data/doc/TaskJuggler/Booking.html +0 -839
  416. data/doc/TaskJuggler/BookingListAttribute.html +0 -749
  417. data/doc/TaskJuggler/BooleanAttribute.html +0 -749
  418. data/doc/TaskJuggler/CSVFile.html +0 -1108
  419. data/doc/TaskJuggler/CellSettingPattern.html +0 -680
  420. data/doc/TaskJuggler/CellSettingPatternList.html +0 -729
  421. data/doc/TaskJuggler/Charge.html +0 -757
  422. data/doc/TaskJuggler/ChargeListAttribute.html +0 -713
  423. data/doc/TaskJuggler/ChargeSet.html +0 -929
  424. data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -758
  425. data/doc/TaskJuggler/CollisionDetector.html +0 -1069
  426. data/doc/TaskJuggler/ColumnListAttribute.html +0 -713
  427. data/doc/TaskJuggler/ColumnTable.html +0 -743
  428. data/doc/TaskJuggler/Daemon.html +0 -798
  429. data/doc/TaskJuggler/DataCache.html +0 -930
  430. data/doc/TaskJuggler/DataCacheEntry.html +0 -717
  431. data/doc/TaskJuggler/DateAttribute.html +0 -717
  432. data/doc/TaskJuggler/DefinitionListAttribute.html +0 -635
  433. data/doc/TaskJuggler/DependencyListAttribute.html +0 -753
  434. data/doc/TaskJuggler/DurationAttribute.html +0 -750
  435. data/doc/TaskJuggler/FileList.html +0 -731
  436. data/doc/TaskJuggler/FileRecord.html +0 -682
  437. data/doc/TaskJuggler/FixnumAttribute.html +0 -671
  438. data/doc/TaskJuggler/FlagListAttribute.html +0 -749
  439. data/doc/TaskJuggler/FloatAttribute.html +0 -713
  440. data/doc/TaskJuggler/FormatListAttribute.html +0 -677
  441. data/doc/TaskJuggler/GanttChart.html +0 -1467
  442. data/doc/TaskJuggler/GanttContainer.html +0 -925
  443. data/doc/TaskJuggler/GanttHeader.html +0 -928
  444. data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -742
  445. data/doc/TaskJuggler/GanttLine.html +0 -1305
  446. data/doc/TaskJuggler/GanttLoadStack.html +0 -808
  447. data/doc/TaskJuggler/GanttMilestone.html +0 -906
  448. data/doc/TaskJuggler/GanttRouter.html +0 -1118
  449. data/doc/TaskJuggler/GanttTaskBar.html +0 -927
  450. data/doc/TaskJuggler/HTMLDocument.html +0 -761
  451. data/doc/TaskJuggler/HTMLGraphics.html +0 -817
  452. data/doc/TaskJuggler/Interval.html +0 -1056
  453. data/doc/TaskJuggler/IntervalList.html +0 -777
  454. data/doc/TaskJuggler/IntervalListAttribute.html +0 -753
  455. data/doc/TaskJuggler/JobInfo.html +0 -923
  456. data/doc/TaskJuggler/Journal.html +0 -1158
  457. data/doc/TaskJuggler/JournalEntry.html +0 -821
  458. data/doc/TaskJuggler/JournalEntryList.html +0 -1071
  459. data/doc/TaskJuggler/KeywordArray.html +0 -676
  460. data/doc/TaskJuggler/KeywordDocumentation.html +0 -1838
  461. data/doc/TaskJuggler/Limits.html +0 -1016
  462. data/doc/TaskJuggler/Limits/Limit.html +0 -927
  463. data/doc/TaskJuggler/LimitsAttribute.html +0 -714
  464. data/doc/TaskJuggler/ListAttributeBase.html +0 -683
  465. data/doc/TaskJuggler/Log.html +0 -1143
  466. data/doc/TaskJuggler/LogFile.html +0 -960
  467. data/doc/TaskJuggler/LogicalAttribute.html +0 -740
  468. data/doc/TaskJuggler/LogicalExpression.html +0 -781
  469. data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -671
  470. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -671
  471. data/doc/TaskJuggler/LogicalFlag.html +0 -723
  472. data/doc/TaskJuggler/LogicalFunction.html +0 -1306
  473. data/doc/TaskJuggler/LogicalOperation.html +0 -1124
  474. data/doc/TaskJuggler/Macro.html +0 -688
  475. data/doc/TaskJuggler/MacroTable.html +0 -852
  476. data/doc/TaskJuggler/ManagerResponsibilities.html +0 -716
  477. data/doc/TaskJuggler/ManagerStatusRecord.html +0 -720
  478. data/doc/TaskJuggler/Message.html +0 -817
  479. data/doc/TaskJuggler/MessageHandler.html +0 -1036
  480. data/doc/TaskJuggler/Navigator.html +0 -922
  481. data/doc/TaskJuggler/NavigatorElement.html +0 -974
  482. data/doc/TaskJuggler/NikuProject.html +0 -704
  483. data/doc/TaskJuggler/NikuReport.html +0 -1449
  484. data/doc/TaskJuggler/NikuResource.html +0 -674
  485. data/doc/TaskJuggler/NodeListAttribute.html +0 -635
  486. data/doc/TaskJuggler/PlaceHolderCell.html +0 -728
  487. data/doc/TaskJuggler/ProcessIntercom.html +0 -997
  488. data/doc/TaskJuggler/ProcessIntercomIface.html +0 -753
  489. data/doc/TaskJuggler/Project.html +0 -3333
  490. data/doc/TaskJuggler/ProjectBroker.html +0 -1656
  491. data/doc/TaskJuggler/ProjectBrokerIface.html +0 -831
  492. data/doc/TaskJuggler/ProjectFileParser.html +0 -2033
  493. data/doc/TaskJuggler/ProjectFileScanner.html +0 -1816
  494. data/doc/TaskJuggler/ProjectRecord.html +0 -958
  495. data/doc/TaskJuggler/ProjectServer.html +0 -1229
  496. data/doc/TaskJuggler/ProjectServerIface.html +0 -848
  497. data/doc/TaskJuggler/PropertyAttribute.html +0 -671
  498. data/doc/TaskJuggler/PropertyList.html +0 -1379
  499. data/doc/TaskJuggler/PropertySet.html +0 -1799
  500. data/doc/TaskJuggler/PropertyTreeNode.html +0 -2579
  501. data/doc/TaskJuggler/Query.html +0 -1663
  502. data/doc/TaskJuggler/RTFHandlers.html +0 -644
  503. data/doc/TaskJuggler/RTFNavigator.html +0 -772
  504. data/doc/TaskJuggler/RTFQuery.html +0 -1040
  505. data/doc/TaskJuggler/RTFReport.html +0 -800
  506. data/doc/TaskJuggler/RTFReportLink.html +0 -792
  507. data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -682
  508. data/doc/TaskJuggler/RealFormat.html +0 -785
  509. data/doc/TaskJuggler/RealFormatAttribute.html +0 -635
  510. data/doc/TaskJuggler/ReferenceAttribute.html +0 -824
  511. data/doc/TaskJuggler/Report.html +0 -1477
  512. data/doc/TaskJuggler/ReportBase.html +0 -1246
  513. data/doc/TaskJuggler/ReportContext.html +0 -816
  514. data/doc/TaskJuggler/ReportServer.html +0 -1048
  515. data/doc/TaskJuggler/ReportServerIface.html +0 -882
  516. data/doc/TaskJuggler/ReportServerRecord.html +0 -761
  517. data/doc/TaskJuggler/ReportServlet.html +0 -1024
  518. data/doc/TaskJuggler/ReportTable.html +0 -1159
  519. data/doc/TaskJuggler/ReportTableCell.html +0 -1646
  520. data/doc/TaskJuggler/ReportTableColumn.html +0 -870
  521. data/doc/TaskJuggler/ReportTableLegend.html +0 -1040
  522. data/doc/TaskJuggler/ReportTableLine.html +0 -1047
  523. data/doc/TaskJuggler/Resource.html +0 -972
  524. data/doc/TaskJuggler/ResourceListAttribute.html +0 -810
  525. data/doc/TaskJuggler/ResourceListRE.html +0 -717
  526. data/doc/TaskJuggler/ResourceScenario.html +0 -2599
  527. data/doc/TaskJuggler/RichText.html +0 -859
  528. data/doc/TaskJuggler/RichTextAttribute.html +0 -785
  529. data/doc/TaskJuggler/RichTextDocument.html +0 -1018
  530. data/doc/TaskJuggler/RichTextElement.html +0 -1754
  531. data/doc/TaskJuggler/RichTextFunctionExample.html +0 -779
  532. data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -730
  533. data/doc/TaskJuggler/RichTextImage.html +0 -692
  534. data/doc/TaskJuggler/RichTextIntermediate.html +0 -1265
  535. data/doc/TaskJuggler/RichTextParser.html +0 -847
  536. data/doc/TaskJuggler/RichTextScanner.html +0 -1469
  537. data/doc/TaskJuggler/RichTextSnip.html +0 -980
  538. data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2018
  539. data/doc/TaskJuggler/Scenario.html +0 -636
  540. data/doc/TaskJuggler/ScenarioData.html +0 -818
  541. data/doc/TaskJuggler/ScenarioListAttribute.html +0 -713
  542. data/doc/TaskJuggler/Scoreboard.html +0 -1181
  543. data/doc/TaskJuggler/SheetHandlerBase.html +0 -1275
  544. data/doc/TaskJuggler/SheetReceiver.html +0 -1368
  545. data/doc/TaskJuggler/SheetSender.html +0 -1134
  546. data/doc/TaskJuggler/Shift.html +0 -731
  547. data/doc/TaskJuggler/ShiftAssignment.html +0 -988
  548. data/doc/TaskJuggler/ShiftAssignments.html +0 -1393
  549. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -714
  550. data/doc/TaskJuggler/ShiftScenario.html +0 -762
  551. data/doc/TaskJuggler/SimpleQueryExpander.html +0 -713
  552. data/doc/TaskJuggler/SortListAttribute.html +0 -671
  553. data/doc/TaskJuggler/SourceFileInfo.html +0 -740
  554. data/doc/TaskJuggler/StatusSheetReceiver.html +0 -658
  555. data/doc/TaskJuggler/StatusSheetReport.html +0 -910
  556. data/doc/TaskJuggler/StatusSheetSender.html +0 -788
  557. data/doc/TaskJuggler/StringAttribute.html +0 -713
  558. data/doc/TaskJuggler/SymbolAttribute.html +0 -671
  559. data/doc/TaskJuggler/SyntaxReference.html +0 -1220
  560. data/doc/TaskJuggler/TOCEntry.html +0 -816
  561. data/doc/TaskJuggler/TSResourceRecord.html +0 -712
  562. data/doc/TaskJuggler/TSTaskRecord.html +0 -724
  563. data/doc/TaskJuggler/TableColumnDefinition.html +0 -928
  564. data/doc/TaskJuggler/TableOfContents.html +0 -770
  565. data/doc/TaskJuggler/TableReport.html +0 -2533
  566. data/doc/TaskJuggler/Task.html +0 -865
  567. data/doc/TaskJuggler/TaskDependency.html +0 -772
  568. data/doc/TaskJuggler/TaskListAttribute.html +0 -753
  569. data/doc/TaskJuggler/TaskListRE.html +0 -716
  570. data/doc/TaskJuggler/TaskScenario.html +0 -4959
  571. data/doc/TaskJuggler/TextFormatter.html +0 -953
  572. data/doc/TaskJuggler/TextParser.html +0 -1773
  573. data/doc/TaskJuggler/TextParser/Pattern.html +0 -1717
  574. data/doc/TaskJuggler/TextParser/Rule.html +0 -1399
  575. data/doc/TaskJuggler/TextParser/StackElement.html +0 -922
  576. data/doc/TaskJuggler/TextParser/State.html +0 -995
  577. data/doc/TaskJuggler/TextParser/StateTransition.html +0 -788
  578. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -691
  579. data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -722
  580. data/doc/TaskJuggler/TextReport.html +0 -901
  581. data/doc/TaskJuggler/TextScanner.html +0 -1482
  582. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -641
  583. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +0 -707
  584. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +0 -704
  585. data/doc/TaskJuggler/TextScanner/StreamHandle.html +0 -1036
  586. data/doc/TaskJuggler/TimeSheet.html +0 -1232
  587. data/doc/TaskJuggler/TimeSheetReceiver.html +0 -655
  588. data/doc/TaskJuggler/TimeSheetRecord.html +0 -1395
  589. data/doc/TaskJuggler/TimeSheetReport.html +0 -991
  590. data/doc/TaskJuggler/TimeSheetSender.html +0 -680
  591. data/doc/TaskJuggler/TimeSheetSummary.html +0 -935
  592. data/doc/TaskJuggler/TimeSheets.html +0 -716
  593. data/doc/TaskJuggler/Tj3AppBase.html +0 -831
  594. data/doc/TaskJuggler/Tj3Client.html +0 -1477
  595. data/doc/TaskJuggler/Tj3Daemon.html +0 -884
  596. data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -738
  597. data/doc/TaskJuggler/Tj3SsReceiver.html +0 -724
  598. data/doc/TaskJuggler/Tj3SsSender.html +0 -757
  599. data/doc/TaskJuggler/Tj3TsReceiver.html +0 -724
  600. data/doc/TaskJuggler/Tj3TsSender.html +0 -744
  601. data/doc/TaskJuggler/Tj3TsSummary.html +0 -752
  602. data/doc/TaskJuggler/TjException.html +0 -672
  603. data/doc/TaskJuggler/TjTime.html +0 -2807
  604. data/doc/TaskJuggler/TjpExample.html +0 -877
  605. data/doc/TaskJuggler/TjpExportRE.html +0 -1598
  606. data/doc/TaskJuggler/TjpSyntaxRules.html +0 -13611
  607. data/doc/TaskJuggler/URLParameter.html +0 -671
  608. data/doc/TaskJuggler/UserManual.html +0 -1188
  609. data/doc/TaskJuggler/VimSyntax.html +0 -1044
  610. data/doc/TaskJuggler/WebServer.html +0 -737
  611. data/doc/TaskJuggler/WelcomePage.html +0 -769
  612. data/doc/TaskJuggler/WorkingHours.html +0 -1207
  613. data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -736
  614. data/doc/TaskJuggler/XMLBlob.html +0 -687
  615. data/doc/TaskJuggler/XMLComment.html +0 -682
  616. data/doc/TaskJuggler/XMLDocument.html +0 -774
  617. data/doc/TaskJuggler/XMLElement.html +0 -942
  618. data/doc/TaskJuggler/XMLNamedText.html +0 -643
  619. data/doc/TaskJuggler/XMLText.html +0 -697
  620. data/doc/index.html +0 -4127
  621. data/doc/lib/AccountScenario_rb.html +0 -69
  622. data/doc/lib/Account_rb.html +0 -71
  623. data/doc/lib/Allocation_rb.html +0 -71
  624. data/doc/lib/AppConfig_rb.html +0 -71
  625. data/doc/lib/AttributeBase_rb.html +0 -69
  626. data/doc/lib/AttributeDefinition_rb.html +0 -67
  627. data/doc/lib/Attributes_rb.html +0 -83
  628. data/doc/lib/BatchProcessor_rb.html +0 -71
  629. data/doc/lib/Booking_rb.html +0 -67
  630. data/doc/lib/ChargeSet_rb.html +0 -69
  631. data/doc/lib/Charge_rb.html +0 -69
  632. data/doc/lib/DataCache_rb.html +0 -71
  633. data/doc/lib/FileList_rb.html +0 -67
  634. data/doc/lib/HTMLDocument_rb.html +0 -69
  635. data/doc/lib/IntervalList_rb.html +0 -69
  636. data/doc/lib/Interval_rb.html +0 -69
  637. data/doc/lib/Journal_rb.html +0 -67
  638. data/doc/lib/KeywordArray_rb.html +0 -67
  639. data/doc/lib/KeywordDocumentation_rb.html +0 -77
  640. data/doc/lib/Limits_rb.html +0 -69
  641. data/doc/lib/LogFile_rb.html +0 -69
  642. data/doc/lib/Log_rb.html +0 -71
  643. data/doc/lib/LogicalExpression_rb.html +0 -73
  644. data/doc/lib/LogicalFunction_rb.html +0 -69
  645. data/doc/lib/LogicalOperation_rb.html +0 -69
  646. data/doc/lib/MacroTable_rb.html +0 -73
  647. data/doc/lib/MessageHandler_rb.html +0 -67
  648. data/doc/lib/ProjectFileParser_rb.html +0 -77
  649. data/doc/lib/ProjectFileScanner_rb.html +0 -69
  650. data/doc/lib/Project_rb.html +0 -113
  651. data/doc/lib/PropertyList_rb.html +0 -67
  652. data/doc/lib/PropertySet_rb.html +0 -71
  653. data/doc/lib/PropertyTreeNode_rb.html +0 -67
  654. data/doc/lib/Query_rb.html +0 -69
  655. data/doc/lib/RTFHandlers_rb.html +0 -75
  656. data/doc/lib/RTFNavigator_rb.html +0 -73
  657. data/doc/lib/RTFQuery_rb.html +0 -73
  658. data/doc/lib/RTFReportLink_rb.html +0 -75
  659. data/doc/lib/RTFReport_rb.html +0 -71
  660. data/doc/lib/RTFWithQuerySupport_rb.html +0 -69
  661. data/doc/lib/RealFormat_rb.html +0 -67
  662. data/doc/lib/ResourceScenario_rb.html +0 -69
  663. data/doc/lib/Resource_rb.html +0 -71
  664. data/doc/lib/RichTextDocument_rb.html +0 -73
  665. data/doc/lib/RichTextElement_rb.html +0 -75
  666. data/doc/lib/RichTextFunctionExample_rb.html +0 -73
  667. data/doc/lib/RichTextFunctionHandler_rb.html +0 -67
  668. data/doc/lib/RichTextParser_rb.html +0 -73
  669. data/doc/lib/RichTextScanner_rb.html +0 -71
  670. data/doc/lib/RichTextSnip_rb.html +0 -71
  671. data/doc/lib/RichTextSyntaxRules_rb.html +0 -67
  672. data/doc/lib/RichText_rb.html +0 -73
  673. data/doc/lib/RuntimeConfig_rb.html +0 -69
  674. data/doc/lib/ScenarioData_rb.html +0 -71
  675. data/doc/lib/Scenario_rb.html +0 -69
  676. data/doc/lib/Scoreboard_rb.html +0 -69
  677. data/doc/lib/SheetHandlerBase_rb.html +0 -75
  678. data/doc/lib/SheetReceiver_rb.html +0 -79
  679. data/doc/lib/SheetSender_rb.html +0 -77
  680. data/doc/lib/ShiftAssignments_rb.html +0 -71
  681. data/doc/lib/ShiftScenario_rb.html +0 -69
  682. data/doc/lib/Shift_rb.html +0 -71
  683. data/doc/lib/SimpleQueryExpander_rb.html +0 -69
  684. data/doc/lib/SourceFileInfo_rb.html +0 -67
  685. data/doc/lib/StatusSheetReceiver_rb.html +0 -69
  686. data/doc/lib/StatusSheetSender_rb.html +0 -69
  687. data/doc/lib/SyntaxReference_rb.html +0 -75
  688. data/doc/lib/TOCEntry_rb.html +0 -71
  689. data/doc/lib/TableColumnDefinition_rb.html +0 -67
  690. data/doc/lib/TableOfContents_rb.html +0 -71
  691. data/doc/lib/TaskDependency_rb.html +0 -67
  692. data/doc/lib/TaskJuggler_rb.html +0 -75
  693. data/doc/lib/TaskScenario_rb.html +0 -71
  694. data/doc/lib/Task_rb.html +0 -71
  695. data/doc/lib/TextFormatter_rb.html +0 -69
  696. data/doc/lib/TextParser/Pattern_rb.html +0 -71
  697. data/doc/lib/TextParser/Rule_rb.html +0 -69
  698. data/doc/lib/TextParser/StackElement_rb.html +0 -69
  699. data/doc/lib/TextParser/State_rb.html +0 -67
  700. data/doc/lib/TextParser/TokenDoc_rb.html +0 -67
  701. data/doc/lib/TextParser_rb.html +0 -79
  702. data/doc/lib/TextScanner_rb.html +0 -83
  703. data/doc/lib/TimeSheetReceiver_rb.html +0 -69
  704. data/doc/lib/TimeSheetSender_rb.html +0 -69
  705. data/doc/lib/TimeSheetSummary_rb.html +0 -69
  706. data/doc/lib/TimeSheets_rb.html +0 -67
  707. data/doc/lib/Tj3AppBase_rb.html +0 -79
  708. data/doc/lib/Tj3Config_rb.html +0 -71
  709. data/doc/lib/Tj3SheetAppBase_rb.html +0 -69
  710. data/doc/lib/TjException_rb.html +0 -67
  711. data/doc/lib/TjTime_rb.html +0 -71
  712. data/doc/lib/TjpExample_rb.html +0 -69
  713. data/doc/lib/TjpSyntaxRules_rb.html +0 -67
  714. data/doc/lib/URLParameter_rb.html +0 -69
  715. data/doc/lib/UTF8String_rb.html +0 -67
  716. data/doc/lib/UserManual_rb.html +0 -79
  717. data/doc/lib/VimSyntax_rb.html +0 -69
  718. data/doc/lib/WorkingHours_rb.html +0 -71
  719. data/doc/lib/XMLDocument_rb.html +0 -69
  720. data/doc/lib/XMLElement_rb.html +0 -69
  721. data/doc/lib/daemon/Daemon_rb.html +0 -69
  722. data/doc/lib/daemon/ProcessIntercom_rb.html +0 -71
  723. data/doc/lib/daemon/ProjectBroker_rb.html +0 -83
  724. data/doc/lib/daemon/ProjectServer_rb.html +0 -85
  725. data/doc/lib/daemon/ReportServer_rb.html +0 -73
  726. data/doc/lib/daemon/ReportServlet_rb.html +0 -69
  727. data/doc/lib/daemon/WebServer_rb.html +0 -81
  728. data/doc/lib/daemon/WelcomePage_rb.html +0 -71
  729. data/doc/lib/deep_copy_rb.html +0 -67
  730. data/doc/lib/exchangebug_rb.html +0 -69
  731. data/doc/lib/reports/CSVFile_rb.html +0 -69
  732. data/doc/lib/reports/CollisionDetector_rb.html +0 -69
  733. data/doc/lib/reports/ColumnTable_rb.html +0 -69
  734. data/doc/lib/reports/GanttChart_rb.html +0 -75
  735. data/doc/lib/reports/GanttContainer_rb.html +0 -69
  736. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +0 -67
  737. data/doc/lib/reports/GanttHeader_rb.html +0 -69
  738. data/doc/lib/reports/GanttLine_rb.html +0 -79
  739. data/doc/lib/reports/GanttLoadStack_rb.html +0 -69
  740. data/doc/lib/reports/GanttMilestone_rb.html +0 -69
  741. data/doc/lib/reports/GanttRouter_rb.html +0 -69
  742. data/doc/lib/reports/GanttTaskBar_rb.html +0 -69
  743. data/doc/lib/reports/HTMLGraphics_rb.html +0 -67
  744. data/doc/lib/reports/Navigator_rb.html +0 -69
  745. data/doc/lib/reports/NikuReport_rb.html +0 -71
  746. data/doc/lib/reports/ReportBase_rb.html +0 -67
  747. data/doc/lib/reports/ReportContext_rb.html +0 -67
  748. data/doc/lib/reports/ReportTableCell_rb.html +0 -67
  749. data/doc/lib/reports/ReportTableColumn_rb.html +0 -67
  750. data/doc/lib/reports/ReportTableLegend_rb.html +0 -67
  751. data/doc/lib/reports/ReportTableLine_rb.html +0 -69
  752. data/doc/lib/reports/ReportTable_rb.html +0 -71
  753. data/doc/lib/reports/Report_rb.html +0 -93
  754. data/doc/lib/reports/ResourceListRE_rb.html +0 -75
  755. data/doc/lib/reports/StatusSheetReport_rb.html +0 -69
  756. data/doc/lib/reports/TableReport_rb.html +0 -77
  757. data/doc/lib/reports/TaskListRE_rb.html +0 -75
  758. data/doc/lib/reports/TextReport_rb.html +0 -69
  759. data/doc/lib/reports/TimeSheetReport_rb.html +0 -69
  760. data/doc/lib/reports/TjpExportRE_rb.html +0 -69
  761. data/doc/lib/ruby-signal-bug_rb.html +0 -69
  762. data/doc/lib/test_rb.html +0 -73
  763. data/doc/lib/tj3_rb.html +0 -75
  764. data/doc/lib/tj3client_rb.html +0 -75
  765. data/doc/lib/tj3d_rb.html +0 -75
  766. data/doc/lib/tj3man_rb.html +0 -75
  767. data/doc/lib/tj3ss_receiver_rb.html +0 -71
  768. data/doc/lib/tj3ss_sender_rb.html +0 -71
  769. data/doc/lib/tj3ts_receiver_rb.html +0 -71
  770. data/doc/lib/tj3ts_sender_rb.html +0 -71
  771. data/doc/lib/tj3ts_summary_rb.html +0 -71
  772. data/doc/rdoc.css +0 -706
  773. data/lib/test.rb +0 -19
  774. data/setup.rb +0 -1585
  775. data/test/TestSuite/CSV-Reports/genrefs +0 -6
  776. data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -2922
  777. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  778. data/test/TestSuite/Scheduler/Correct/Container.html +0 -513
  779. data/test/TestSuite/Scheduler/Correct/Precedes.html +0 -834
  780. data/test/TestSuite/Scheduler/Correct/Shift.html +0 -429
  781. data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
  782. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  783. data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +0 -8
  784. data/test/TestSuite/Syntax/Correct/ReleasePlan.html +0 -160
  785. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
  786. data/test/TestSuite/Syntax/Correct/ResourceRoot.html +0 -108
  787. data/test/TestSuite/Syntax/Correct/niku.html +0 -67
@@ -1,1717 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
-
8
- <title>Class: TaskJuggler::TextParser::Pattern</title>
9
-
10
- <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
11
-
12
- <script src="../../js/jquery.js" type="text/javascript"
13
- charset="utf-8"></script>
14
- <script src="../../js/thickbox-compressed.js" type="text/javascript"
15
- charset="utf-8"></script>
16
- <script src="../../js/quicksearch.js" type="text/javascript"
17
- charset="utf-8"></script>
18
- <script src="../../js/darkfish.js" type="text/javascript"
19
- charset="utf-8"></script>
20
-
21
- </head>
22
- <body class="class">
23
-
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="../../index.html">Home</a>
29
- <a href="../../index.html#classes">Classes</a>
30
- <a href="../../index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="file-metadata">
36
- <div id="file-list-section" class="section">
37
- <h3 class="section-header">In Files</h3>
38
- <div class="section-body">
39
- <ul>
40
-
41
- <li><a href="../../lib/TextParser/Pattern_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
- class="thickbox" title="lib/TextParser/Pattern.rb">lib/TextParser/Pattern.rb</a></li>
43
-
44
- </ul>
45
- </div>
46
- </div>
47
-
48
-
49
- </div>
50
-
51
- <div id="class-metadata">
52
-
53
- <!-- Parent Class -->
54
-
55
- <div id="parent-class-section" class="section">
56
- <h3 class="section-header">Parent</h3>
57
-
58
- <p class="link"><a href="../../Object.html">Object</a></p>
59
-
60
- </div>
61
-
62
-
63
- <!-- Namespace Contents -->
64
-
65
-
66
- <!-- Method Quickref -->
67
-
68
- <div id="method-list-section" class="section">
69
- <h3 class="section-header">Methods</h3>
70
- <ul class="link-list">
71
-
72
- <li><a href="#method-c-new">::new</a></li>
73
-
74
- <li><a href="#method-i-%5B%5D">#[]</a></li>
75
-
76
- <li><a href="#method-i-addArgDoc">#addArgDoc</a></li>
77
-
78
- <li><a href="#method-i-addTransitionsToState">#addTransitionsToState</a></li>
79
-
80
- <li><a href="#method-i-each">#each</a></li>
81
-
82
- <li><a href="#method-i-empty%3F">#empty?</a></li>
83
-
84
- <li><a href="#method-i-generateStates">#generateStates</a></li>
85
-
86
- <li><a href="#method-i-length">#length</a></li>
87
-
88
- <li><a href="#method-i-optional%3F">#optional?</a></li>
89
-
90
- <li><a href="#method-i-setArg">#setArg</a></li>
91
-
92
- <li><a href="#method-i-setDoc">#setDoc</a></li>
93
-
94
- <li><a href="#method-i-setExample">#setExample</a></li>
95
-
96
- <li><a href="#method-i-setLastSyntaxToken">#setLastSyntaxToken</a></li>
97
-
98
- <li><a href="#method-i-setSeeAlso">#setSeeAlso</a></li>
99
-
100
- <li><a href="#method-i-terminalSymbol%3F">#terminalSymbol?</a></li>
101
-
102
- <li><a href="#method-i-terminalTokens">#terminalTokens</a></li>
103
-
104
- <li><a href="#method-i-to_s">#to_s</a></li>
105
-
106
- <li><a href="#method-i-to_syntax">#to_syntax</a></li>
107
-
108
- <li><a href="#method-i-to_syntax_r">#to_syntax_r</a></li>
109
-
110
- </ul>
111
- </div>
112
-
113
-
114
- <!-- Included Modules -->
115
-
116
- </div>
117
-
118
- <div id="project-metadata">
119
-
120
-
121
- <div id="fileindex-section" class="section project-section">
122
- <h3 class="section-header">Files</h3>
123
- <ul>
124
-
125
- <li class="file"><a href="../../CHANGELOG.html">CHANGELOG</a></li>
126
-
127
- <li class="file"><a href="../../COPYING.html">COPYING</a></li>
128
-
129
- <li class="file"><a href="../../README.html">README</a></li>
130
-
131
- </ul>
132
- </div>
133
-
134
-
135
- <div id="classindex-section" class="section project-section">
136
- <h3 class="section-header">Class Index
137
- <span class="search-toggle"><img src="../../images/find.png"
138
- height="16" width="16" alt="[+]"
139
- title="show/hide quicksearch" /></span></h3>
140
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
141
- <fieldset>
142
- <legend>Quicksearch</legend>
143
- <input type="text" name="quicksearch" value=""
144
- class="quicksearch-field" />
145
- </fieldset>
146
- </form>
147
-
148
- <ul class="link-list">
149
-
150
- <li><a href="../../TaskJuggler.html">TaskJuggler</a></li>
151
-
152
- <li><a href="../../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
153
-
154
- <li><a href="../../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
155
-
156
- <li><a href="../../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
157
-
158
- <li><a href="../../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
159
-
160
- <li><a href="../../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
161
-
162
- <li><a href="../../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
163
-
164
- <li><a href="../../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
165
-
166
- <li><a href="../../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
167
-
168
- <li><a href="../../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
169
-
170
- <li><a href="../../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
171
-
172
- <li><a href="../../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
173
-
174
- <li><a href="../../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
175
-
176
- <li><a href="../../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
177
-
178
- <li><a href="../../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
179
-
180
- <li><a href="../../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
181
-
182
- <li><a href="../../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
183
-
184
- <li><a href="../../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
185
-
186
- <li><a href="../../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
187
-
188
- <li><a href="../../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
189
-
190
- <li><a href="../../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
191
-
192
- <li><a href="../../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
193
-
194
- <li><a href="../../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
195
-
196
- <li><a href="../../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
197
-
198
- <li><a href="../../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
199
-
200
- <li><a href="../../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
201
-
202
- <li><a href="../../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
203
-
204
- <li><a href="../../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
205
-
206
- <li><a href="../../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
207
-
208
- <li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
209
-
210
- <li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
211
-
212
- <li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
213
-
214
- <li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
215
-
216
- <li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
217
-
218
- <li><a href="../../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
219
-
220
- <li><a href="../../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
221
-
222
- <li><a href="../../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
223
-
224
- <li><a href="../../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
225
-
226
- <li><a href="../../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
227
-
228
- <li><a href="../../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
229
-
230
- <li><a href="../../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
231
-
232
- <li><a href="../../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
233
-
234
- <li><a href="../../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
235
-
236
- <li><a href="../../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
237
-
238
- <li><a href="../../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
239
-
240
- <li><a href="../../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
241
-
242
- <li><a href="../../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
243
-
244
- <li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
245
-
246
- <li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
247
-
248
- <li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
249
-
250
- <li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
251
-
252
- <li><a href="../../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
253
-
254
- <li><a href="../../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
255
-
256
- <li><a href="../../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
257
-
258
- <li><a href="../../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
259
-
260
- <li><a href="../../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
261
-
262
- <li><a href="../../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
263
-
264
- <li><a href="../../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
265
-
266
- <li><a href="../../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
267
-
268
- <li><a href="../../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
269
-
270
- <li><a href="../../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
271
-
272
- <li><a href="../../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
273
-
274
- <li><a href="../../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
275
-
276
- <li><a href="../../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
277
-
278
- <li><a href="../../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
279
-
280
- <li><a href="../../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
281
-
282
- <li><a href="../../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
283
-
284
- <li><a href="../../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
285
-
286
- <li><a href="../../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
287
-
288
- <li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
289
-
290
- <li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
291
-
292
- <li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
293
-
294
- <li><a href="../../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
295
-
296
- <li><a href="../../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
297
-
298
- <li><a href="../../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
299
-
300
- <li><a href="../../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
301
-
302
- <li><a href="../../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
303
-
304
- <li><a href="../../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
305
-
306
- <li><a href="../../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
307
-
308
- <li><a href="../../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
309
-
310
- <li><a href="../../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
311
-
312
- <li><a href="../../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
313
-
314
- <li><a href="../../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
315
-
316
- <li><a href="../../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
317
-
318
- <li><a href="../../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
319
-
320
- <li><a href="../../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
321
-
322
- <li><a href="../../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
323
-
324
- <li><a href="../../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
325
-
326
- <li><a href="../../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
327
-
328
- <li><a href="../../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
329
-
330
- <li><a href="../../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
331
-
332
- <li><a href="../../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
333
-
334
- <li><a href="../../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
335
-
336
- <li><a href="../../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
337
-
338
- <li><a href="../../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
339
-
340
- <li><a href="../../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
341
-
342
- <li><a href="../../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
343
-
344
- <li><a href="../../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
345
-
346
- <li><a href="../../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
347
-
348
- <li><a href="../../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
349
-
350
- <li><a href="../../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
351
-
352
- <li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
353
-
354
- <li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
355
-
356
- <li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
357
-
358
- <li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
359
-
360
- <li><a href="../../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
361
-
362
- <li><a href="../../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
363
-
364
- <li><a href="../../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
365
-
366
- <li><a href="../../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
367
-
368
- <li><a href="../../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
369
-
370
- <li><a href="../../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
371
-
372
- <li><a href="../../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
373
-
374
- <li><a href="../../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
375
-
376
- <li><a href="../../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
377
-
378
- <li><a href="../../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
379
-
380
- <li><a href="../../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
381
-
382
- <li><a href="../../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
383
-
384
- <li><a href="../../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
385
-
386
- <li><a href="../../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
387
-
388
- <li><a href="../../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
389
-
390
- <li><a href="../../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
391
-
392
- <li><a href="../../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
393
-
394
- <li><a href="../../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
395
-
396
- <li><a href="../../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
397
-
398
- <li><a href="../../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
399
-
400
- <li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
401
-
402
- <li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
403
-
404
- <li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
405
-
406
- <li><a href="../../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
407
-
408
- <li><a href="../../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
409
-
410
- <li><a href="../../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
411
-
412
- <li><a href="../../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
413
-
414
- <li><a href="../../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
415
-
416
- <li><a href="../../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
417
-
418
- <li><a href="../../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
419
-
420
- <li><a href="../../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
421
-
422
- <li><a href="../../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
423
-
424
- <li><a href="../../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
425
-
426
- <li><a href="../../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
427
-
428
- <li><a href="../../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
429
-
430
- <li><a href="../../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
431
-
432
- <li><a href="../../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
433
-
434
- <li><a href="../../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
435
-
436
- <li><a href="../../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
437
-
438
- <li><a href="../../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
439
-
440
- <li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
441
-
442
- <li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
443
-
444
- <li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
445
-
446
- <li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
447
-
448
- <li><a href="../../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
449
-
450
- <li><a href="../../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
451
-
452
- <li><a href="../../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
453
-
454
- <li><a href="../../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
455
-
456
- <li><a href="../../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
457
-
458
- <li><a href="../../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
459
-
460
- <li><a href="../../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
461
-
462
- <li><a href="../../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
463
-
464
- <li><a href="../../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
465
-
466
- <li><a href="../../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
467
-
468
- <li><a href="../../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
469
-
470
- <li><a href="../../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
471
-
472
- <li><a href="../../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
473
-
474
- <li><a href="../../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
475
-
476
- <li><a href="../../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
477
-
478
- <li><a href="../../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
479
-
480
- <li><a href="../../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
481
-
482
- <li><a href="../../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
483
-
484
- <li><a href="../../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
485
-
486
- <li><a href="../../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
487
-
488
- <li><a href="../../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
489
-
490
- <li><a href="../../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
491
-
492
- <li><a href="../../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
493
-
494
- <li><a href="../../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
495
-
496
- <li><a href="../../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
497
-
498
- <li><a href="../../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
499
-
500
- <li><a href="../../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
501
-
502
- <li><a href="../../TaskJuggler/TextScanner.html">TaskJuggler::TextScanner</a></li>
503
-
504
- <li><a href="../../TaskJuggler/TextScanner/BufferStreamHandle.html">TaskJuggler::TextScanner::BufferStreamHandle</a></li>
505
-
506
- <li><a href="../../TaskJuggler/TextScanner/FileStreamHandle.html">TaskJuggler::TextScanner::FileStreamHandle</a></li>
507
-
508
- <li><a href="../../TaskJuggler/TextScanner/MacroStackEntry.html">TaskJuggler::TextScanner::MacroStackEntry</a></li>
509
-
510
- <li><a href="../../TaskJuggler/TextScanner/StreamHandle.html">TaskJuggler::TextScanner::StreamHandle</a></li>
511
-
512
- <li><a href="../../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
513
-
514
- <li><a href="../../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
515
-
516
- <li><a href="../../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
517
-
518
- <li><a href="../../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
519
-
520
- <li><a href="../../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
521
-
522
- <li><a href="../../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
523
-
524
- <li><a href="../../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
525
-
526
- <li><a href="../../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
527
-
528
- <li><a href="../../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
529
-
530
- <li><a href="../../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
531
-
532
- <li><a href="../../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
533
-
534
- <li><a href="../../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
535
-
536
- <li><a href="../../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
537
-
538
- <li><a href="../../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
539
-
540
- <li><a href="../../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
541
-
542
- <li><a href="../../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
543
-
544
- <li><a href="../../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
545
-
546
- <li><a href="../../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
547
-
548
- <li><a href="../../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
549
-
550
- <li><a href="../../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
551
-
552
- <li><a href="../../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
553
-
554
- <li><a href="../../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
555
-
556
- <li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
557
-
558
- <li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
559
-
560
- <li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
561
-
562
- <li><a href="../../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
563
-
564
- <li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
565
-
566
- <li><a href="../../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
567
-
568
- <li><a href="../../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
569
-
570
- <li><a href="../../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
571
-
572
- <li><a href="../../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
573
-
574
- <li><a href="../../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
575
-
576
- <li><a href="../../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
577
-
578
- <li><a href="../../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
579
-
580
- <li><a href="../../AppConfig.html">AppConfig</a></li>
581
-
582
- <li><a href="../../Arguments.html">Arguments</a></li>
583
-
584
- <li><a href="../../Object.html">Object</a></li>
585
-
586
- <li><a href="../../RuntimeConfig.html">RuntimeConfig</a></li>
587
-
588
- <li><a href="../../String.html">String</a></li>
589
-
590
- </ul>
591
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
592
- </div>
593
-
594
-
595
- </div>
596
- </div>
597
-
598
- <div id="documentation">
599
- <h1 class="class">TaskJuggler::TextParser::Pattern</h1>
600
-
601
- <div id="description">
602
- <p>
603
- This class models the most crutial elements of a syntax description - the
604
- pattern. A TextParserPattern primarily consists of a set of tokens. Tokens
605
- are Strings where the first character determines the type of the token.
606
- There are 4 known types.
607
- </p>
608
- <p>
609
- Terminal token: In the syntax declaration the terminal token is prefixed by
610
- an underscore. Terminal tokens are terminal symbols of the syntax tree.
611
- They just represent themselves.
612
- </p>
613
- <p>
614
- Variable token: The variable token describes values of a certain class such
615
- as strings or numbers. In the syntax declaration the token is prefixed by a
616
- dollar sign and the text of the token specifies the variable type. See <a
617
- href="../ProjectFileParser.html">ProjectFileParser</a> for a complete list
618
- of variable types.
619
- </p>
620
- <p>
621
- Reference token: The reference token specifies a reference to another
622
- parser rule. In the syntax declaration the token is prefixed by a bang and
623
- the text matches the name of the rule. See TextParserRule for details.
624
- </p>
625
- <p>
626
- End token: The . token marks the expected end of the input stream.
627
- </p>
628
- <p>
629
- In addition to the pure syntax tree information the pattern also holds
630
- documentary information about the pattern.
631
- </p>
632
-
633
- </div>
634
-
635
- <!-- Constants -->
636
-
637
-
638
- <!-- Attributes -->
639
-
640
- <div id="attribute-method-details" class="method-section section">
641
- <h3 class="section-header">Attributes</h3>
642
-
643
-
644
- <div id="keyword-attribute-method" class="method-detail">
645
- <a name="keyword"></a>
646
-
647
- <div class="method-heading attribute-method-heading">
648
- <span class="method-name">keyword</span><span
649
- class="attribute-access-type">[R]</span>
650
- </div>
651
-
652
- <div class="method-description">
653
-
654
-
655
-
656
- </div>
657
- </div>
658
-
659
- <div id="doc-attribute-method" class="method-detail">
660
- <a name="doc"></a>
661
-
662
- <div class="method-heading attribute-method-heading">
663
- <span class="method-name">doc</span><span
664
- class="attribute-access-type">[R]</span>
665
- </div>
666
-
667
- <div class="method-description">
668
-
669
-
670
-
671
- </div>
672
- </div>
673
-
674
- <div id="see-lso-attribute-method" class="method-detail">
675
- <a name="seeAlso"></a>
676
-
677
- <div class="method-heading attribute-method-heading">
678
- <span class="method-name">seeAlso</span><span
679
- class="attribute-access-type">[R]</span>
680
- </div>
681
-
682
- <div class="method-description">
683
-
684
-
685
-
686
- </div>
687
- </div>
688
-
689
- <div id="example-ile-attribute-method" class="method-detail">
690
- <a name="exampleFile"></a>
691
-
692
- <div class="method-heading attribute-method-heading">
693
- <span class="method-name">exampleFile</span><span
694
- class="attribute-access-type">[R]</span>
695
- </div>
696
-
697
- <div class="method-description">
698
-
699
-
700
-
701
- </div>
702
- </div>
703
-
704
- <div id="example-ag-attribute-method" class="method-detail">
705
- <a name="exampleTag"></a>
706
-
707
- <div class="method-heading attribute-method-heading">
708
- <span class="method-name">exampleTag</span><span
709
- class="attribute-access-type">[R]</span>
710
- </div>
711
-
712
- <div class="method-description">
713
-
714
-
715
-
716
- </div>
717
- </div>
718
-
719
- <div id="tokens-attribute-method" class="method-detail">
720
- <a name="tokens"></a>
721
-
722
- <div class="method-heading attribute-method-heading">
723
- <span class="method-name">tokens</span><span
724
- class="attribute-access-type">[R]</span>
725
- </div>
726
-
727
- <div class="method-description">
728
-
729
-
730
-
731
- </div>
732
- </div>
733
-
734
- <div id="function-attribute-method" class="method-detail">
735
- <a name="function"></a>
736
-
737
- <div class="method-heading attribute-method-heading">
738
- <span class="method-name">function</span><span
739
- class="attribute-access-type">[R]</span>
740
- </div>
741
-
742
- <div class="method-description">
743
-
744
-
745
-
746
- </div>
747
- </div>
748
-
749
- </div>
750
-
751
-
752
- <!-- Methods -->
753
-
754
- <div id="public-class-method-details" class="method-section section">
755
- <h3 class="section-header">Public Class Methods</h3>
756
-
757
-
758
- <div id="new-method" class="method-detail ">
759
- <a name="method-c-new"></a>
760
-
761
- <div class="method-heading">
762
-
763
- <span class="method-name">new</span><span
764
- class="method-args">(tokens, function = nil)</span>
765
- <span class="method-click-advice">click to toggle source</span>
766
-
767
- </div>
768
-
769
- <div class="method-description">
770
-
771
-
772
-
773
-
774
-
775
- <div class="method-source-code"
776
- id="new-source">
777
- <pre>
778
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 46</span>
779
- 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">tokens</span>, <span class="ruby-identifier">function</span> = <span class="ruby-keyword kw">nil</span>)
780
- 47: <span class="ruby-comment cmt"># A unique name for the pattern that is used in the documentation.</span>
781
- 48: <span class="ruby-ivar">@keyword</span> = <span class="ruby-keyword kw">nil</span>
782
- 49: <span class="ruby-comment cmt"># Initialize pattern doc as empty.</span>
783
- 50: <span class="ruby-ivar">@doc</span> = <span class="ruby-keyword kw">nil</span>
784
- 51: <span class="ruby-comment cmt"># A list of TokenDoc elements that describe the meaning of variable</span>
785
- 52: <span class="ruby-comment cmt"># tokens. The order of the tokens and entries in the Array must correlate.</span>
786
- 53: <span class="ruby-ivar">@args</span> = []
787
- 54: <span class="ruby-comment cmt"># A list of references to other patterns that are related to this pattern.</span>
788
- 55: <span class="ruby-ivar">@seeAlso</span> = []
789
- 56: <span class="ruby-comment cmt"># A reference to a file under test/TestSuite/Syntax/Correct and a tag</span>
790
- 57: <span class="ruby-comment cmt"># within that file. This identifies example TJP code to be included with</span>
791
- 58: <span class="ruby-comment cmt"># the reference manual.</span>
792
- 59: <span class="ruby-ivar">@exampleFile</span> = <span class="ruby-keyword kw">nil</span>
793
- 60: <span class="ruby-ivar">@exampleTag</span> = <span class="ruby-keyword kw">nil</span>
794
- 61:
795
- 62: <span class="ruby-ivar">@tokens</span> = []
796
- 63: <span class="ruby-identifier">tokens</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">token</span><span class="ruby-operator">|</span>
797
- 64: <span class="ruby-keyword kw">unless</span> <span class="ruby-value str">'!$_.'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">token</span>[<span class="ruby-value">0</span>])
798
- 65: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: All pattern tokens must start with a type &quot;</span> <span class="ruby-operator">+</span>
799
- 66: <span class="ruby-node">&quot;identifier [!$_.]: #{tokens.join(', ')}&quot;</span>
800
- 67: <span class="ruby-keyword kw">end</span>
801
- 68: <span class="ruby-comment cmt"># For the syntax specification using a prefix character is more</span>
802
- 69: <span class="ruby-comment cmt"># convenient. But for further processing, we need to split the string</span>
803
- 70: <span class="ruby-comment cmt"># into two symbols. The prefix determines the token type, the rest is</span>
804
- 71: <span class="ruby-comment cmt"># the token name. There are 4 types of tokens:</span>
805
- 72: <span class="ruby-comment cmt"># :reference : a reference to another rule</span>
806
- 73: <span class="ruby-comment cmt"># :variable : a terminal symbol</span>
807
- 74: <span class="ruby-comment cmt"># :literal : a user defined string</span>
808
- 75: <span class="ruby-comment cmt"># :eof : marks the end of an input stream</span>
809
- 76: <span class="ruby-identifier">type</span> = [ <span class="ruby-value">:reference</span>, <span class="ruby-value">:variable</span>, <span class="ruby-value">:literal</span>, <span class="ruby-value">:eof</span> ][<span class="ruby-value str">'!$_.'</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">token</span>[<span class="ruby-value">0</span>])]
810
- 77: <span class="ruby-comment cmt"># For literals we use a String to store the token content. For others,</span>
811
- 78: <span class="ruby-comment cmt"># a symbol is better suited.</span>
812
- 79: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:literal</span> <span class="ruby-operator">?</span>
813
- 80: <span class="ruby-identifier">token</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] <span class="ruby-operator">:</span> (<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:eof</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'&lt;END&gt;'</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">token</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>].<span class="ruby-identifier">intern</span>)
814
- 81: <span class="ruby-comment cmt"># We favor an Array to store the 2 elements over a Hash for</span>
815
- 82: <span class="ruby-comment cmt"># performance reasons.</span>
816
- 83: <span class="ruby-ivar">@tokens</span> <span class="ruby-operator">&lt;&lt;</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span> ]
817
- 84: <span class="ruby-comment cmt"># Initialize pattern argument descriptions as empty.</span>
818
- 85: <span class="ruby-ivar">@args</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">nil</span>
819
- 86: <span class="ruby-keyword kw">end</span>
820
- 87: <span class="ruby-ivar">@function</span> = <span class="ruby-identifier">function</span>
821
- 88: <span class="ruby-comment cmt"># In some cases we don't want to show all tokens in the syntax</span>
822
- 89: <span class="ruby-comment cmt"># documentation. This value specifies the index of the last shown token.</span>
823
- 90: <span class="ruby-ivar">@lastSyntaxToken</span> = <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
824
- 91:
825
- 92: <span class="ruby-ivar">@transitions</span> = []
826
- 93: <span class="ruby-keyword kw">end</span></pre>
827
- </div>
828
-
829
- </div>
830
-
831
-
832
-
833
-
834
- </div>
835
-
836
-
837
- </div>
838
-
839
- <div id="public-instance-method-details" class="method-section section">
840
- <h3 class="section-header">Public Instance Methods</h3>
841
-
842
-
843
- <div id="--method" class="method-detail ">
844
- <a name="method-i-%5B%5D"></a>
845
-
846
- <div class="method-heading">
847
-
848
- <span class="method-name">[]</span><span
849
- class="method-args">(i)</span>
850
- <span class="method-click-advice">click to toggle source</span>
851
-
852
- </div>
853
-
854
- <div class="method-description">
855
-
856
- <p>
857
- Conveniance function to access individual tokens by index.
858
- </p>
859
-
860
-
861
-
862
- <div class="method-source-code"
863
- id="--source">
864
- <pre>
865
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 211</span>
866
- 211: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">i</span>)
867
- 212: <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>]
868
- 213: <span class="ruby-keyword kw">end</span></pre>
869
- </div>
870
-
871
- </div>
872
-
873
-
874
-
875
-
876
- </div>
877
-
878
-
879
- <div id="add-ransitions-o-tate-method" class="method-detail ">
880
- <a name="method-i-addTransitionsToState"></a>
881
-
882
- <div class="method-heading">
883
-
884
- <span class="method-name">addTransitionsToState</span><span
885
- class="method-args">(states, rules, stateStack, sourceState, destRule, destIndex, loopBack)</span>
886
- <span class="method-click-advice">click to toggle source</span>
887
-
888
- </div>
889
-
890
- <div class="method-description">
891
-
892
- <p>
893
- Add the transitions to the <a href="State.html">State</a> objects of this
894
- pattern. <em>states</em> is a Hash with all <a href="State.html">State</a>
895
- objects. <em>rules</em> is a Hash with the <a href="Rule.html">Rule</a>
896
- objects of the syntax. <em>stateStack</em> is an Array of <a
897
- href="State.html">State</a> objects that have been traversed before
898
- reaching this pattern. <em>sourceState</em> is the <a
899
- href="State.html">State</a> that the transition originates from.
900
- <em>destRule</em>, this pattern and <em>destIndex</em> describe the <a
901
- href="State.html">State</a> the transition is leading to. <em>loopBack</em>
902
- is boolean flag, set to true when the transition describes a loop back to
903
- the start of the <a href="Rule.html">Rule</a>.
904
- </p>
905
-
906
-
907
-
908
- <div class="method-source-code"
909
- id="add-ransitions-o-tate-source">
910
- <pre>
911
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 112</span>
912
- 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addTransitionsToState</span>(<span class="ruby-identifier">states</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">stateStack</span>, <span class="ruby-identifier">sourceState</span>,
913
- 113: <span class="ruby-identifier">destRule</span>, <span class="ruby-identifier">destIndex</span>, <span class="ruby-identifier">loopBack</span>)
914
- 114: <span class="ruby-comment cmt"># If we hit a token in the pattern that is optional, we need to consider</span>
915
- 115: <span class="ruby-comment cmt"># the next token of the pattern as well.</span>
916
- 116: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
917
- 117: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">destIndex</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">length</span>
918
- 118: <span class="ruby-comment cmt"># Have we reached the end of the pattern? Such state always trigger</span>
919
- 119: <span class="ruby-comment cmt"># a reduce operation.</span>
920
- 120: <span class="ruby-identifier">sourceState</span>.<span class="ruby-identifier">noReduce</span> = <span class="ruby-keyword kw">false</span>
921
- 121: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sourceState</span>.<span class="ruby-identifier">rule</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">destRule</span>
922
- 122: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">destRule</span>.<span class="ruby-identifier">repeatable</span>
923
- 123: <span class="ruby-comment cmt"># The transition leads us back to the start of the Rule. This</span>
924
- 124: <span class="ruby-comment cmt"># will generate transitions to the first token of all patterns</span>
925
- 125: <span class="ruby-comment cmt"># of this Rule.</span>
926
- 126: <span class="ruby-identifier">destRule</span>.<span class="ruby-identifier">addTransitionsToState</span>(<span class="ruby-identifier">states</span>, <span class="ruby-identifier">rules</span>, [], <span class="ruby-identifier">sourceState</span>,
927
- 127: <span class="ruby-keyword kw">true</span>)
928
- 128: <span class="ruby-keyword kw">end</span>
929
- 129: <span class="ruby-keyword kw">end</span>
930
- 130: <span class="ruby-comment cmt"># We've reached the end of the pattern. No more transitions to</span>
931
- 131: <span class="ruby-comment cmt"># consider.</span>
932
- 132: <span class="ruby-keyword kw">return</span>
933
- 133: <span class="ruby-keyword kw">end</span>
934
- 134:
935
- 135: <span class="ruby-comment cmt"># The token descriptor tells us where the transition(s) need to go to.</span>
936
- 136: <span class="ruby-identifier">tokenType</span>, <span class="ruby-identifier">tokenName</span> = <span class="ruby-identifier">token</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">destIndex</span>]
937
- 137:
938
- 138: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">tokenType</span>
939
- 139: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:reference</span>
940
- 140: <span class="ruby-comment cmt"># The descriptor references another rule.</span>
941
- 141: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">refRule</span> = <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">tokenName</span>])
942
- 142: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown rule #{tokenName} referenced in rule #{refRule.name}&quot;</span>
943
- 143: <span class="ruby-keyword kw">end</span>
944
- 144: <span class="ruby-comment cmt"># If we reference another rule from a pattern, we need to come back</span>
945
- 145: <span class="ruby-comment cmt"># to the pattern once we are done with the referenced rule. To be</span>
946
- 146: <span class="ruby-comment cmt"># able to come back, we collect a list of all the States that we</span>
947
- 147: <span class="ruby-comment cmt"># have passed during a reference resolution. This list forms a stack</span>
948
- 148: <span class="ruby-comment cmt"># that is popped during recude operations of the parser FSM.</span>
949
- 149: <span class="ruby-identifier">skippedState</span> = <span class="ruby-identifier">states</span>[[ <span class="ruby-identifier">destRule</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">destIndex</span> ]]
950
- 150: <span class="ruby-comment cmt"># Rules may reference themselves directly or indirectly. To avoid</span>
951
- 151: <span class="ruby-comment cmt"># endless recursions of this algorithm, we stop once we have</span>
952
- 152: <span class="ruby-comment cmt"># detected a recursion. We have already all necessary transitions</span>
953
- 153: <span class="ruby-comment cmt"># collected. The recursion will be unrolled in the parser FSM.</span>
954
- 154: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">stateStack</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">skippedState</span>)
955
- 155: <span class="ruby-comment cmt"># Push the skipped state on the stateStack before recursing.</span>
956
- 156: <span class="ruby-identifier">stateStack</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">skippedState</span>)
957
- 157: <span class="ruby-identifier">refRule</span>.<span class="ruby-identifier">addTransitionsToState</span>(<span class="ruby-identifier">states</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">stateStack</span>,
958
- 158: <span class="ruby-identifier">sourceState</span>, <span class="ruby-identifier">loopBack</span>)
959
- 159: <span class="ruby-comment cmt"># Once we're done, remove the State from the stateStack again.</span>
960
- 160: <span class="ruby-identifier">stateStack</span>.<span class="ruby-identifier">pop</span>
961
- 161: <span class="ruby-keyword kw">end</span>
962
- 162:
963
- 163: <span class="ruby-comment cmt"># If the referenced rule is not optional, we have no further</span>
964
- 164: <span class="ruby-comment cmt"># transitions for this pattern at this destIndex.</span>
965
- 165: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">refRule</span>.<span class="ruby-identifier">optional?</span>(<span class="ruby-identifier">rules</span>)
966
- 166: <span class="ruby-keyword kw">else</span>
967
- 167: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">destState</span> = <span class="ruby-identifier">states</span>[[ <span class="ruby-identifier">destRule</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">destIndex</span> ]])
968
- 168: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Destination state not found&quot;</span>
969
- 169: <span class="ruby-keyword kw">end</span>
970
- 170: <span class="ruby-comment cmt"># We've found a transition to a terminal token. Add the transition</span>
971
- 171: <span class="ruby-comment cmt"># to the source State.</span>
972
- 172: <span class="ruby-identifier">sourceState</span>.<span class="ruby-identifier">addTransition</span>(<span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">destIndex</span>], <span class="ruby-identifier">destState</span>, <span class="ruby-identifier">stateStack</span>,
973
- 173: <span class="ruby-identifier">loopBack</span>)
974
- 174: <span class="ruby-comment cmt"># Fixed tokens are never optional. There are no more transitions for</span>
975
- 175: <span class="ruby-comment cmt"># this pattern at this index.</span>
976
- 176: <span class="ruby-keyword kw">break</span>
977
- 177: <span class="ruby-keyword kw">end</span>
978
- 178:
979
- 179: <span class="ruby-identifier">destIndex</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
980
- 180: <span class="ruby-keyword kw">end</span>
981
- 181: <span class="ruby-keyword kw">end</span></pre>
982
- </div>
983
-
984
- </div>
985
-
986
-
987
-
988
-
989
- </div>
990
-
991
-
992
- <div id="each-method" class="method-detail ">
993
- <a name="method-i-each"></a>
994
-
995
- <div class="method-heading">
996
-
997
- <span class="method-name">each</span><span
998
- class="method-args">()</span>
999
- <span class="method-click-advice">click to toggle source</span>
1000
-
1001
- </div>
1002
-
1003
- <div class="method-description">
1004
-
1005
- <p>
1006
- Iterator for tokens.
1007
- </p>
1008
-
1009
-
1010
-
1011
- <div class="method-source-code"
1012
- id="each-source">
1013
- <pre>
1014
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 216</span>
1015
- 216: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
1016
- 217: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span>) }
1017
- 218: <span class="ruby-keyword kw">end</span></pre>
1018
- </div>
1019
-
1020
- </div>
1021
-
1022
-
1023
-
1024
-
1025
- </div>
1026
-
1027
-
1028
- <div id="empty--method" class="method-detail ">
1029
- <a name="method-i-empty%3F"></a>
1030
-
1031
- <div class="method-heading">
1032
-
1033
- <span class="method-name">empty?</span><span
1034
- class="method-args">()</span>
1035
- <span class="method-click-advice">click to toggle source</span>
1036
-
1037
- </div>
1038
-
1039
- <div class="method-description">
1040
-
1041
- <p>
1042
- Returns true of the pattern is empty.
1043
- </p>
1044
-
1045
-
1046
-
1047
- <div class="method-source-code"
1048
- id="empty--source">
1049
- <pre>
1050
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 221</span>
1051
- 221: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty?</span>
1052
- 222: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">empty?</span>
1053
- 223: <span class="ruby-keyword kw">end</span></pre>
1054
- </div>
1055
-
1056
- </div>
1057
-
1058
-
1059
-
1060
-
1061
- </div>
1062
-
1063
-
1064
- <div id="generate-tates-method" class="method-detail ">
1065
- <a name="method-i-generateStates"></a>
1066
-
1067
- <div class="method-heading">
1068
-
1069
- <span class="method-name">generateStates</span><span
1070
- class="method-args">(rule)</span>
1071
- <span class="method-click-advice">click to toggle source</span>
1072
-
1073
- </div>
1074
-
1075
- <div class="method-description">
1076
-
1077
- <p>
1078
- Generate the state machine states for the pattern. <em>rule</em> is the <a
1079
- href="Rule.html">Rule</a> that the pattern belongs to. A list of generated
1080
- <a href="State.html">State</a> objects will be returned.
1081
- </p>
1082
-
1083
-
1084
-
1085
- <div class="method-source-code"
1086
- id="generate-tates-source">
1087
- <pre>
1088
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 98</span>
1089
- 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateStates</span>(<span class="ruby-identifier">rule</span>)
1090
- 99: <span class="ruby-identifier">states</span> = []
1091
- 100: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">times</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">states</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">State</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rule</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">i</span>) }
1092
- 101: <span class="ruby-identifier">states</span>
1093
- 102: <span class="ruby-keyword kw">end</span></pre>
1094
- </div>
1095
-
1096
- </div>
1097
-
1098
-
1099
-
1100
-
1101
- </div>
1102
-
1103
-
1104
- <div id="length-method" class="method-detail ">
1105
- <a name="method-i-length"></a>
1106
-
1107
- <div class="method-heading">
1108
-
1109
- <span class="method-name">length</span><span
1110
- class="method-args">()</span>
1111
- <span class="method-click-advice">click to toggle source</span>
1112
-
1113
- </div>
1114
-
1115
- <div class="method-description">
1116
-
1117
- <p>
1118
- Returns the number of tokens in the pattern.
1119
- </p>
1120
-
1121
-
1122
-
1123
- <div class="method-source-code"
1124
- id="length-source">
1125
- <pre>
1126
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 226</span>
1127
- 226: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">length</span>
1128
- 227: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">length</span>
1129
- 228: <span class="ruby-keyword kw">end</span></pre>
1130
- </div>
1131
-
1132
- </div>
1133
-
1134
-
1135
-
1136
-
1137
- </div>
1138
-
1139
-
1140
- <div id="optional--method" class="method-detail ">
1141
- <a name="method-i-optional%3F"></a>
1142
-
1143
- <div class="method-heading">
1144
-
1145
- <span class="method-name">optional?</span><span
1146
- class="method-args">(rules)</span>
1147
- <span class="method-click-advice">click to toggle source</span>
1148
-
1149
- </div>
1150
-
1151
- <div class="method-description">
1152
-
1153
- <p>
1154
- Return true if all tokens of the pattern are optional. If a token
1155
- references a rule, this rule is followed for the check.
1156
- </p>
1157
-
1158
-
1159
-
1160
- <div class="method-source-code"
1161
- id="optional--source">
1162
- <pre>
1163
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 232</span>
1164
- 232: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">optional?</span>(<span class="ruby-identifier">rules</span>)
1165
- 233: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1166
- 234: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:literal</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:variable</span>
1167
- 235: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1168
- 236: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:reference</span>
1169
- 237: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">optional?</span>(<span class="ruby-identifier">rules</span>)
1170
- 238: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1171
- 239: <span class="ruby-keyword kw">end</span>
1172
- 240: <span class="ruby-keyword kw">end</span>
1173
- 241: <span class="ruby-keyword kw">end</span>
1174
- 242: <span class="ruby-keyword kw">true</span>
1175
- 243: <span class="ruby-keyword kw">end</span></pre>
1176
- </div>
1177
-
1178
- </div>
1179
-
1180
-
1181
-
1182
-
1183
- </div>
1184
-
1185
-
1186
- <div id="set-rg-method" class="method-detail ">
1187
- <a name="method-i-setArg"></a>
1188
-
1189
- <div class="method-heading">
1190
-
1191
- <span class="method-name">setArg</span><span
1192
- class="method-args">(idx, doc)</span>
1193
- <span class="method-click-advice">click to toggle source</span>
1194
-
1195
- </div>
1196
-
1197
- <div class="method-description">
1198
-
1199
- <p>
1200
- Set the documentation text and for the idx-th variable.
1201
- </p>
1202
-
1203
-
1204
-
1205
- <div class="method-source-code"
1206
- id="set-rg-source">
1207
- <pre>
1208
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 190</span>
1209
- 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setArg</span>(<span class="ruby-identifier">idx</span>, <span class="ruby-identifier">doc</span>)
1210
- 191: <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">doc</span>
1211
- 192: <span class="ruby-keyword kw">end</span></pre>
1212
- </div>
1213
-
1214
- </div>
1215
-
1216
-
1217
-
1218
-
1219
- </div>
1220
-
1221
-
1222
- <div id="set-oc-method" class="method-detail ">
1223
- <a name="method-i-setDoc"></a>
1224
-
1225
- <div class="method-heading">
1226
-
1227
- <span class="method-name">setDoc</span><span
1228
- class="method-args">(keyword, doc)</span>
1229
- <span class="method-click-advice">click to toggle source</span>
1230
-
1231
- </div>
1232
-
1233
- <div class="method-description">
1234
-
1235
- <p>
1236
- Set the keyword and documentation text for the pattern.
1237
- </p>
1238
-
1239
-
1240
-
1241
- <div class="method-source-code"
1242
- id="set-oc-source">
1243
- <pre>
1244
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 184</span>
1245
- 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setDoc</span>(<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">doc</span>)
1246
- 185: <span class="ruby-ivar">@keyword</span> = <span class="ruby-identifier">keyword</span>
1247
- 186: <span class="ruby-ivar">@doc</span> = <span class="ruby-identifier">doc</span>
1248
- 187: <span class="ruby-keyword kw">end</span></pre>
1249
- </div>
1250
-
1251
- </div>
1252
-
1253
-
1254
-
1255
-
1256
- </div>
1257
-
1258
-
1259
- <div id="set-xample-method" class="method-detail ">
1260
- <a name="method-i-setExample"></a>
1261
-
1262
- <div class="method-heading">
1263
-
1264
- <span class="method-name">setExample</span><span
1265
- class="method-args">(file, tag)</span>
1266
- <span class="method-click-advice">click to toggle source</span>
1267
-
1268
- </div>
1269
-
1270
- <div class="method-description">
1271
-
1272
- <p>
1273
- Set the file and tag for the TJP code example.
1274
- </p>
1275
-
1276
-
1277
-
1278
- <div class="method-source-code"
1279
- id="set-xample-source">
1280
- <pre>
1281
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 205</span>
1282
- 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setExample</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">tag</span>)
1283
- 206: <span class="ruby-ivar">@exampleFile</span> = <span class="ruby-identifier">file</span>
1284
- 207: <span class="ruby-ivar">@exampleTag</span> = <span class="ruby-identifier">tag</span>
1285
- 208: <span class="ruby-keyword kw">end</span></pre>
1286
- </div>
1287
-
1288
- </div>
1289
-
1290
-
1291
-
1292
-
1293
- </div>
1294
-
1295
-
1296
- <div id="set-ast-yntax-oken-method" class="method-detail ">
1297
- <a name="method-i-setLastSyntaxToken"></a>
1298
-
1299
- <div class="method-heading">
1300
-
1301
- <span class="method-name">setLastSyntaxToken</span><span
1302
- class="method-args">(idx)</span>
1303
- <span class="method-click-advice">click to toggle source</span>
1304
-
1305
- </div>
1306
-
1307
- <div class="method-description">
1308
-
1309
- <p>
1310
- Restrict the syntax documentation to the first <tt>idx</tt> tokens.
1311
- </p>
1312
-
1313
-
1314
-
1315
- <div class="method-source-code"
1316
- id="set-ast-yntax-oken-source">
1317
- <pre>
1318
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 195</span>
1319
- 195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setLastSyntaxToken</span>(<span class="ruby-identifier">idx</span>)
1320
- 196: <span class="ruby-ivar">@lastSyntaxToken</span> = <span class="ruby-identifier">idx</span>
1321
- 197: <span class="ruby-keyword kw">end</span></pre>
1322
- </div>
1323
-
1324
- </div>
1325
-
1326
-
1327
-
1328
-
1329
- </div>
1330
-
1331
-
1332
- <div id="set-ee-lso-method" class="method-detail ">
1333
- <a name="method-i-setSeeAlso"></a>
1334
-
1335
- <div class="method-heading">
1336
-
1337
- <span class="method-name">setSeeAlso</span><span
1338
- class="method-args">(also)</span>
1339
- <span class="method-click-advice">click to toggle source</span>
1340
-
1341
- </div>
1342
-
1343
- <div class="method-description">
1344
-
1345
- <p>
1346
- Set the references to related patterns.
1347
- </p>
1348
-
1349
-
1350
-
1351
- <div class="method-source-code"
1352
- id="set-ee-lso-source">
1353
- <pre>
1354
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 200</span>
1355
- 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setSeeAlso</span>(<span class="ruby-identifier">also</span>)
1356
- 201: <span class="ruby-ivar">@seeAlso</span> = <span class="ruby-identifier">also</span>
1357
- 202: <span class="ruby-keyword kw">end</span></pre>
1358
- </div>
1359
-
1360
- </div>
1361
-
1362
-
1363
-
1364
-
1365
- </div>
1366
-
1367
-
1368
- <div id="terminal-ymbol--method" class="method-detail ">
1369
- <a name="method-i-terminalSymbol%3F"></a>
1370
-
1371
- <div class="method-heading">
1372
-
1373
- <span class="method-name">terminalSymbol?</span><span
1374
- class="method-args">(i)</span>
1375
- <span class="method-click-advice">click to toggle source</span>
1376
-
1377
- </div>
1378
-
1379
- <div class="method-description">
1380
-
1381
- <p>
1382
- Returns true if the i-th token is a terminal symbol.
1383
- </p>
1384
-
1385
-
1386
-
1387
- <div class="method-source-code"
1388
- id="terminal-ymbol--source">
1389
- <pre>
1390
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 246</span>
1391
- 246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminalSymbol?</span>(<span class="ruby-identifier">i</span>)
1392
- 247: <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:variable</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:literal</span>
1393
- 248: <span class="ruby-keyword kw">end</span></pre>
1394
- </div>
1395
-
1396
- </div>
1397
-
1398
-
1399
-
1400
-
1401
- </div>
1402
-
1403
-
1404
- <div id="terminal-okens-method" class="method-detail ">
1405
- <a name="method-i-terminalTokens"></a>
1406
-
1407
- <div class="method-heading">
1408
-
1409
- <span class="method-name">terminalTokens</span><span
1410
- class="method-args">(rules, index = 0)</span>
1411
- <span class="method-click-advice">click to toggle source</span>
1412
-
1413
- </div>
1414
-
1415
- <div class="method-description">
1416
-
1417
- <p>
1418
- Find recursively the first terminal token of this pattern. If an index is
1419
- specified start the search at this n-th pattern token instead of the first.
1420
- The return value is an Array of [ token, pattern ] tuple.
1421
- </p>
1422
-
1423
-
1424
-
1425
- <div class="method-source-code"
1426
- id="terminal-okens-source">
1427
- <pre>
1428
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 253</span>
1429
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">terminalTokens</span>(<span class="ruby-identifier">rules</span>, <span class="ruby-identifier">index</span> = <span class="ruby-value">0</span>)
1430
- 254: <span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">index</span>]
1431
- 255: <span class="ruby-comment cmt"># Terminal token start with an underscore or dollar character.</span>
1432
- 256: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:literal</span>
1433
- 257: <span class="ruby-keyword kw">return</span> [ [ <span class="ruby-identifier">name</span>, <span class="ruby-keyword kw">self</span> ] ]
1434
- 258: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:variable</span>
1435
- 259: <span class="ruby-keyword kw">return</span> []
1436
- 260: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:reference</span>
1437
- 261: <span class="ruby-comment cmt"># We have to continue the search at this rule.</span>
1438
- 262: <span class="ruby-identifier">rule</span> = <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>]
1439
- 263: <span class="ruby-comment cmt"># The rule may only have a single pattern. If not, then this pattern</span>
1440
- 264: <span class="ruby-comment cmt"># has no terminal token.</span>
1441
- 265: <span class="ruby-identifier">tts</span> = []
1442
- 266: <span class="ruby-identifier">rule</span>.<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">tts</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">terminalTokens</span>(<span class="ruby-identifier">rules</span>, <span class="ruby-value">0</span>) }
1443
- 267: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tts</span>
1444
- 268: <span class="ruby-keyword kw">else</span>
1445
- 269: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unexpected token #{type} #{name}&quot;</span>
1446
- 270: <span class="ruby-keyword kw">end</span>
1447
- 271: <span class="ruby-keyword kw">end</span></pre>
1448
- </div>
1449
-
1450
- </div>
1451
-
1452
-
1453
-
1454
-
1455
- </div>
1456
-
1457
-
1458
- <div id="to-s-method" class="method-detail ">
1459
- <a name="method-i-to_s"></a>
1460
-
1461
- <div class="method-heading">
1462
-
1463
- <span class="method-name">to_s</span><span
1464
- class="method-args">()</span>
1465
- <span class="method-click-advice">click to toggle source</span>
1466
-
1467
- </div>
1468
-
1469
- <div class="method-description">
1470
-
1471
- <p>
1472
- Generate a text form of the pattern. This is similar to the syntax in the
1473
- original syntax description.
1474
- </p>
1475
-
1476
-
1477
-
1478
- <div class="method-source-code"
1479
- id="to-s-source">
1480
- <pre>
1481
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 355</span>
1482
- 355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1483
- 356: <span class="ruby-identifier">str</span> = <span class="ruby-value str">&quot;&quot;</span>
1484
- 357: <span class="ruby-ivar">@tokens</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1485
- 358: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
1486
- 359: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:reference</span>
1487
- 360: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;!#{name} &quot;</span>
1488
- 361: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:variable</span>
1489
- 362: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;$#{name } &quot;</span>
1490
- 363: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:literal</span>
1491
- 364: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{name} &quot;</span>
1492
- 365: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:eof</span>
1493
- 366: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;. &quot;</span>
1494
- 367: <span class="ruby-keyword kw">else</span>
1495
- 368: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown type #{type}&quot;</span>
1496
- 369: <span class="ruby-keyword kw">end</span>
1497
- 370: <span class="ruby-keyword kw">end</span>
1498
- 371:
1499
- 372: <span class="ruby-identifier">str</span>
1500
- 373: <span class="ruby-keyword kw">end</span></pre>
1501
- </div>
1502
-
1503
- </div>
1504
-
1505
-
1506
-
1507
-
1508
- </div>
1509
-
1510
-
1511
- <div id="to-syntax-method" class="method-detail ">
1512
- <a name="method-i-to_syntax"></a>
1513
-
1514
- <div class="method-heading">
1515
-
1516
- <span class="method-name">to_syntax</span><span
1517
- class="method-args">(argDocs, rules, skip = 0)</span>
1518
- <span class="method-click-advice">click to toggle source</span>
1519
-
1520
- </div>
1521
-
1522
- <div class="method-description">
1523
-
1524
- <p>
1525
- Returns a string that expresses the elements of the pattern in an EBNF like
1526
- fashion. The resolution of the pattern is done recursively. This is just
1527
- the wrapper function that sets up the stack.
1528
- </p>
1529
-
1530
-
1531
-
1532
- <div class="method-source-code"
1533
- id="to-syntax-source">
1534
- <pre>
1535
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 276</span>
1536
- 276: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span> = <span class="ruby-value">0</span>)
1537
- 277: <span class="ruby-identifier">to_syntax_r</span>({}, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1538
- 278: <span class="ruby-keyword kw">end</span></pre>
1539
- </div>
1540
-
1541
- </div>
1542
-
1543
-
1544
-
1545
-
1546
- </div>
1547
-
1548
-
1549
- <div id="to-syntax-r-method" class="method-detail ">
1550
- <a name="method-i-to_syntax_r"></a>
1551
-
1552
- <div class="method-heading">
1553
-
1554
- <span class="method-name">to_syntax_r</span><span
1555
- class="method-args">(stack, argDocs, rules, skip)</span>
1556
- <span class="method-click-advice">click to toggle source</span>
1557
-
1558
- </div>
1559
-
1560
- <div class="method-description">
1561
-
1562
- <p>
1563
- Generate a syntax description for this pattern.
1564
- </p>
1565
-
1566
-
1567
-
1568
- <div class="method-source-code"
1569
- id="to-syntax-r-source">
1570
- <pre>
1571
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 281</span>
1572
- 281: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_syntax_r</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-identifier">skip</span>)
1573
- 282: <span class="ruby-comment cmt"># If we find ourself on the stack we hit a recursive pattern. This is used</span>
1574
- 283: <span class="ruby-comment cmt"># in repetitions.</span>
1575
- 284: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>]
1576
- 285: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'[, ... ]'</span>
1577
- 286: <span class="ruby-keyword kw">end</span>
1578
- 287:
1579
- 288: <span class="ruby-comment cmt"># &quot;Push&quot; us on the stack.</span>
1580
- 289: <span class="ruby-identifier">stack</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-keyword kw">true</span>
1581
- 290:
1582
- 291: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
1583
- 292: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
1584
- 293: <span class="ruby-comment cmt"># Analyze the tokens of the pattern skipping the first 'skip' tokens.</span>
1585
- 294: <span class="ruby-identifier">skip</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-ivar">@lastSyntaxToken</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1586
- 295: <span class="ruby-identifier">type</span>, <span class="ruby-identifier">name</span> = <span class="ruby-ivar">@tokens</span>[<span class="ruby-identifier">i</span>]
1587
- 296: <span class="ruby-comment cmt"># If the first token is a _{ the pattern describes optional attributes.</span>
1588
- 297: <span class="ruby-comment cmt"># They are represented by a standard idiom.</span>
1589
- 298: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
1590
- 299: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
1591
- 300: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'{ &lt;attributes&gt; }'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'{'</span>
1592
- 301: <span class="ruby-keyword kw">else</span>
1593
- 302: <span class="ruby-comment cmt"># Separate the syntax elemens by a whitespace.</span>
1594
- 303: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">' '</span>
1595
- 304: <span class="ruby-keyword kw">end</span>
1596
- 305:
1597
- 306: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>]
1598
- 307: <span class="ruby-comment cmt"># The argument is documented in the syntax definition. We copy the</span>
1599
- 308: <span class="ruby-comment cmt"># entry as we need to modify it.</span>
1600
- 309: <span class="ruby-identifier">argDoc</span> = <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">dup</span>
1601
- 310:
1602
- 311: <span class="ruby-comment cmt"># A documented argument without a name is a terminal token. We use the</span>
1603
- 312: <span class="ruby-comment cmt"># terminal symbol as name.</span>
1604
- 313: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@args</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1605
- 314: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{name}&quot;</span>
1606
- 315: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>
1607
- 316: <span class="ruby-keyword kw">else</span>
1608
- 317: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{@args[i].name}&gt;&quot;</span>
1609
- 318: <span class="ruby-keyword kw">end</span>
1610
- 319: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1611
- 320:
1612
- 321: <span class="ruby-comment cmt"># Documented arguments don't have the type set yet. Use the token</span>
1613
- 322: <span class="ruby-comment cmt"># value for that.</span>
1614
- 323: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:variable</span>
1615
- 324: <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">typeSpec</span> = <span class="ruby-node">&quot;&lt;#{name}&gt;&quot;</span>
1616
- 325: <span class="ruby-keyword kw">end</span>
1617
- 326: <span class="ruby-keyword kw">else</span>
1618
- 327: <span class="ruby-comment cmt"># Undocumented tokens are recursively expanded.</span>
1619
- 328: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
1620
- 329: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:literal</span>
1621
- 330: <span class="ruby-comment cmt"># Literals are shown as such.</span>
1622
- 331: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>
1623
- 332: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:variable</span>
1624
- 333: <span class="ruby-comment cmt"># Variables are enclosed by angle brackets.</span>
1625
- 334: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{name}&gt;&quot;</span>
1626
- 335: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:reference</span>
1627
- 336: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">patterns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span>
1628
- 337: <span class="ruby-operator">!</span><span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">doc</span>.<span class="ruby-identifier">nil?</span>
1629
- 338: <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-constant">TokenDoc</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span>,
1630
- 339: <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>]))
1631
- 340: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'&lt;'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">patterns</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">keyword</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>
1632
- 341: <span class="ruby-keyword kw">else</span>
1633
- 342: <span class="ruby-comment cmt"># References are followed recursively.</span>
1634
- 343: <span class="ruby-identifier">str</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rules</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">to_syntax</span>(<span class="ruby-identifier">stack</span>, <span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">rules</span>, <span class="ruby-value">0</span>)
1635
- 344: <span class="ruby-keyword kw">end</span>
1636
- 345: <span class="ruby-keyword kw">end</span>
1637
- 346: <span class="ruby-keyword kw">end</span>
1638
- 347: <span class="ruby-keyword kw">end</span>
1639
- 348: <span class="ruby-comment cmt"># Remove us from the &quot;stack&quot; again.</span>
1640
- 349: <span class="ruby-identifier">stack</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-keyword kw">self</span>)
1641
- 350: <span class="ruby-identifier">str</span>
1642
- 351: <span class="ruby-keyword kw">end</span></pre>
1643
- </div>
1644
-
1645
- </div>
1646
-
1647
-
1648
-
1649
-
1650
- </div>
1651
-
1652
-
1653
- </div>
1654
-
1655
- <div id="private-instance-method-details" class="method-section section">
1656
- <h3 class="section-header">Private Instance Methods</h3>
1657
-
1658
-
1659
- <div id="add-rg-oc-method" class="method-detail ">
1660
- <a name="method-i-addArgDoc"></a>
1661
-
1662
- <div class="method-heading">
1663
-
1664
- <span class="method-name">addArgDoc</span><span
1665
- class="method-args">(argDocs, argDoc)</span>
1666
- <span class="method-click-advice">click to toggle source</span>
1667
-
1668
- </div>
1669
-
1670
- <div class="method-description">
1671
-
1672
-
1673
-
1674
-
1675
-
1676
- <div class="method-source-code"
1677
- id="add-rg-oc-source">
1678
- <pre>
1679
- <span class="ruby-comment cmt"># File lib/TextParser/Pattern.rb, line 377</span>
1680
- 377: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addArgDoc</span>(<span class="ruby-identifier">argDocs</span>, <span class="ruby-identifier">argDoc</span>)
1681
- 378: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Error'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">nil?</span>
1682
- 379: <span class="ruby-identifier">argDocs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ad</span><span class="ruby-operator">|</span>
1683
- 380: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ad</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">argDoc</span>.<span class="ruby-identifier">name</span>
1684
- 381: <span class="ruby-keyword kw">end</span>
1685
- 382: <span class="ruby-identifier">argDocs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">argDoc</span>
1686
- 383: <span class="ruby-keyword kw">end</span></pre>
1687
- </div>
1688
-
1689
- </div>
1690
-
1691
-
1692
-
1693
-
1694
- </div>
1695
-
1696
-
1697
- </div>
1698
-
1699
-
1700
- </div>
1701
-
1702
-
1703
- <div id="rdoc-debugging-section-dump" class="debugging-section">
1704
-
1705
- <p>Disabled; run with --debug to generate this.</p>
1706
-
1707
- </div>
1708
-
1709
- <div id="validator-badges">
1710
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1711
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1712
- Rdoc Generator</a> 1.1.6</small>.</p>
1713
- </div>
1714
-
1715
- </body>
1716
- </html>
1717
-