taskjuggler 0.1.1 → 0.2.0
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.
- data/CHANGELOG +37 -5
- data/README.rdoc +4 -2
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/css/tjmanual.css +0 -1
- data/benchmarks/htmltaskreport-1.html +47702 -0
- data/benchmarks/htmltaskreport-2.html +23345 -0
- data/benchmarks/htmltaskreport-3.html +23265 -0
- data/benchmarks/htmltaskreport-4.html +22135 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/tj3.profile +0 -0
- data/benchmarks/tj3.profile.grind +6185 -0
- data/benchmarks/tj3.profile.symbols +432 -0
- data/benchmarks/tj3.profile.txt +448 -0
- data/data/tjp.vim +689 -0
- data/doc/AppConfig.html +26 -2
- data/doc/CHANGELOG.html +60 -8
- data/doc/COPYING.html +26 -2
- data/doc/Diff/Hunk.html +26 -2
- data/doc/Diff.html +26 -2
- data/doc/Diffable.html +26 -2
- data/doc/DiffableString.html +26 -2
- data/doc/Object.html +26 -104
- data/doc/README_rdoc.html +39 -7
- data/doc/RuntimeConfig.html +26 -2
- data/doc/String.html +26 -2
- data/doc/TaskJuggler/Account.html +27 -3
- data/doc/TaskJuggler/AccountAttribute.html +30 -6
- data/doc/TaskJuggler/AccountScenario.html +28 -4
- data/doc/TaskJuggler/Allocation.html +33 -9
- data/doc/TaskJuggler/AllocationAttribute.html +31 -7
- data/doc/TaskJuggler/AttributeBase.html +162 -111
- data/doc/TaskJuggler/AttributeDefinition.html +26 -2
- data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
- data/doc/TaskJuggler/BatchProcessor.html +26 -2
- data/doc/TaskJuggler/Booking.html +29 -5
- data/doc/TaskJuggler/BookingListAttribute.html +29 -5
- data/doc/TaskJuggler/BooleanAttribute.html +30 -6
- data/doc/TaskJuggler/CSVFile.html +26 -2
- data/doc/TaskJuggler/CellSettingPattern.html +26 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
- data/doc/TaskJuggler/Charge.html +30 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
- data/doc/TaskJuggler/ChargeSet.html +26 -2
- data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
- data/doc/TaskJuggler/CollisionDetector.html +26 -2
- data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
- data/doc/TaskJuggler/ColumnTable.html +26 -2
- data/doc/TaskJuggler/Daemon.html +26 -2
- data/doc/TaskJuggler/DataCache.html +26 -2
- data/doc/TaskJuggler/DataCacheEntry.html +26 -2
- data/doc/TaskJuggler/DateAttribute.html +30 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
- data/doc/TaskJuggler/DurationAttribute.html +31 -7
- data/doc/TaskJuggler/FileList.html +26 -2
- data/doc/TaskJuggler/FileRecord.html +26 -2
- data/doc/TaskJuggler/FixnumAttribute.html +28 -4
- data/doc/TaskJuggler/FlagListAttribute.html +30 -6
- data/doc/TaskJuggler/FloatAttribute.html +29 -5
- data/doc/TaskJuggler/FormatListAttribute.html +29 -5
- data/doc/TaskJuggler/GanttChart.html +26 -2
- data/doc/TaskJuggler/GanttContainer.html +26 -2
- data/doc/TaskJuggler/GanttHeader.html +26 -2
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
- data/doc/TaskJuggler/GanttLine.html +27 -3
- data/doc/TaskJuggler/GanttLoadStack.html +26 -2
- data/doc/TaskJuggler/GanttMilestone.html +26 -2
- data/doc/TaskJuggler/GanttRouter.html +26 -2
- data/doc/TaskJuggler/GanttTaskBar.html +26 -2
- data/doc/TaskJuggler/HTMLDocument.html +26 -2
- data/doc/TaskJuggler/HTMLElements.html +623 -0
- data/doc/TaskJuggler/HTMLGraphics.html +26 -2
- data/doc/TaskJuggler/ICalReport.html +864 -0
- data/doc/TaskJuggler/ICalendar/Component.html +969 -0
- data/doc/TaskJuggler/ICalendar/Event.html +742 -0
- data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
- data/doc/TaskJuggler/ICalendar/Person.html +633 -0
- data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
- data/doc/TaskJuggler/ICalendar.html +1035 -0
- data/doc/TaskJuggler/Interval.html +99 -172
- data/doc/TaskJuggler/IntervalList.html +31 -7
- data/doc/TaskJuggler/JobInfo.html +26 -2
- data/doc/TaskJuggler/Journal.html +26 -2
- data/doc/TaskJuggler/JournalEntry.html +26 -2
- data/doc/TaskJuggler/JournalEntryList.html +26 -2
- data/doc/TaskJuggler/KeywordArray.html +26 -2
- data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
- data/doc/TaskJuggler/Limits/Limit.html +124 -49
- data/doc/TaskJuggler/Limits.html +139 -156
- data/doc/TaskJuggler/LimitsAttribute.html +39 -14
- data/doc/TaskJuggler/ListAttributeBase.html +35 -11
- data/doc/TaskJuggler/Log.html +26 -2
- data/doc/TaskJuggler/LogFile.html +26 -2
- data/doc/TaskJuggler/LogicalAttribute.html +26 -2
- data/doc/TaskJuggler/LogicalExpression.html +26 -2
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalFlag.html +26 -2
- data/doc/TaskJuggler/LogicalFunction.html +28 -4
- data/doc/TaskJuggler/LogicalOperation.html +26 -2
- data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
- data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
- data/doc/TaskJuggler/Message.html +26 -2
- data/doc/TaskJuggler/MessageHandler.html +108 -62
- data/doc/TaskJuggler/Navigator.html +26 -2
- data/doc/TaskJuggler/NavigatorElement.html +26 -2
- data/doc/TaskJuggler/NikuProject.html +26 -2
- data/doc/TaskJuggler/NikuReport.html +27 -3
- data/doc/TaskJuggler/NikuResource.html +26 -2
- data/doc/TaskJuggler/NodeListAttribute.html +31 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
- data/doc/TaskJuggler/ProcessIntercom.html +26 -2
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
- data/doc/TaskJuggler/Project.html +1236 -973
- data/doc/TaskJuggler/ProjectBroker.html +26 -2
- data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
- data/doc/TaskJuggler/ProjectFileParser.html +29 -4
- data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
- data/doc/TaskJuggler/ProjectRecord.html +26 -2
- data/doc/TaskJuggler/ProjectServer.html +26 -2
- data/doc/TaskJuggler/ProjectServerIface.html +26 -2
- data/doc/TaskJuggler/PropertyAttribute.html +35 -11
- data/doc/TaskJuggler/PropertyList.html +26 -2
- data/doc/TaskJuggler/PropertySet.html +126 -106
- data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
- data/doc/TaskJuggler/Query.html +127 -100
- data/doc/TaskJuggler/RTFHandlers.html +26 -2
- data/doc/TaskJuggler/RTFNavigator.html +26 -2
- data/doc/TaskJuggler/RTFQuery.html +28 -4
- data/doc/TaskJuggler/RTFReport.html +26 -2
- data/doc/TaskJuggler/RTFReportLink.html +26 -2
- data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
- data/doc/TaskJuggler/RealFormat.html +26 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
- data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
- data/doc/TaskJuggler/Report.html +427 -284
- data/doc/TaskJuggler/ReportBase.html +28 -102
- data/doc/TaskJuggler/ReportContext.html +26 -2
- data/doc/TaskJuggler/ReportScenario.html +633 -0
- data/doc/TaskJuggler/ReportServer.html +26 -2
- data/doc/TaskJuggler/ReportServerIface.html +26 -2
- data/doc/TaskJuggler/ReportServerRecord.html +26 -2
- data/doc/TaskJuggler/ReportServlet.html +26 -2
- data/doc/TaskJuggler/ReportTable.html +26 -2
- data/doc/TaskJuggler/ReportTableCell.html +26 -2
- data/doc/TaskJuggler/ReportTableColumn.html +26 -2
- data/doc/TaskJuggler/ReportTableLegend.html +26 -2
- data/doc/TaskJuggler/ReportTableLine.html +26 -2
- data/doc/TaskJuggler/Resource.html +225 -163
- data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
- data/doc/TaskJuggler/ResourceListRE.html +26 -2
- data/doc/TaskJuggler/ResourceScenario.html +645 -603
- data/doc/TaskJuggler/RichText.html +26 -2
- data/doc/TaskJuggler/RichTextAttribute.html +53 -29
- data/doc/TaskJuggler/RichTextDocument.html +26 -2
- data/doc/TaskJuggler/RichTextElement.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
- data/doc/TaskJuggler/RichTextImage.html +26 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
- data/doc/TaskJuggler/RichTextParser.html +26 -2
- data/doc/TaskJuggler/RichTextScanner.html +26 -2
- data/doc/TaskJuggler/RichTextSnip.html +26 -2
- data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
- data/doc/TaskJuggler/Scenario.html +26 -2
- data/doc/TaskJuggler/ScenarioData.html +95 -28
- data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
- data/doc/TaskJuggler/Scoreboard.html +137 -73
- data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
- data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
- data/doc/TaskJuggler/SheetReceiver.html +26 -2
- data/doc/TaskJuggler/SheetSender.html +26 -2
- data/doc/TaskJuggler/Shift.html +27 -3
- data/doc/TaskJuggler/ShiftAssignment.html +27 -3
- data/doc/TaskJuggler/ShiftAssignments.html +174 -149
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
- data/doc/TaskJuggler/ShiftScenario.html +26 -2
- data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
- data/doc/TaskJuggler/SortListAttribute.html +35 -11
- data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
- data/doc/TaskJuggler/StatusSheetReport.html +26 -2
- data/doc/TaskJuggler/StatusSheetSender.html +26 -2
- data/doc/TaskJuggler/StdIoWrapper.html +26 -2
- data/doc/TaskJuggler/StringAttribute.html +39 -15
- data/doc/TaskJuggler/SymbolAttribute.html +35 -11
- data/doc/TaskJuggler/SyntaxReference.html +26 -2
- data/doc/TaskJuggler/TOCEntry.html +26 -2
- data/doc/TaskJuggler/TSResourceRecord.html +26 -2
- data/doc/TaskJuggler/TSTaskRecord.html +26 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
- data/doc/TaskJuggler/TableOfContents.html +26 -2
- data/doc/TaskJuggler/TableReport.html +239 -214
- data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
- data/doc/TaskJuggler/TagFile.html +817 -0
- data/doc/TaskJuggler/Task.html +27 -3
- data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskDependency.html +26 -2
- data/doc/TaskJuggler/TaskListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskListRE.html +26 -2
- data/doc/TaskJuggler/TaskScenario.html +2235 -2178
- data/doc/TaskJuggler/TernarySearchTree.html +26 -2
- data/doc/TaskJuggler/TextFormatter.html +26 -2
- data/doc/TaskJuggler/TextParser/Macro.html +26 -2
- data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
- data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
- data/doc/TaskJuggler/TextParser/Rule.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
- data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
- data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
- data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
- data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
- data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
- data/doc/TaskJuggler/TextParser/State.html +26 -2
- data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
- data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
- data/doc/TaskJuggler/TextParser.html +85 -61
- data/doc/TaskJuggler/TextReport.html +26 -2
- data/doc/TaskJuggler/TimeInterval.html +841 -0
- data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
- data/doc/TaskJuggler/TimeSheet.html +26 -2
- data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
- data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
- data/doc/TaskJuggler/TimeSheetReport.html +29 -5
- data/doc/TaskJuggler/TimeSheetSender.html +26 -2
- data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
- data/doc/TaskJuggler/TimeSheets.html +26 -2
- data/doc/TaskJuggler/Tj3.html +150 -111
- data/doc/TaskJuggler/Tj3AppBase.html +26 -2
- data/doc/TaskJuggler/Tj3Client.html +26 -2
- data/doc/TaskJuggler/Tj3Daemon.html +26 -2
- data/doc/TaskJuggler/Tj3Man.html +26 -2
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3SsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3TsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
- data/doc/TaskJuggler/TjException.html +26 -2
- data/doc/TaskJuggler/TjRuntimeError.html +26 -2
- data/doc/TaskJuggler/TjTime.html +539 -477
- data/doc/TaskJuggler/TjpExample.html +26 -2
- data/doc/TaskJuggler/TjpExportRE.html +240 -161
- data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
- data/doc/TaskJuggler/URLParameter.html +26 -2
- data/doc/TaskJuggler/UserManual.html +26 -2
- data/doc/TaskJuggler/VimSyntax.html +31 -7
- data/doc/TaskJuggler/WebServer.html +26 -2
- data/doc/TaskJuggler/WelcomePage.html +26 -2
- data/doc/TaskJuggler/WorkingHours.html +227 -152
- data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
- data/doc/TaskJuggler/XMLBlob.html +26 -2
- data/doc/TaskJuggler/XMLComment.html +26 -2
- data/doc/TaskJuggler/XMLDocument.html +26 -2
- data/doc/TaskJuggler/XMLElement.html +26 -2
- data/doc/TaskJuggler/XMLNamedText.html +26 -2
- data/doc/TaskJuggler/XMLText.html +26 -2
- data/doc/TaskJuggler.html +486 -427
- data/doc/index.html +801 -659
- data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Account_rb.html +1 -1
- data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
- data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
- data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
- data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
- data/doc/lib/taskjuggler/Booking_rb.html +1 -1
- data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
- data/doc/lib/taskjuggler/Charge_rb.html +1 -1
- data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
- data/doc/lib/taskjuggler/FileList_rb.html +1 -1
- data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
- data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
- data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
- data/doc/lib/taskjuggler/Interval_rb.html +1 -1
- data/doc/lib/taskjuggler/Journal_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/taskjuggler/Limits_rb.html +1 -1
- data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
- data/doc/lib/taskjuggler/Log_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
- data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/taskjuggler/Project_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/taskjuggler/Query_rb.html +1 -1
- data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
- data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Resource_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText_rb.html +1 -1
- data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
- data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Shift_rb.html +1 -1
- data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
- data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
- data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Task_rb.html +1 -1
- data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
- data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/TjException_rb.html +1 -1
- data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
- data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
- data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
- data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
- data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
- data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
- data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/tj3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/taskjuggler/Account.rb +1 -1
- data/lib/taskjuggler/AccountScenario.rb +1 -1
- data/lib/taskjuggler/Allocation.rb +5 -5
- data/lib/taskjuggler/AttributeBase.rb +30 -22
- data/lib/taskjuggler/Attributes.rb +80 -78
- data/lib/taskjuggler/Booking.rb +2 -2
- data/lib/taskjuggler/Charge.rb +3 -3
- data/lib/taskjuggler/ICalendar.rb +251 -0
- data/lib/taskjuggler/Interval.rb +215 -53
- data/lib/taskjuggler/IntervalList.rb +5 -5
- data/lib/taskjuggler/Limits.rb +79 -69
- data/lib/taskjuggler/LogicalFunction.rb +2 -2
- data/lib/taskjuggler/MessageHandler.rb +11 -6
- data/lib/taskjuggler/Project.rb +208 -95
- data/lib/taskjuggler/ProjectFileParser.rb +2 -2
- data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
- data/lib/taskjuggler/PropertySet.rb +1 -5
- data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
- data/lib/taskjuggler/Query.rb +10 -7
- data/lib/taskjuggler/Resource.rb +6 -1
- data/lib/taskjuggler/ResourceScenario.rb +85 -69
- data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
- data/lib/taskjuggler/ScenarioData.rb +11 -1
- data/lib/taskjuggler/Scoreboard.rb +8 -1
- data/lib/taskjuggler/Shift.rb +1 -1
- data/lib/taskjuggler/ShiftAssignments.rb +22 -20
- data/lib/taskjuggler/Task.rb +1 -1
- data/lib/taskjuggler/TaskJuggler.rb +65 -51
- data/lib/taskjuggler/TaskScenario.rb +486 -419
- data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
- data/lib/taskjuggler/TimeSheets.rb +1 -1
- data/lib/taskjuggler/Tj3Config.rb +1 -1
- data/lib/taskjuggler/TjTime.rb +7 -3
- data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
- data/lib/taskjuggler/VimSyntax.rb +18 -0
- data/lib/taskjuggler/WorkingHours.rb +20 -4
- data/lib/taskjuggler/apps/Tj3.rb +16 -1
- data/lib/taskjuggler/reports/GanttLine.rb +1 -1
- data/lib/taskjuggler/reports/ICalReport.rb +136 -0
- data/lib/taskjuggler/reports/NikuReport.rb +1 -1
- data/lib/taskjuggler/reports/Report.rb +59 -0
- data/lib/taskjuggler/reports/ReportBase.rb +2 -67
- data/lib/taskjuggler/reports/TableReport.rb +9 -8
- data/lib/taskjuggler/reports/TagFile.rb +120 -0
- data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
- data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
- data/manual/Installation +126 -0
- data/spec/ICalendar_spec.rb +45 -0
- data/spec/IntervalList_spec.rb +11 -11
- data/tasks/changelog.rake +150 -60
- data/tasks/gem.rake +1 -0
- data/tasks/vim.rake +2 -2
- data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
- data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
- data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
- data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
- data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
- data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
- data/test/TestSuite/Scheduler/Errors/R.html +113 -0
- data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
- data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_Limits.rb +38 -30
- data/test/test_Scheduler.rb +2 -2
- data/test/test_ShiftAssignments.rb +8 -8
- data/test/test_WorkingHours.rb +4 -4
- metadata +1015 -1005
- data/lib/exchangebug.rb +0 -42
- data/lib/ruby-signal-bug.rb +0 -55
- data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
- data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/' +0 -23
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
- data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
- data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
- data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
- data/test/TestSuite/TimeSheets/uu.txt +0 -29
|
@@ -252,12 +252,24 @@
|
|
|
252
252
|
|
|
253
253
|
<li><a href="../../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
|
|
254
254
|
|
|
255
|
+
<li><a href="../../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
|
|
256
|
+
|
|
257
|
+
<li><a href="../../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
|
|
258
|
+
|
|
259
|
+
<li><a href="../../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
|
|
260
|
+
|
|
261
|
+
<li><a href="../../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
|
|
262
|
+
|
|
263
|
+
<li><a href="../../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
|
|
264
|
+
|
|
265
|
+
<li><a href="../../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
|
|
266
|
+
|
|
267
|
+
<li><a href="../../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
|
|
268
|
+
|
|
255
269
|
<li><a href="../../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
256
270
|
|
|
257
271
|
<li><a href="../../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
258
272
|
|
|
259
|
-
<li><a href="../../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
260
|
-
|
|
261
273
|
<li><a href="../../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
262
274
|
|
|
263
275
|
<li><a href="../../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
|
|
@@ -372,6 +384,8 @@
|
|
|
372
384
|
|
|
373
385
|
<li><a href="../../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
|
|
374
386
|
|
|
387
|
+
<li><a href="../../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
|
|
388
|
+
|
|
375
389
|
<li><a href="../../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
|
|
376
390
|
|
|
377
391
|
<li><a href="../../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
|
|
@@ -430,6 +444,8 @@
|
|
|
430
444
|
|
|
431
445
|
<li><a href="../../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
|
|
432
446
|
|
|
447
|
+
<li><a href="../../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
|
|
448
|
+
|
|
433
449
|
<li><a href="../../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
|
|
434
450
|
|
|
435
451
|
<li><a href="../../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
|
|
@@ -476,6 +492,10 @@
|
|
|
476
492
|
|
|
477
493
|
<li><a href="../../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
|
|
478
494
|
|
|
495
|
+
<li><a href="../../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
|
|
496
|
+
|
|
497
|
+
<li><a href="../../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
|
|
498
|
+
|
|
479
499
|
<li><a href="../../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
|
|
480
500
|
|
|
481
501
|
<li><a href="../../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
|
|
@@ -526,6 +546,10 @@
|
|
|
526
546
|
|
|
527
547
|
<li><a href="../../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
|
|
528
548
|
|
|
549
|
+
<li><a href="../../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
|
|
550
|
+
|
|
551
|
+
<li><a href="../../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
|
|
552
|
+
|
|
529
553
|
<li><a href="../../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
530
554
|
|
|
531
555
|
<li><a href="../../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
|
|
@@ -680,49 +704,49 @@ progress and status.
|
|
|
680
704
|
<div class="method-source-code"
|
|
681
705
|
id="new-source">
|
|
682
706
|
<pre>
|
|
683
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
707
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 203</span>
|
|
708
|
+
203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>, <span class="ruby-identifier">log</span>, <span class="ruby-identifier">tokenPatterns</span>, <span class="ruby-identifier">defaultMode</span>)
|
|
709
|
+
204: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
|
|
710
|
+
205: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
711
|
+
206: <span class="ruby-ivar">@log</span> = <span class="ruby-identifier">log</span>
|
|
712
|
+
207: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
|
|
713
|
+
208: <span class="ruby-comment cmt"># text.</span>
|
|
714
|
+
209: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>
|
|
715
|
+
210: <span class="ruby-comment cmt"># The currently processed IO object.</span>
|
|
716
|
+
211: <span class="ruby-ivar">@cf</span> = <span class="ruby-keyword kw">nil</span>
|
|
717
|
+
212: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
|
|
718
|
+
213: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 2 elements, the IO object and</span>
|
|
719
|
+
214: <span class="ruby-comment cmt"># the @tokenBuffer.</span>
|
|
720
|
+
215: <span class="ruby-ivar">@fileStack</span> = []
|
|
721
|
+
216: <span class="ruby-comment cmt"># This flag is set if we have reached the end of a file. Since we will</span>
|
|
722
|
+
217: <span class="ruby-comment cmt"># only know when the next new token is requested that the file is really</span>
|
|
723
|
+
218: <span class="ruby-comment cmt"># done now, we have to use this flag.</span>
|
|
724
|
+
219: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
725
|
+
220: <span class="ruby-comment cmt"># True if the scanner operates on a buffer.</span>
|
|
726
|
+
221: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>
|
|
727
|
+
222: <span class="ruby-comment cmt"># A SourceFileInfo of the start of the currently processed token.</span>
|
|
728
|
+
223: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-keyword kw">nil</span>
|
|
729
|
+
224: <span class="ruby-comment cmt"># Line number correction for error messages.</span>
|
|
730
|
+
225: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">0</span>
|
|
731
|
+
226: <span class="ruby-comment cmt"># Lists of regexps that describe the detectable tokens. The Arrays are</span>
|
|
732
|
+
227: <span class="ruby-comment cmt"># grouped by mode.</span>
|
|
733
|
+
228: <span class="ruby-ivar">@patternsByMode</span> = { }
|
|
734
|
+
229: <span class="ruby-comment cmt"># The currently active scanner mode.</span>
|
|
735
|
+
230: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-keyword kw">nil</span>
|
|
736
|
+
231: <span class="ruby-comment cmt"># The mode that the scanner is in at the start and end of file</span>
|
|
737
|
+
232: <span class="ruby-ivar">@defaultMode</span> = <span class="ruby-identifier">defaultMode</span>
|
|
738
|
+
233: <span class="ruby-comment cmt"># Points to the currently active pattern set as defined by the mode.</span>
|
|
739
|
+
234: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-keyword kw">nil</span>
|
|
740
|
+
235:
|
|
741
|
+
236: <span class="ruby-identifier">tokenPatterns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pat</span><span class="ruby-operator">|</span>
|
|
742
|
+
237: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">0</span>]
|
|
743
|
+
238: <span class="ruby-identifier">regExp</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">1</span>]
|
|
744
|
+
239: <span class="ruby-identifier">mode</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">||</span> <span class="ruby-value">:tjp</span>
|
|
745
|
+
240: <span class="ruby-identifier">postProc</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">3</span>]
|
|
746
|
+
241: <span class="ruby-identifier">addPattern</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">postProc</span>)
|
|
747
|
+
242: <span class="ruby-keyword kw">end</span>
|
|
748
|
+
243: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-identifier">defaultMode</span>
|
|
749
|
+
244: <span class="ruby-keyword kw">end</span></pre>
|
|
726
750
|
</div>
|
|
727
751
|
|
|
728
752
|
</div>
|
|
@@ -761,10 +785,10 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
|
|
|
761
785
|
<div class="method-source-code"
|
|
762
786
|
id="add-acro-source">
|
|
763
787
|
<pre>
|
|
764
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
788
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 474</span>
|
|
789
|
+
474: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
|
|
790
|
+
475: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
|
|
791
|
+
476: <span class="ruby-keyword kw">end</span></pre>
|
|
768
792
|
</div>
|
|
769
793
|
|
|
770
794
|
</div>
|
|
@@ -805,20 +829,20 @@ href="../../String.html">String</a> and returns them again in an Array.
|
|
|
805
829
|
<div class="method-source-code"
|
|
806
830
|
id="add-attern-source">
|
|
807
831
|
<pre>
|
|
808
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
832
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 254</span>
|
|
833
|
+
254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addPattern</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">mode</span>, <span class="ruby-identifier">postProc</span> = <span class="ruby-keyword kw">nil</span>)
|
|
834
|
+
255: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
|
|
835
|
+
256: <span class="ruby-identifier">mode</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
|
|
836
|
+
257: <span class="ruby-comment cmt"># The pattern is active in multiple modes</span>
|
|
837
|
+
258: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">m</span>)
|
|
838
|
+
259: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">m</span>] <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
|
|
839
|
+
260: <span class="ruby-keyword kw">end</span>
|
|
840
|
+
261: <span class="ruby-keyword kw">else</span>
|
|
841
|
+
262: <span class="ruby-comment cmt"># The pattern is only active in one specific mode.</span>
|
|
842
|
+
263: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@patternsByMode</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">mode</span>)
|
|
843
|
+
264: <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">mode</span>] <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">regExp</span>, <span class="ruby-identifier">postProc</span> ]
|
|
844
|
+
265: <span class="ruby-keyword kw">end</span>
|
|
845
|
+
266: <span class="ruby-keyword kw">end</span></pre>
|
|
822
846
|
</div>
|
|
823
847
|
|
|
824
848
|
</div>
|
|
@@ -851,15 +875,15 @@ Finish processing and reset all data structures.
|
|
|
851
875
|
<div class="method-source-code"
|
|
852
876
|
id="close-source">
|
|
853
877
|
<pre>
|
|
854
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
878
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 298</span>
|
|
879
|
+
298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
|
880
|
+
299: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileNameIsBuffer</span>
|
|
881
|
+
300: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Reading file #{@masterFile}"</span>)
|
|
882
|
+
301: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
883
|
+
302: <span class="ruby-keyword kw">end</span>
|
|
884
|
+
303: <span class="ruby-ivar">@fileStack</span> = []
|
|
885
|
+
304: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
886
|
+
305: <span class="ruby-keyword kw">end</span></pre>
|
|
863
887
|
</div>
|
|
864
888
|
|
|
865
889
|
</div>
|
|
@@ -892,10 +916,10 @@ Call this function to report any errors related to the parsed input.
|
|
|
892
916
|
<div class="method-source-code"
|
|
893
917
|
id="error-source">
|
|
894
918
|
<pre>
|
|
895
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
919
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 504</span>
|
|
920
|
+
504: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>)
|
|
921
|
+
505: <span class="ruby-identifier">message</span>(<span class="ruby-value">:error</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">data</span>)
|
|
922
|
+
506: <span class="ruby-keyword kw">end</span></pre>
|
|
899
923
|
</div>
|
|
900
924
|
|
|
901
925
|
</div>
|
|
@@ -912,7 +936,7 @@ Call this function to report any errors related to the parsed input.
|
|
|
912
936
|
<div class="method-heading">
|
|
913
937
|
|
|
914
938
|
<span class="method-name">expandMacro</span><span
|
|
915
|
-
class="method-args">(prefix, args)</span>
|
|
939
|
+
class="method-args">(prefix, args, callLength)</span>
|
|
916
940
|
<span class="method-click-advice">click to toggle source</span>
|
|
917
941
|
|
|
918
942
|
</div>
|
|
@@ -923,7 +947,8 @@ Call this function to report any errors related to the parsed input.
|
|
|
923
947
|
Expand a macro and inject it into the input stream. <em>prefix</em> is any
|
|
924
948
|
string that was found right before the macro call. We have to inject it
|
|
925
949
|
before the expanded macro. <em>args</em> is an Array of Strings. The first
|
|
926
|
-
is the macro name, the rest are the parameters.
|
|
950
|
+
is the macro name, the rest are the parameters. <em>callLength</em> is the
|
|
951
|
+
number of characters for the complete macro call “${…}”.
|
|
927
952
|
</p>
|
|
928
953
|
|
|
929
954
|
|
|
@@ -931,21 +956,21 @@ is the macro name, the rest are the parameters.
|
|
|
931
956
|
<div class="method-source-code"
|
|
932
957
|
id="expand-acro-source">
|
|
933
958
|
<pre>
|
|
934
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
959
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 488</span>
|
|
960
|
+
488: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">prefix</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">callLength</span>)
|
|
961
|
+
489: <span class="ruby-comment cmt"># Get the expanded macro from the @macroTable.</span>
|
|
962
|
+
490: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
|
|
963
|
+
491: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">macro</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">text</span>
|
|
964
|
+
492: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'undefined_macro'</span>, <span class="ruby-node">"Undefined macro '#{args[0]}' called"</span>)
|
|
965
|
+
493: <span class="ruby-keyword kw">end</span>
|
|
966
|
+
494:
|
|
967
|
+
495: <span class="ruby-comment cmt"># If the expanded macro is empty, we can ignore it.</span>
|
|
968
|
+
496: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
|
|
969
|
+
497:
|
|
970
|
+
498: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">injectMacro</span>(<span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">text</span>, <span class="ruby-identifier">callLength</span>)
|
|
971
|
+
499: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'macro_stack_overflow'</span>, <span class="ruby-value str">"Too many nested macro calls."</span>)
|
|
972
|
+
500: <span class="ruby-keyword kw">end</span>
|
|
973
|
+
501: <span class="ruby-keyword kw">end</span></pre>
|
|
949
974
|
</div>
|
|
950
975
|
|
|
951
976
|
</div>
|
|
@@ -979,10 +1004,10 @@ text buffer, the text will be returned.
|
|
|
979
1004
|
<div class="method-source-code"
|
|
980
1005
|
id="file-ame-source">
|
|
981
1006
|
<pre>
|
|
982
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
1007
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 355</span>
|
|
1008
|
+
355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
|
|
1009
|
+
356: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
|
|
1010
|
+
357: <span class="ruby-keyword kw">end</span></pre>
|
|
986
1011
|
</div>
|
|
987
1012
|
|
|
988
1013
|
</div>
|
|
@@ -1018,42 +1043,42 @@ qualified name of the included file.
|
|
|
1018
1043
|
<div class="method-source-code"
|
|
1019
1044
|
id="include-source">
|
|
1020
1045
|
<pre>
|
|
1021
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
309: <span class="ruby-keyword kw">end</span>
|
|
1030
|
-
310:
|
|
1031
|
-
311: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
|
|
1032
|
-
312: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
|
|
1033
|
-
313: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
1034
|
-
314: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
|
|
1035
|
-
315: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
|
|
1036
|
-
316: <span class="ruby-node">"Recursive inclusion of #{includeFileName} detected"</span>, <span class="ruby-identifier">sfi</span>)
|
|
1037
|
-
317: <span class="ruby-keyword kw">end</span>
|
|
1046
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 311</span>
|
|
1047
|
+
311: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">includeFileName</span>, <span class="ruby-identifier">sfi</span>, &<span class="ruby-identifier">block</span>)
|
|
1048
|
+
312: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
|
|
1049
|
+
313: <span class="ruby-identifier">pathOfCallingFile</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span>
|
|
1050
|
+
314: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">pathOfCallingFile</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">pathOfCallingFile</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
|
1051
|
+
315: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
|
|
1052
|
+
316: <span class="ruby-comment cmt"># name relative to the including file.</span>
|
|
1053
|
+
317: <span class="ruby-identifier">includeFileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">includeFileName</span>
|
|
1038
1054
|
318: <span class="ruby-keyword kw">end</span>
|
|
1039
1055
|
319:
|
|
1040
|
-
320: <span class="ruby-comment cmt">#
|
|
1041
|
-
321: <span class="ruby-
|
|
1042
|
-
322: <span class="ruby-ivar">@
|
|
1043
|
-
323:
|
|
1044
|
-
324:
|
|
1045
|
-
325:
|
|
1046
|
-
326:
|
|
1047
|
-
327:
|
|
1048
|
-
328:
|
|
1049
|
-
329:
|
|
1050
|
-
330: <span class="ruby-keyword kw">
|
|
1051
|
-
331:
|
|
1052
|
-
332: <span class="ruby-keyword kw">
|
|
1056
|
+
320: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
|
|
1057
|
+
321: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
|
|
1058
|
+
322: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
1059
|
+
323: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">includeFileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
|
|
1060
|
+
324: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
|
|
1061
|
+
325: <span class="ruby-node">"Recursive inclusion of #{includeFileName} detected"</span>, <span class="ruby-identifier">sfi</span>)
|
|
1062
|
+
326: <span class="ruby-keyword kw">end</span>
|
|
1063
|
+
327: <span class="ruby-keyword kw">end</span>
|
|
1064
|
+
328:
|
|
1065
|
+
329: <span class="ruby-comment cmt"># Save @tokenBuffer in the record of the parent file.</span>
|
|
1066
|
+
330: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>] = <span class="ruby-ivar">@tokenBuffer</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
|
|
1067
|
+
331: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1068
|
+
332: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
1053
1069
|
333:
|
|
1054
|
-
334: <span class="ruby-comment cmt">#
|
|
1055
|
-
335: <span class="ruby-
|
|
1056
|
-
336:
|
|
1070
|
+
334: <span class="ruby-comment cmt"># Open the new file and push the handle on the @fileStack.</span>
|
|
1071
|
+
335: <span class="ruby-keyword kw">begin</span>
|
|
1072
|
+
336: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator"><<</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">includeFileName</span>, <span class="ruby-ivar">@log</span>)),
|
|
1073
|
+
337: <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">block</span> ]
|
|
1074
|
+
338: <span class="ruby-ivar">@log</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Parsing file #{includeFileName}"</span>
|
|
1075
|
+
339: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
1076
|
+
340: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">"Cannot open include file #{includeFileName}"</span>, <span class="ruby-identifier">sfi</span>)
|
|
1077
|
+
341: <span class="ruby-keyword kw">end</span>
|
|
1078
|
+
342:
|
|
1079
|
+
343: <span class="ruby-comment cmt"># Return the name of the included file.</span>
|
|
1080
|
+
344: <span class="ruby-identifier">includeFileName</span>
|
|
1081
|
+
345: <span class="ruby-keyword kw">end</span></pre>
|
|
1057
1082
|
</div>
|
|
1058
1083
|
|
|
1059
1084
|
</div>
|
|
@@ -1087,10 +1112,10 @@ added already.
|
|
|
1087
1112
|
<div class="method-source-code"
|
|
1088
1113
|
id="macro-efined--source">
|
|
1089
1114
|
<pre>
|
|
1090
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1115
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 479</span>
|
|
1116
|
+
479: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
|
|
1117
|
+
480: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
|
|
1118
|
+
481: <span class="ruby-keyword kw">end</span></pre>
|
|
1094
1119
|
</div>
|
|
1095
1120
|
|
|
1096
1121
|
</div>
|
|
@@ -1124,13 +1149,13 @@ patterns of that <em>newMode</em>.
|
|
|
1124
1149
|
<div class="method-source-code"
|
|
1125
1150
|
id="mode--source">
|
|
1126
1151
|
<pre>
|
|
1127
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1152
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 270</span>
|
|
1153
|
+
270: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mode=</span>(<span class="ruby-identifier">newMode</span>)
|
|
1154
|
+
271: <span class="ruby-comment cmt">#puts "**** New mode: #{newMode}"</span>
|
|
1155
|
+
272: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">newMode</span>]
|
|
1156
|
+
273: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Undefined mode #{newMode}"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@activePatterns</span>
|
|
1157
|
+
274: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-identifier">newMode</span>
|
|
1158
|
+
275: <span class="ruby-keyword kw">end</span></pre>
|
|
1134
1159
|
</div>
|
|
1135
1160
|
|
|
1136
1161
|
</div>
|
|
@@ -1166,94 +1191,94 @@ started.
|
|
|
1166
1191
|
<div class="method-source-code"
|
|
1167
1192
|
id="next-oken-source">
|
|
1168
1193
|
<pre>
|
|
1169
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
431:
|
|
1237
|
-
432: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt"># Ignore certain tokens with nil type.</span>
|
|
1238
|
-
433:
|
|
1239
|
-
434: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1240
|
-
435: <span class="ruby-keyword kw">end</span>
|
|
1241
|
-
436: <span class="ruby-keyword kw">end</span>
|
|
1242
|
-
437: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ArgumentError</span>
|
|
1243
|
-
438: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'scan_encoding_error'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>)
|
|
1244
|
-
439: <span class="ruby-keyword kw">end</span>
|
|
1194
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 374</span>
|
|
1195
|
+
374: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
1196
|
+
375: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
|
|
1197
|
+
376: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
1198
|
+
377: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
|
|
1199
|
+
378: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1200
|
+
379: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
|
|
1201
|
+
380: <span class="ruby-keyword kw">end</span>
|
|
1202
|
+
381:
|
|
1203
|
+
382: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@finishLastFile</span>
|
|
1204
|
+
383: <span class="ruby-comment cmt"># The previously processed file has now really been processed to</span>
|
|
1205
|
+
384: <span class="ruby-comment cmt"># completion. Close it and remove the corresponding entry from the</span>
|
|
1206
|
+
385: <span class="ruby-comment cmt"># @fileStack.</span>
|
|
1207
|
+
386: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
1208
|
+
387: <span class="ruby-comment cmt">#@log << "Completed file #{@cf.fileName}"</span>
|
|
1209
|
+
388:
|
|
1210
|
+
389: <span class="ruby-comment cmt"># If we have a block to be executed on EOF, we call it now.</span>
|
|
1211
|
+
390: <span class="ruby-identifier">onEof</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">2</span>]
|
|
1212
|
+
391: <span class="ruby-identifier">onEof</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">onEof</span>
|
|
1213
|
+
392:
|
|
1214
|
+
393: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>
|
|
1215
|
+
394: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
|
|
1216
|
+
395:
|
|
1217
|
+
396: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
|
|
1218
|
+
397: <span class="ruby-comment cmt"># We are done with the top-level file now.</span>
|
|
1219
|
+
398: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1220
|
+
399: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
|
|
1221
|
+
400: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value">:endOfText</span>, <span class="ruby-value str">'<EOT>'</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1222
|
+
401: <span class="ruby-keyword kw">else</span>
|
|
1223
|
+
402: <span class="ruby-comment cmt"># Continue parsing the file that included the current file.</span>
|
|
1224
|
+
403: <span class="ruby-ivar">@cf</span>, <span class="ruby-identifier">tokenBuffer</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
|
|
1225
|
+
404: <span class="ruby-ivar">@log</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Parsing file #{@cf.fileName} ..."</span>
|
|
1226
|
+
405: <span class="ruby-comment cmt"># If we have a left over token from previously processing this file,</span>
|
|
1227
|
+
406: <span class="ruby-comment cmt"># return it now.</span>
|
|
1228
|
+
407: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tokenBuffer</span>
|
|
1229
|
+
408: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tokenBuffer</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:eof</span>
|
|
1230
|
+
409: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tokenBuffer</span>
|
|
1231
|
+
410: <span class="ruby-keyword kw">end</span>
|
|
1232
|
+
411: <span class="ruby-keyword kw">end</span>
|
|
1233
|
+
412: <span class="ruby-keyword kw">end</span>
|
|
1234
|
+
413:
|
|
1235
|
+
414: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
|
|
1236
|
+
415: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
|
|
1237
|
+
416: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
1238
|
+
417: <span class="ruby-identifier">match</span> = <span class="ruby-keyword kw">nil</span>
|
|
1239
|
+
418: <span class="ruby-keyword kw">begin</span>
|
|
1240
|
+
419: <span class="ruby-ivar">@activePatterns</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">re</span>, <span class="ruby-identifier">postProc</span><span class="ruby-operator">|</span>
|
|
1241
|
+
420: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">match</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">re</span>))
|
|
1242
|
+
421: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">==</span> <span class="ruby-value">:scannerEOF</span>
|
|
1243
|
+
422: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scannerMode</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@defaultMode</span>
|
|
1244
|
+
423: <span class="ruby-comment cmt"># The stream resets the line number to 1. Since we still</span>
|
|
1245
|
+
424: <span class="ruby-comment cmt"># know the start of the token, we setup @lineDelta so that</span>
|
|
1246
|
+
425: <span class="ruby-comment cmt"># sourceFileInfo() returns the proper line number.</span>
|
|
1247
|
+
426: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-operator">-</span>(<span class="ruby-ivar">@startOfToken</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
|
|
1248
|
+
427: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'runaway_token'</span>,
|
|
1249
|
+
428: <span class="ruby-node">"Unterminated token starting at #{@startOfToken}"</span>)
|
|
1250
|
+
429: <span class="ruby-keyword kw">end</span>
|
|
1251
|
+
430: <span class="ruby-comment cmt"># We've found the end of an input file. Return a special token</span>
|
|
1252
|
+
431: <span class="ruby-comment cmt"># that describes the end of a file.</span>
|
|
1253
|
+
432: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
|
|
1254
|
+
433: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value">:eof</span>, <span class="ruby-value str">'<END>'</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1255
|
+
434: <span class="ruby-keyword kw">end</span>
|
|
1256
|
+
435:
|
|
1257
|
+
436: <span class="ruby-identifier">raise</span> <span class="ruby-node">"#{re} matches empty string"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">empty?</span>
|
|
1258
|
+
437: <span class="ruby-comment cmt"># If we have a post processing method, call it now. It may modify</span>
|
|
1259
|
+
438: <span class="ruby-comment cmt"># the type or the found token String.</span>
|
|
1260
|
+
439: <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> = <span class="ruby-identifier">postProc</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">postProc</span>
|
|
1245
1261
|
440:
|
|
1246
|
-
441:
|
|
1247
|
-
442:
|
|
1248
|
-
443:
|
|
1249
|
-
444:
|
|
1250
|
-
445: <span class="ruby-keyword kw">
|
|
1251
|
-
446:
|
|
1252
|
-
447:
|
|
1253
|
-
448:
|
|
1254
|
-
449:
|
|
1255
|
-
450:
|
|
1256
|
-
451:
|
|
1262
|
+
441: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-comment cmt"># Ignore certain tokens with nil type.</span>
|
|
1263
|
+
442:
|
|
1264
|
+
443: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1265
|
+
444: <span class="ruby-keyword kw">end</span>
|
|
1266
|
+
445: <span class="ruby-keyword kw">end</span>
|
|
1267
|
+
446: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ArgumentError</span>
|
|
1268
|
+
447: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'scan_encoding_error'</span>, <span class="ruby-identifier">$!</span>.<span class="ruby-identifier">to_s</span>)
|
|
1269
|
+
448: <span class="ruby-keyword kw">end</span>
|
|
1270
|
+
449:
|
|
1271
|
+
450: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">nil?</span>
|
|
1272
|
+
451: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">eof?</span>
|
|
1273
|
+
452: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unexpected_eof'</span>,
|
|
1274
|
+
453: <span class="ruby-value str">"Unexpected end of file found"</span>)
|
|
1275
|
+
454: <span class="ruby-keyword kw">else</span>
|
|
1276
|
+
455: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_token_match'</span>,
|
|
1277
|
+
456: <span class="ruby-node">"Unexpected characters found: '#{@cf.peek(10)}...'"</span>)
|
|
1278
|
+
457: <span class="ruby-keyword kw">end</span>
|
|
1279
|
+
458: <span class="ruby-keyword kw">end</span>
|
|
1280
|
+
459: <span class="ruby-keyword kw">end</span>
|
|
1281
|
+
460: <span class="ruby-keyword kw">end</span></pre>
|
|
1257
1282
|
</div>
|
|
1258
1283
|
|
|
1259
1284
|
</div>
|
|
@@ -1287,23 +1312,23 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
|
|
|
1287
1312
|
<div class="method-source-code"
|
|
1288
1313
|
id="open-source">
|
|
1289
1314
|
<pre>
|
|
1290
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1315
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 280</span>
|
|
1316
|
+
280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
|
|
1317
|
+
281: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-identifier">fileNameIsBuffer</span>
|
|
1318
|
+
282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
|
|
1319
|
+
283: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>, <span class="ruby-ivar">@log</span>),
|
|
1320
|
+
284: <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
|
|
1321
|
+
285: <span class="ruby-keyword kw">else</span>
|
|
1322
|
+
286: <span class="ruby-keyword kw">begin</span>
|
|
1323
|
+
287: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>, <span class="ruby-ivar">@log</span>),
|
|
1324
|
+
288: <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
|
|
1325
|
+
289: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
1326
|
+
290: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'open_file'</span>, <span class="ruby-node">"Cannot open file #{@masterFile}"</span>)
|
|
1327
|
+
291: <span class="ruby-keyword kw">end</span>
|
|
1328
|
+
292: <span class="ruby-keyword kw">end</span>
|
|
1329
|
+
293: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
|
1330
|
+
294: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1331
|
+
295: <span class="ruby-keyword kw">end</span></pre>
|
|
1307
1332
|
</div>
|
|
1308
1333
|
|
|
1309
1334
|
</div>
|
|
@@ -1337,15 +1362,15 @@ token can be returned before the next nextToken() call.
|
|
|
1337
1362
|
<div class="method-source-code"
|
|
1338
1363
|
id="return-oken-source">
|
|
1339
1364
|
<pre>
|
|
1340
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1365
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 464</span>
|
|
1366
|
+
464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
1367
|
+
465: <span class="ruby-comment cmt">#@log << "-> Returning Token: [#{token[0]}][#{token[1]}]"</span>
|
|
1368
|
+
466: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
1369
|
+
467: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
|
|
1370
|
+
468: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Fatal Error: Cannot return more than 1 token in a row"</span>
|
|
1371
|
+
469: <span class="ruby-keyword kw">end</span>
|
|
1372
|
+
470: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
|
|
1373
|
+
471: <span class="ruby-keyword kw">end</span></pre>
|
|
1349
1374
|
</div>
|
|
1350
1375
|
|
|
1351
1376
|
</div>
|
|
@@ -1379,11 +1404,11 @@ processing prosition.
|
|
|
1379
1404
|
<div class="method-source-code"
|
|
1380
1405
|
id="source-ile-nfo-source">
|
|
1381
1406
|
<pre>
|
|
1382
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1407
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 348</span>
|
|
1408
|
+
348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
1409
|
+
349: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">lineNo</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineDelta</span>, <span class="ruby-value">0</span>) <span class="ruby-operator">:</span>
|
|
1410
|
+
350: <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>)
|
|
1411
|
+
351: <span class="ruby-keyword kw">end</span></pre>
|
|
1387
1412
|
</div>
|
|
1388
1413
|
|
|
1389
1414
|
</div>
|
|
@@ -1414,10 +1439,10 @@ processing prosition.
|
|
|
1414
1439
|
<div class="method-source-code"
|
|
1415
1440
|
id="warning-source">
|
|
1416
1441
|
<pre>
|
|
1417
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1442
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 508</span>
|
|
1443
|
+
508: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">data</span> = <span class="ruby-keyword kw">nil</span>)
|
|
1444
|
+
509: <span class="ruby-identifier">message</span>(<span class="ruby-value">:warning</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">data</span>)
|
|
1445
|
+
510: <span class="ruby-keyword kw">end</span></pre>
|
|
1421
1446
|
</div>
|
|
1422
1447
|
|
|
1423
1448
|
</div>
|
|
@@ -1454,35 +1479,36 @@ processing prosition.
|
|
|
1454
1479
|
<div class="method-source-code"
|
|
1455
1480
|
id="message-source">
|
|
1456
1481
|
<pre>
|
|
1457
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
511:
|
|
1466
|
-
512: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
1467
|
-
513: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
|
|
1468
|
-
514: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
|
|
1469
|
-
515: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span> }
|
|
1470
|
-
516: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>,
|
|
1471
|
-
517: <span class="ruby-node">" ${#{macro.name} #{args.join(' ')}}"</span>,
|
|
1472
|
-
518: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
1473
|
-
519: <span class="ruby-keyword kw">end</span>
|
|
1474
|
-
520: <span class="ruby-keyword kw">end</span>
|
|
1482
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/TextParser/Scanner.rb, line 514</span>
|
|
1483
|
+
514: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">data</span>)
|
|
1484
|
+
515: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
|
1485
|
+
516: <span class="ruby-identifier">line</span> = <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
|
1486
|
+
517: <span class="ruby-identifier">sfi</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
1487
|
+
518:
|
|
1488
|
+
519: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">empty?</span>
|
|
1489
|
+
520: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'Macro call history:'</span>, <span class="ruby-keyword kw">nil</span>)
|
|
1475
1490
|
521:
|
|
1476
|
-
522:
|
|
1477
|
-
523:
|
|
1478
|
-
524:
|
|
1479
|
-
525:
|
|
1480
|
-
526:
|
|
1481
|
-
527:
|
|
1482
|
-
528:
|
|
1483
|
-
529:
|
|
1484
|
-
530:
|
|
1485
|
-
531:
|
|
1491
|
+
522: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">macroStack</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
1492
|
+
523: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
|
|
1493
|
+
524: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">args</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>]
|
|
1494
|
+
525: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span> }
|
|
1495
|
+
526: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>,
|
|
1496
|
+
527: <span class="ruby-node">" ${#{macro.name}#{args.empty? ? '' : ' '}"</span> <span class="ruby-operator">+</span>
|
|
1497
|
+
528: <span class="ruby-node">"#{args.join(' ')}}"</span>,
|
|
1498
|
+
529: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
1499
|
+
530: <span class="ruby-keyword kw">end</span>
|
|
1500
|
+
531: <span class="ruby-keyword kw">end</span>
|
|
1501
|
+
532:
|
|
1502
|
+
533: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
|
|
1503
|
+
534: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:error</span>
|
|
1504
|
+
535: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">data</span>)
|
|
1505
|
+
536: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:warning</span>
|
|
1506
|
+
537: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sfi</span>, <span class="ruby-identifier">line</span>, <span class="ruby-identifier">data</span>)
|
|
1507
|
+
538: <span class="ruby-keyword kw">else</span>
|
|
1508
|
+
539: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown message type #{type}"</span>
|
|
1509
|
+
540: <span class="ruby-keyword kw">end</span>
|
|
1510
|
+
541: <span class="ruby-keyword kw">end</span>
|
|
1511
|
+
542: <span class="ruby-keyword kw">end</span></pre>
|
|
1486
1512
|
</div>
|
|
1487
1513
|
|
|
1488
1514
|
</div>
|