taskjuggler 0.0.6 → 0.0.7
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 +160 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/data/css/tjreport.css +7 -2
- data/doc/AppConfig.html +10 -4
- data/doc/Arguments.html +10 -4
- data/doc/CHANGELOG.html +171 -5
- data/doc/COPYING.html +10 -4
- data/doc/Object.html +11 -107
- data/doc/README.html +10 -4
- data/doc/RuntimeConfig.html +10 -4
- data/doc/String.html +16 -11
- data/doc/StringIO.html +10 -4
- data/doc/TaskJuggler.html +506 -435
- data/doc/TaskJuggler/Account.html +10 -4
- data/doc/TaskJuggler/AccountAttribute.html +10 -4
- data/doc/TaskJuggler/AccountScenario.html +10 -4
- data/doc/TaskJuggler/Allocation.html +69 -60
- data/doc/TaskJuggler/AllocationAttribute.html +10 -4
- data/doc/TaskJuggler/AttributeBase.html +10 -4
- data/doc/TaskJuggler/AttributeDefinition.html +10 -4
- data/doc/TaskJuggler/BatchProcessor.html +202 -192
- data/doc/TaskJuggler/Booking.html +10 -4
- data/doc/TaskJuggler/BookingListAttribute.html +10 -4
- data/doc/TaskJuggler/BooleanAttribute.html +10 -4
- data/doc/TaskJuggler/CSVFile.html +10 -4
- data/doc/TaskJuggler/CellSettingPattern.html +10 -4
- data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
- data/doc/TaskJuggler/Charge.html +10 -4
- data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
- data/doc/TaskJuggler/ChargeSet.html +10 -4
- data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnTable.html +10 -4
- data/doc/TaskJuggler/Daemon.html +71 -52
- data/doc/TaskJuggler/DateAttribute.html +10 -4
- data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
- data/doc/TaskJuggler/DurationAttribute.html +10 -4
- data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
- data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
- data/doc/TaskJuggler/FixnumAttribute.html +10 -4
- data/doc/TaskJuggler/FlagListAttribute.html +10 -4
- data/doc/TaskJuggler/FloatAttribute.html +10 -4
- data/doc/TaskJuggler/FormatListAttribute.html +10 -4
- data/doc/TaskJuggler/GanttChart.html +10 -4
- data/doc/TaskJuggler/GanttContainer.html +14 -8
- data/doc/TaskJuggler/GanttHeader.html +10 -4
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
- data/doc/TaskJuggler/GanttLine.html +29 -24
- data/doc/TaskJuggler/GanttLoadStack.html +10 -4
- data/doc/TaskJuggler/GanttMilestone.html +10 -4
- data/doc/TaskJuggler/GanttRouter.html +10 -4
- data/doc/TaskJuggler/GanttTaskBar.html +20 -10
- data/doc/TaskJuggler/HTMLDocument.html +10 -4
- data/doc/TaskJuggler/HTMLGraphics.html +10 -4
- data/doc/TaskJuggler/Interval.html +10 -4
- data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
- data/doc/TaskJuggler/JobInfo.html +10 -4
- data/doc/TaskJuggler/Journal.html +227 -160
- data/doc/TaskJuggler/JournalEntry.html +10 -4
- data/doc/TaskJuggler/JournalEntryList.html +158 -72
- data/doc/TaskJuggler/KeywordArray.html +21 -9
- data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
- data/doc/TaskJuggler/Limits.html +13 -8
- data/doc/TaskJuggler/Limits/Limit.html +10 -4
- data/doc/TaskJuggler/LimitsAttribute.html +10 -4
- data/doc/TaskJuggler/ListAttributeBase.html +10 -4
- data/doc/TaskJuggler/Log.html +10 -4
- data/doc/TaskJuggler/LogFile.html +10 -4
- data/doc/TaskJuggler/LogicalAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalExpression.html +11 -5
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalFlag.html +10 -4
- data/doc/TaskJuggler/LogicalFunction.html +132 -124
- data/doc/TaskJuggler/LogicalOperation.html +10 -4
- data/doc/TaskJuggler/Macro.html +16 -10
- data/doc/TaskJuggler/MacroTable.html +44 -38
- data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
- data/doc/TaskJuggler/Message.html +92 -68
- data/doc/TaskJuggler/MessageHandler.html +349 -28
- data/doc/TaskJuggler/Navigator.html +10 -4
- data/doc/TaskJuggler/NavigatorElement.html +10 -4
- data/doc/TaskJuggler/NikuProject.html +10 -4
- data/doc/TaskJuggler/NikuReport.html +10 -4
- data/doc/TaskJuggler/NikuResource.html +10 -4
- data/doc/TaskJuggler/NodeListAttribute.html +10 -4
- data/doc/TaskJuggler/OnShiftCache.html +10 -4
- data/doc/TaskJuggler/ProcessIntercom.html +118 -111
- data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
- data/doc/TaskJuggler/Project.html +886 -913
- data/doc/TaskJuggler/ProjectBroker.html +442 -331
- data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
- data/doc/TaskJuggler/ProjectFileParser.html +320 -317
- data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
- data/doc/TaskJuggler/ProjectRecord.html +119 -56
- data/doc/TaskJuggler/ProjectServer.html +282 -237
- data/doc/TaskJuggler/ProjectServerIface.html +45 -39
- data/doc/TaskJuggler/PropertyAttribute.html +10 -4
- data/doc/TaskJuggler/PropertyList.html +177 -173
- data/doc/TaskJuggler/PropertySet.html +11 -5
- data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
- data/doc/TaskJuggler/Query.html +280 -256
- data/doc/TaskJuggler/RTFHandlers.html +10 -4
- data/doc/TaskJuggler/RTFNavigator.html +33 -26
- data/doc/TaskJuggler/RTFQuery.html +135 -169
- data/doc/TaskJuggler/RTFReport.html +63 -56
- data/doc/TaskJuggler/RTFReportLink.html +58 -47
- data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
- data/doc/TaskJuggler/RealFormat.html +10 -4
- data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
- data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
- data/doc/TaskJuggler/Report.html +333 -290
- data/doc/TaskJuggler/ReportBase.html +182 -174
- data/doc/TaskJuggler/ReportContext.html +10 -4
- data/doc/TaskJuggler/ReportServer.html +144 -126
- data/doc/TaskJuggler/ReportServerIface.html +50 -44
- data/doc/TaskJuggler/ReportServerRecord.html +38 -32
- data/doc/TaskJuggler/ReportServlet.html +144 -137
- data/doc/TaskJuggler/ReportTable.html +10 -4
- data/doc/TaskJuggler/ReportTableCell.html +169 -164
- data/doc/TaskJuggler/ReportTableColumn.html +10 -4
- data/doc/TaskJuggler/ReportTableLegend.html +10 -4
- data/doc/TaskJuggler/ReportTableLine.html +10 -4
- data/doc/TaskJuggler/Resource.html +121 -115
- data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
- data/doc/TaskJuggler/ResourceListRE.html +10 -4
- data/doc/TaskJuggler/ResourceScenario.html +13 -7
- data/doc/TaskJuggler/RichText.html +61 -37
- data/doc/TaskJuggler/RichTextAttribute.html +10 -4
- data/doc/TaskJuggler/RichTextDocument.html +91 -81
- data/doc/TaskJuggler/RichTextElement.html +378 -317
- data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
- data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
- data/doc/TaskJuggler/RichTextImage.html +10 -4
- data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
- data/doc/TaskJuggler/RichTextParser.html +48 -40
- data/doc/TaskJuggler/RichTextScanner.html +328 -906
- data/doc/TaskJuggler/RichTextSnip.html +59 -57
- data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
- data/doc/TaskJuggler/Scenario.html +10 -4
- data/doc/TaskJuggler/ScenarioData.html +33 -30
- data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
- data/doc/TaskJuggler/Scoreboard.html +10 -4
- data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
- data/doc/TaskJuggler/SheetReceiver.html +334 -313
- data/doc/TaskJuggler/SheetSender.html +10 -4
- data/doc/TaskJuggler/Shift.html +10 -4
- data/doc/TaskJuggler/ShiftAssignment.html +10 -4
- data/doc/TaskJuggler/ShiftAssignments.html +10 -4
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
- data/doc/TaskJuggler/ShiftScenario.html +10 -4
- data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
- data/doc/TaskJuggler/SortListAttribute.html +10 -4
- data/doc/TaskJuggler/SourceFileInfo.html +10 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
- data/doc/TaskJuggler/StatusSheetReport.html +10 -4
- data/doc/TaskJuggler/StatusSheetSender.html +10 -4
- data/doc/TaskJuggler/StringAttribute.html +10 -4
- data/doc/TaskJuggler/SymbolAttribute.html +10 -4
- data/doc/TaskJuggler/SyntaxReference.html +260 -230
- data/doc/TaskJuggler/TOCEntry.html +99 -42
- data/doc/TaskJuggler/TSResourceRecord.html +10 -4
- data/doc/TaskJuggler/TSTaskRecord.html +10 -4
- data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
- data/doc/TaskJuggler/TableOfContents.html +54 -12
- data/doc/TaskJuggler/TableReport.html +877 -872
- data/doc/TaskJuggler/Task.html +117 -68
- data/doc/TaskJuggler/TaskDependency.html +10 -4
- data/doc/TaskJuggler/TaskListAttribute.html +10 -4
- data/doc/TaskJuggler/TaskListRE.html +10 -4
- data/doc/TaskJuggler/TaskScenario.html +1681 -1563
- data/doc/TaskJuggler/TextFormatter.html +10 -4
- data/doc/TaskJuggler/TextParser.html +567 -534
- data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
- data/doc/TaskJuggler/TextParser/Rule.html +26 -15
- data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
- data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
- data/doc/TaskJuggler/TextReport.html +15 -6
- data/doc/TaskJuggler/TextScanner.html +319 -287
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +138 -175
- data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
- data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
- data/doc/TaskJuggler/TimeSheetReport.html +47 -42
- data/doc/TaskJuggler/TimeSheetSender.html +10 -4
- data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
- data/doc/TaskJuggler/TimeSheets.html +22 -16
- data/doc/TaskJuggler/Tj3AppBase.html +10 -4
- data/doc/TaskJuggler/Tj3Client.html +399 -365
- data/doc/TaskJuggler/Tj3Daemon.html +107 -94
- data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
- data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3SsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3TsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
- data/doc/TaskJuggler/TjException.html +10 -4
- data/doc/TaskJuggler/TjTime.html +145 -140
- data/doc/TaskJuggler/TjpExample.html +10 -4
- data/doc/TaskJuggler/TjpExportRE.html +122 -118
- data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
- data/doc/TaskJuggler/URLParameter.html +10 -4
- data/doc/TaskJuggler/UserManual.html +162 -155
- data/doc/TaskJuggler/VimSyntax.html +1028 -0
- data/doc/TaskJuggler/WebServer.html +45 -27
- data/doc/TaskJuggler/WorkingHours.html +10 -4
- data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
- data/doc/TaskJuggler/XMLBlob.html +10 -4
- data/doc/TaskJuggler/XMLComment.html +10 -4
- data/doc/TaskJuggler/XMLDocument.html +10 -4
- data/doc/TaskJuggler/XMLElement.html +10 -4
- data/doc/TaskJuggler/XMLNamedText.html +10 -4
- data/doc/TaskJuggler/XMLText.html +10 -4
- data/doc/index.html +735 -677
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +1 -1
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +1 -1
- data/doc/lib/LogFile_rb.html +1 -1
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +1 -1
- data/doc/lib/LogicalOperation_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -3
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +4 -2
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/PropertySet_rb.html +1 -1
- data/doc/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RTFHandlers_rb.html +1 -1
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +2 -2
- data/doc/lib/RTFReportLink_rb.html +4 -2
- data/doc/lib/RTFReport_rb.html +1 -1
- data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +1 -1
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +3 -1
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +3 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +5 -1
- data/doc/lib/SheetReceiver_rb.html +3 -1
- data/doc/lib/SheetSender_rb.html +1 -1
- data/doc/lib/ShiftAssignments_rb.html +1 -1
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SimpleQueryExpander_rb.html +67 -0
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +1 -1
- data/doc/lib/Task_rb.html +1 -1
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +1 -1
- data/doc/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +3 -1
- data/doc/lib/TextScanner_rb.html +1 -3
- data/doc/lib/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/TimeSheetSender_rb.html +1 -1
- data/doc/lib/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/TimeSheets_rb.html +1 -1
- data/doc/lib/Tj3AppBase_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/URLParameter_rb.html +1 -1
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +1 -1
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -3
- data/doc/lib/daemon/WebServer_rb.html +1 -1
- data/doc/lib/deep_copy_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/NikuReport_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportContext_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/taskjuggler3_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/Allocation.rb +8 -5
- data/lib/BatchProcessor.rb +7 -3
- data/lib/FileList.rb +58 -0
- data/lib/Journal.rb +73 -33
- data/lib/KeywordArray.rb +4 -0
- data/lib/KeywordDocumentation.rb +45 -11
- data/lib/Limits.rb +0 -1
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalFunction.rb +14 -12
- data/lib/MacroTable.rb +3 -4
- data/lib/MessageHandler.rb +136 -7
- data/lib/Project.rb +72 -86
- data/lib/ProjectFileParser.rb +30 -33
- data/lib/ProjectFileScanner.rb +7 -16
- data/lib/PropertyList.rb +25 -27
- data/lib/PropertySet.rb +1 -1
- data/lib/PropertyTreeNode.rb +9 -12
- data/lib/Query.rb +5 -4
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +4 -11
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +10 -4
- data/lib/RTFWithQuerySupport.rb +45 -0
- data/lib/Resource.rb +20 -20
- data/lib/ResourceScenario.rb +3 -3
- data/lib/RichText.rb +15 -7
- data/lib/RichTextDocument.rb +8 -4
- data/lib/RichTextElement.rb +35 -12
- data/lib/RichTextFunctionHandler.rb +11 -12
- data/lib/RichTextParser.rb +5 -3
- data/lib/RichTextScanner.rb +144 -565
- data/lib/RichTextSnip.rb +3 -7
- data/lib/RichTextSyntaxRules.rb +51 -32
- data/lib/ScenarioData.rb +16 -25
- data/lib/SheetHandlerBase.rb +59 -2
- data/lib/SheetReceiver.rb +36 -18
- data/lib/SimpleQueryExpander.rb +58 -0
- data/lib/SyntaxReference.rb +9 -5
- data/lib/TOCEntry.rb +2 -0
- data/lib/TableOfContents.rb +4 -0
- data/lib/Task.rb +23 -12
- data/lib/TaskJuggler.rb +72 -33
- data/lib/TaskScenario.rb +131 -53
- data/lib/TextParser.rb +43 -30
- data/lib/TextParser/Pattern.rb +17 -13
- data/lib/TextParser/Rule.rb +5 -0
- data/lib/TextScanner.rb +46 -25
- data/lib/TimeSheetSummary.rb +9 -7
- data/lib/TimeSheets.rb +14 -23
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +1 -2
- data/lib/TjpSyntaxRules.rb +128 -104
- data/lib/UTF8String.rb +0 -1
- data/lib/UserManual.rb +5 -4
- data/lib/VimSyntax.rb +223 -0
- data/lib/daemon/Daemon.rb +9 -0
- data/lib/daemon/ProcessIntercom.rb +19 -4
- data/lib/daemon/ProjectBroker.rb +149 -68
- data/lib/daemon/ProjectServer.rb +119 -79
- data/lib/daemon/ReportServer.rb +42 -31
- data/lib/daemon/WebServer.rb +21 -2
- data/lib/deep_copy.rb +1 -1
- data/lib/reports/GanttContainer.rb +2 -2
- data/lib/reports/GanttLine.rb +2 -3
- data/lib/reports/GanttTaskBar.rb +7 -3
- data/lib/reports/Report.rb +62 -57
- data/lib/reports/ReportBase.rb +6 -4
- data/lib/reports/ReportTableCell.rb +13 -14
- data/lib/reports/TableReport.rb +2 -1
- data/lib/reports/TextReport.rb +3 -0
- data/lib/reports/TimeSheetReport.rb +2 -3
- data/lib/reports/TjpExportRE.rb +0 -2
- data/lib/tj3client.rb +31 -3
- data/lib/tj3d.rb +8 -1
- data/manual/Day_To_Day_Juggling +2 -95
- data/manual/How_To_Contribute +2 -1
- data/manual/Rich_Text_Attributes +37 -3
- data/manual/Software +203 -0
- data/test/MessageChecker.rb +4 -4
- data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
- 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 +14 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
- data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
- data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
- data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
- data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
- data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
- data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/StatusSheets/resrep.tji +7 -0
- data/test/TestSuite/StatusSheets/run +6 -4
- data/test/TestSuite/StatusSheets/tj3d.log +312 -0
- data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
- data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/run +6 -5
- data/test/TestSuite/TimeSheets/statussheets.log +1 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_PropertySet.rb +2 -2
- data/test/test_RichText.rb +178 -387
- data/test/test_SimpleQueryExpander.rb +55 -0
- data/test/test_deep_copy.rb +2 -2
- metadata +854 -834
- data/lib/MacroParser.rb +0 -77
- data/lib/Message.rb +0 -56
- data/lib/ruby-signal-bug.rb +0 -43
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- 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/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
|
@@ -165,6 +165,10 @@
|
|
|
165
165
|
|
|
166
166
|
<li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
167
167
|
|
|
168
|
+
<li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
169
|
+
|
|
170
|
+
<li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
171
|
+
|
|
168
172
|
<li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
169
173
|
|
|
170
174
|
<li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -237,8 +241,6 @@
|
|
|
237
241
|
|
|
238
242
|
<li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
239
243
|
|
|
240
|
-
<li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
241
|
-
|
|
242
244
|
<li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
243
245
|
|
|
244
246
|
<li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -303,6 +305,8 @@
|
|
|
303
305
|
|
|
304
306
|
<li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
305
307
|
|
|
308
|
+
<li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
309
|
+
|
|
306
310
|
<li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
307
311
|
|
|
308
312
|
<li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -349,8 +353,6 @@
|
|
|
349
353
|
|
|
350
354
|
<li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
351
355
|
|
|
352
|
-
<li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
353
|
-
|
|
354
356
|
<li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
355
357
|
|
|
356
358
|
<li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -391,6 +393,8 @@
|
|
|
391
393
|
|
|
392
394
|
<li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
393
395
|
|
|
396
|
+
<li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
397
|
+
|
|
394
398
|
<li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
395
399
|
|
|
396
400
|
<li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -501,6 +505,8 @@
|
|
|
501
505
|
|
|
502
506
|
<li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
503
507
|
|
|
508
|
+
<li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
509
|
+
|
|
504
510
|
<li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
505
511
|
|
|
506
512
|
<li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -582,10 +588,10 @@ containing the results of a repeatable rule.
|
|
|
582
588
|
<div class="method-source-code"
|
|
583
589
|
id="new-source">
|
|
584
590
|
<pre>
|
|
585
|
-
<span class="ruby-comment cmt"># File lib/TextParser.rb, line
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
591
|
+
<span class="ruby-comment cmt"># File lib/TextParser.rb, line 50</span>
|
|
592
|
+
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
593
|
+
51: <span class="ruby-keyword kw">super</span>
|
|
594
|
+
52: <span class="ruby-keyword kw">end</span></pre>
|
|
589
595
|
</div>
|
|
590
596
|
|
|
591
597
|
</div>
|
|
@@ -627,14 +633,14 @@ Array.
|
|
|
627
633
|
<div class="method-source-code"
|
|
628
634
|
id="--source">
|
|
629
635
|
<pre>
|
|
630
|
-
<span class="ruby-comment cmt"># File lib/TextParser.rb, line
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
636
|
+
<span class="ruby-comment cmt"># File lib/TextParser.rb, line 58</span>
|
|
637
|
+
58: <span class="ruby-keyword kw">def</span> <span class="ruby-operator"><<</span>(<span class="ruby-identifier">arg</span>)
|
|
638
|
+
59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">TextParserResultArray</span>)
|
|
639
|
+
60: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">arg</span>)
|
|
640
|
+
61: <span class="ruby-keyword kw">else</span>
|
|
641
|
+
62: <span class="ruby-keyword kw">super</span>
|
|
642
|
+
63: <span class="ruby-keyword kw">end</span>
|
|
643
|
+
64: <span class="ruby-keyword kw">end</span></pre>
|
|
638
644
|
</div>
|
|
639
645
|
|
|
640
646
|
</div>
|
|
@@ -163,6 +163,10 @@
|
|
|
163
163
|
|
|
164
164
|
<li><a href="../../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
165
165
|
|
|
166
|
+
<li><a href="../../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
167
|
+
|
|
168
|
+
<li><a href="../../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
169
|
+
|
|
166
170
|
<li><a href="../../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
167
171
|
|
|
168
172
|
<li><a href="../../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -235,8 +239,6 @@
|
|
|
235
239
|
|
|
236
240
|
<li><a href="../../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
237
241
|
|
|
238
|
-
<li><a href="../../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
239
|
-
|
|
240
242
|
<li><a href="../../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
241
243
|
|
|
242
244
|
<li><a href="../../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -301,6 +303,8 @@
|
|
|
301
303
|
|
|
302
304
|
<li><a href="../../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
303
305
|
|
|
306
|
+
<li><a href="../../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
307
|
+
|
|
304
308
|
<li><a href="../../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
305
309
|
|
|
306
310
|
<li><a href="../../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -347,8 +351,6 @@
|
|
|
347
351
|
|
|
348
352
|
<li><a href="../../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
349
353
|
|
|
350
|
-
<li><a href="../../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
351
|
-
|
|
352
354
|
<li><a href="../../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
353
355
|
|
|
354
356
|
<li><a href="../../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -389,6 +391,8 @@
|
|
|
389
391
|
|
|
390
392
|
<li><a href="../../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
391
393
|
|
|
394
|
+
<li><a href="../../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
395
|
+
|
|
392
396
|
<li><a href="../../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
393
397
|
|
|
394
398
|
<li><a href="../../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -499,6 +503,8 @@
|
|
|
499
503
|
|
|
500
504
|
<li><a href="../../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
501
505
|
|
|
506
|
+
<li><a href="../../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
507
|
+
|
|
502
508
|
<li><a href="../../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
503
509
|
|
|
504
510
|
<li><a href="../../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -169,6 +169,10 @@
|
|
|
169
169
|
|
|
170
170
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
171
171
|
|
|
172
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
173
|
+
|
|
174
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
175
|
+
|
|
172
176
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
173
177
|
|
|
174
178
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -241,8 +245,6 @@
|
|
|
241
245
|
|
|
242
246
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
243
247
|
|
|
244
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
245
|
-
|
|
246
248
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
247
249
|
|
|
248
250
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -307,6 +309,8 @@
|
|
|
307
309
|
|
|
308
310
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
309
311
|
|
|
312
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
313
|
+
|
|
310
314
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
311
315
|
|
|
312
316
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -353,8 +357,6 @@
|
|
|
353
357
|
|
|
354
358
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
355
359
|
|
|
356
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
357
|
-
|
|
358
360
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
359
361
|
|
|
360
362
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -395,6 +397,8 @@
|
|
|
395
397
|
|
|
396
398
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
397
399
|
|
|
400
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
401
|
+
|
|
398
402
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
399
403
|
|
|
400
404
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -505,6 +509,8 @@
|
|
|
505
509
|
|
|
506
510
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
507
511
|
|
|
512
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
513
|
+
|
|
508
514
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
509
515
|
|
|
510
516
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -785,8 +791,11 @@ footer and a central text with margin elements left and right.
|
|
|
785
791
|
<pre>
|
|
786
792
|
<span class="ruby-comment cmt"># File lib/reports/TextReport.rb, line 89</span>
|
|
787
793
|
89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_csv</span>
|
|
788
|
-
90: <span class="ruby-
|
|
789
|
-
91:
|
|
794
|
+
90: <span class="ruby-ivar">@report</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'text_report_no_csv'</span>,
|
|
795
|
+
91: <span class="ruby-node">"textreport '#{@report.fullId}' cannot be converted "</span> <span class="ruby-operator">+</span>
|
|
796
|
+
92: <span class="ruby-value str">"into CSV format"</span>)
|
|
797
|
+
93: <span class="ruby-keyword kw">nil</span>
|
|
798
|
+
94: <span class="ruby-keyword kw">end</span></pre>
|
|
790
799
|
</div>
|
|
791
800
|
|
|
792
801
|
</div>
|
|
@@ -208,6 +208,10 @@
|
|
|
208
208
|
|
|
209
209
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
210
210
|
|
|
211
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
212
|
+
|
|
213
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
214
|
+
|
|
211
215
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
212
216
|
|
|
213
217
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -280,8 +284,6 @@
|
|
|
280
284
|
|
|
281
285
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
282
286
|
|
|
283
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
284
|
-
|
|
285
287
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
286
288
|
|
|
287
289
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -346,6 +348,8 @@
|
|
|
346
348
|
|
|
347
349
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
348
350
|
|
|
351
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
352
|
+
|
|
349
353
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
350
354
|
|
|
351
355
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -392,8 +396,6 @@
|
|
|
392
396
|
|
|
393
397
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
394
398
|
|
|
395
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
396
|
-
|
|
397
399
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
398
400
|
|
|
399
401
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -434,6 +436,8 @@
|
|
|
434
436
|
|
|
435
437
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
436
438
|
|
|
439
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
440
|
+
|
|
437
441
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
438
442
|
|
|
439
443
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -544,6 +548,8 @@
|
|
|
544
548
|
|
|
545
549
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
546
550
|
|
|
551
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
552
|
+
|
|
547
553
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
548
554
|
|
|
549
555
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -616,7 +622,7 @@ Strings or Files.
|
|
|
616
622
|
<div class="method-heading">
|
|
617
623
|
|
|
618
624
|
<span class="method-name">new</span><span
|
|
619
|
-
class="method-args">(masterFile, messageHandler)</span>
|
|
625
|
+
class="method-args">(masterFile, messageHandler, tokenPatterns, defaultMode)</span>
|
|
620
626
|
<span class="method-click-advice">click to toggle source</span>
|
|
621
627
|
|
|
622
628
|
</div>
|
|
@@ -637,37 +643,46 @@ messages.
|
|
|
637
643
|
<div class="method-source-code"
|
|
638
644
|
id="new-source">
|
|
639
645
|
<pre>
|
|
640
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
646
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 186</span>
|
|
647
|
+
186: <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">tokenPatterns</span>, <span class="ruby-identifier">defaultMode</span>)
|
|
648
|
+
187: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
|
|
649
|
+
188: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
650
|
+
189: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
|
|
651
|
+
190: <span class="ruby-comment cmt"># text.</span>
|
|
652
|
+
191: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
|
|
653
|
+
192: <span class="ruby-comment cmt"># The currently processed IO object.</span>
|
|
654
|
+
193: <span class="ruby-ivar">@cf</span> = <span class="ruby-keyword kw">nil</span>
|
|
655
|
+
194: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
|
|
656
|
+
195: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 2 elements, the IO object and</span>
|
|
657
|
+
196: <span class="ruby-comment cmt"># the @tokenBuffer.</span>
|
|
658
|
+
197: <span class="ruby-ivar">@fileStack</span> = []
|
|
659
|
+
198: <span class="ruby-comment cmt"># This flag is set if we have reached the end of a file. Since we will</span>
|
|
660
|
+
199: <span class="ruby-comment cmt"># only know when the next new token is requested that the file is really</span>
|
|
661
|
+
200: <span class="ruby-comment cmt"># done now, we have to use this flag.</span>
|
|
662
|
+
201: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
663
|
+
202: <span class="ruby-comment cmt"># True if the scanner operates on a buffer.</span>
|
|
664
|
+
203: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>
|
|
665
|
+
204: <span class="ruby-comment cmt"># A SourceFileInfo of the start of the currently processed token.</span>
|
|
666
|
+
205: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-keyword kw">nil</span>
|
|
667
|
+
206: <span class="ruby-comment cmt"># Line number correction for error messages.</span>
|
|
668
|
+
207: <span class="ruby-ivar">@lineDelta</span> = <span class="ruby-value">0</span>
|
|
669
|
+
208: <span class="ruby-comment cmt"># Lists of regexps that describe the detectable tokens. The Arrays are</span>
|
|
670
|
+
209: <span class="ruby-comment cmt"># grouped by mode.</span>
|
|
671
|
+
210: <span class="ruby-ivar">@patternsByMode</span> = { }
|
|
672
|
+
211: <span class="ruby-comment cmt"># The currently active scanner mode.</span>
|
|
673
|
+
212: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-keyword kw">nil</span>
|
|
674
|
+
213: <span class="ruby-comment cmt"># Points to the currently active pattern set as defined by the mode.</span>
|
|
675
|
+
214: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-keyword kw">nil</span>
|
|
676
|
+
215:
|
|
677
|
+
216: <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>
|
|
678
|
+
217: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">0</span>]
|
|
679
|
+
218: <span class="ruby-identifier">regExp</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">1</span>]
|
|
680
|
+
219: <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>
|
|
681
|
+
220: <span class="ruby-identifier">postProc</span> = <span class="ruby-identifier">pat</span>[<span class="ruby-value">3</span>]
|
|
682
|
+
221: <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>)
|
|
683
|
+
222: <span class="ruby-keyword kw">end</span>
|
|
684
|
+
223: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-identifier">defaultMode</span>
|
|
685
|
+
224: <span class="ruby-keyword kw">end</span></pre>
|
|
671
686
|
</div>
|
|
672
687
|
|
|
673
688
|
</div>
|
|
@@ -706,10 +721,10 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
|
|
|
706
721
|
<div class="method-source-code"
|
|
707
722
|
id="add-acro-source">
|
|
708
723
|
<pre>
|
|
709
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
724
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 436</span>
|
|
725
|
+
436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
|
|
726
|
+
437: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
|
|
727
|
+
438: <span class="ruby-keyword kw">end</span></pre>
|
|
713
728
|
</div>
|
|
714
729
|
|
|
715
730
|
</div>
|
|
@@ -750,20 +765,20 @@ href="../String.html">String</a> and returns them again in an Array.
|
|
|
750
765
|
<div class="method-source-code"
|
|
751
766
|
id="add-attern-source">
|
|
752
767
|
<pre>
|
|
753
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
768
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 234</span>
|
|
769
|
+
234: <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>)
|
|
770
|
+
235: <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>)
|
|
771
|
+
236: <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>
|
|
772
|
+
237: <span class="ruby-comment cmt"># The pattern is active in multiple modes</span>
|
|
773
|
+
238: <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>)
|
|
774
|
+
239: <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> ]
|
|
775
|
+
240: <span class="ruby-keyword kw">end</span>
|
|
776
|
+
241: <span class="ruby-keyword kw">else</span>
|
|
777
|
+
242: <span class="ruby-comment cmt"># The pattern is only active in one specific mode.</span>
|
|
778
|
+
243: <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>)
|
|
779
|
+
244: <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> ]
|
|
780
|
+
245: <span class="ruby-keyword kw">end</span>
|
|
781
|
+
246: <span class="ruby-keyword kw">end</span></pre>
|
|
767
782
|
</div>
|
|
768
783
|
|
|
769
784
|
</div>
|
|
@@ -796,15 +811,15 @@ Finish processing and reset all data structures.
|
|
|
796
811
|
<div class="method-source-code"
|
|
797
812
|
id="close-source">
|
|
798
813
|
<pre>
|
|
799
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
814
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 276</span>
|
|
815
|
+
276: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
|
816
|
+
277: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@fileNameIsBuffer</span>
|
|
817
|
+
278: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Reading file #{@masterFile}"</span>)
|
|
818
|
+
279: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
819
|
+
280: <span class="ruby-keyword kw">end</span>
|
|
820
|
+
281: <span class="ruby-ivar">@fileStack</span> = []
|
|
821
|
+
282: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
822
|
+
283: <span class="ruby-keyword kw">end</span></pre>
|
|
808
823
|
</div>
|
|
809
824
|
|
|
810
825
|
</div>
|
|
@@ -821,7 +836,7 @@ Finish processing and reset all data structures.
|
|
|
821
836
|
<div class="method-heading">
|
|
822
837
|
|
|
823
838
|
<span class="method-name">error</span><span
|
|
824
|
-
class="method-args">(id, text,
|
|
839
|
+
class="method-args">(id, text, sfi = nil, data = nil)</span>
|
|
825
840
|
<span class="method-click-advice">click to toggle source</span>
|
|
826
841
|
|
|
827
842
|
</div>
|
|
@@ -837,10 +852,10 @@ Call this function to report any errors related to the parsed input.
|
|
|
837
852
|
<div class="method-source-code"
|
|
838
853
|
id="error-source">
|
|
839
854
|
<pre>
|
|
840
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
855
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 465</span>
|
|
856
|
+
465: <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>)
|
|
857
|
+
466: <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>)
|
|
858
|
+
467: <span class="ruby-keyword kw">end</span></pre>
|
|
844
859
|
</div>
|
|
845
860
|
|
|
846
861
|
</div>
|
|
@@ -876,17 +891,21 @@ is the macro name, the rest are the parameters.
|
|
|
876
891
|
<div class="method-source-code"
|
|
877
892
|
id="expand-acro-source">
|
|
878
893
|
<pre>
|
|
879
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
894
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 449</span>
|
|
895
|
+
449: <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>)
|
|
896
|
+
450: <span class="ruby-comment cmt"># Get the expanded macro from the @macroTable.</span>
|
|
897
|
+
451: <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>)
|
|
898
|
+
452: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">macro</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">text</span>
|
|
899
|
+
453: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'undefined_macro'</span>, <span class="ruby-node">"Undefined macro '#{args[0]}' called"</span>)
|
|
900
|
+
454: <span class="ruby-keyword kw">end</span>
|
|
901
|
+
455:
|
|
902
|
+
456: <span class="ruby-comment cmt"># If the expanded macro is empty, we can ignore it.</span>
|
|
903
|
+
457: <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>
|
|
904
|
+
458:
|
|
905
|
+
459: <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>)
|
|
906
|
+
460: <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>)
|
|
907
|
+
461: <span class="ruby-keyword kw">end</span>
|
|
908
|
+
462: <span class="ruby-keyword kw">end</span></pre>
|
|
890
909
|
</div>
|
|
891
910
|
|
|
892
911
|
</div>
|
|
@@ -920,10 +939,10 @@ text buffer, the text will be returned.
|
|
|
920
939
|
<div class="method-source-code"
|
|
921
940
|
id="file-ame-source">
|
|
922
941
|
<pre>
|
|
923
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
942
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 332</span>
|
|
943
|
+
332: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
|
|
944
|
+
333: <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>
|
|
945
|
+
334: <span class="ruby-keyword kw">end</span></pre>
|
|
927
946
|
</div>
|
|
928
947
|
|
|
929
948
|
</div>
|
|
@@ -950,7 +969,8 @@ text buffer, the text will be returned.
|
|
|
950
969
|
<p>
|
|
951
970
|
Continue processing with a new file specified by <em>includeFileName</em>.
|
|
952
971
|
When this file is finished, we will continue in the old file after the
|
|
953
|
-
location where we started with the new file.
|
|
972
|
+
location where we started with the new file. The method returns the full
|
|
973
|
+
qualified name of the included file.
|
|
954
974
|
</p>
|
|
955
975
|
|
|
956
976
|
|
|
@@ -958,39 +978,41 @@ location where we started with the new file.
|
|
|
958
978
|
<div class="method-source-code"
|
|
959
979
|
id="include-source">
|
|
960
980
|
<pre>
|
|
961
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
287: <span class="ruby-keyword kw">end</span>
|
|
970
|
-
288:
|
|
971
|
-
289: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
|
|
972
|
-
290: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
|
|
973
|
-
291: <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>
|
|
974
|
-
292: <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>
|
|
975
|
-
293: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
|
|
976
|
-
294: <span class="ruby-node">"Recursive inclusion of #{includeFileName} detected"</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span>)
|
|
977
|
-
295: <span class="ruby-keyword kw">end</span>
|
|
981
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 289</span>
|
|
982
|
+
289: <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>)
|
|
983
|
+
290: <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>
|
|
984
|
+
291: <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>
|
|
985
|
+
292: <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>
|
|
986
|
+
293: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
|
|
987
|
+
294: <span class="ruby-comment cmt"># name relative to the including file.</span>
|
|
988
|
+
295: <span class="ruby-identifier">includeFileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">includeFileName</span>
|
|
978
989
|
296: <span class="ruby-keyword kw">end</span>
|
|
979
990
|
297:
|
|
980
|
-
298: <span class="ruby-comment cmt">#
|
|
981
|
-
299: <span class="ruby-
|
|
982
|
-
300: <span class="ruby-ivar">@
|
|
983
|
-
301:
|
|
984
|
-
302:
|
|
985
|
-
303:
|
|
986
|
-
304:
|
|
987
|
-
305:
|
|
988
|
-
306:
|
|
989
|
-
307: <span class="ruby-
|
|
990
|
-
308:
|
|
991
|
-
309:
|
|
992
|
-
310: <span class="ruby-keyword kw">
|
|
993
|
-
311:
|
|
991
|
+
298: <span class="ruby-comment cmt"># Try to dectect recursive inclusions. This will not work if files are</span>
|
|
992
|
+
299: <span class="ruby-comment cmt"># accessed via filesystem links.</span>
|
|
993
|
+
300: <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>
|
|
994
|
+
301: <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>
|
|
995
|
+
302: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>,
|
|
996
|
+
303: <span class="ruby-node">"Recursive inclusion of #{includeFileName} detected"</span>, <span class="ruby-identifier">sfi</span>)
|
|
997
|
+
304: <span class="ruby-keyword kw">end</span>
|
|
998
|
+
305: <span class="ruby-keyword kw">end</span>
|
|
999
|
+
306:
|
|
1000
|
+
307: <span class="ruby-comment cmt"># Save @tokenBuffer in the record of the parent file.</span>
|
|
1001
|
+
308: <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>
|
|
1002
|
+
309: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1003
|
+
310: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
1004
|
+
311:
|
|
1005
|
+
312: <span class="ruby-comment cmt"># Open the new file and push the handle on the @fileStack.</span>
|
|
1006
|
+
313: <span class="ruby-keyword kw">begin</span>
|
|
1007
|
+
314: <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-keyword kw">nil</span>, ]
|
|
1008
|
+
315: <span class="ruby-constant">Log</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Parsing file #{includeFileName}"</span>
|
|
1009
|
+
316: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
1010
|
+
317: <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>)
|
|
1011
|
+
318: <span class="ruby-keyword kw">end</span>
|
|
1012
|
+
319:
|
|
1013
|
+
320: <span class="ruby-comment cmt"># Return the name of the included file.</span>
|
|
1014
|
+
321: <span class="ruby-identifier">includeFileName</span>
|
|
1015
|
+
322: <span class="ruby-keyword kw">end</span></pre>
|
|
994
1016
|
</div>
|
|
995
1017
|
|
|
996
1018
|
</div>
|
|
@@ -1024,66 +1046,10 @@ added already.
|
|
|
1024
1046
|
<div class="method-source-code"
|
|
1025
1047
|
id="macro-efined--source">
|
|
1026
1048
|
<pre>
|
|
1027
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
</div>
|
|
1032
|
-
|
|
1033
|
-
</div>
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
</div>
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
<div id="message-method" class="method-detail ">
|
|
1042
|
-
<a name="method-i-message"></a>
|
|
1043
|
-
|
|
1044
|
-
<div class="method-heading">
|
|
1045
|
-
|
|
1046
|
-
<span class="method-name">message</span><span
|
|
1047
|
-
class="method-args">(type, id, text, property, sfi)</span>
|
|
1048
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1049
|
-
|
|
1050
|
-
</div>
|
|
1051
|
-
|
|
1052
|
-
<div class="method-description">
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
<div class="method-source-code"
|
|
1059
|
-
id="message-source">
|
|
1060
|
-
<pre>
|
|
1061
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 457</span>
|
|
1062
|
-
457: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>, <span class="ruby-identifier">sfi</span>)
|
|
1063
|
-
458: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
|
1064
|
-
459: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_s</span>,
|
|
1065
|
-
460: <span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sfi</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">sourceFileInfo</span>)
|
|
1066
|
-
461: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
1067
|
-
462:
|
|
1068
|
-
463: <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>
|
|
1069
|
-
464: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'Macro call history:'</span>)
|
|
1070
|
-
465: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
1071
|
-
466:
|
|
1072
|
-
467: <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>
|
|
1073
|
-
468: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
|
|
1074
|
-
469: <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>]
|
|
1075
|
-
470: <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> }
|
|
1076
|
-
471: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
|
|
1077
|
-
472: <span class="ruby-node">" ${#{macro.name} #{args.join(' ')}}"</span>,
|
|
1078
|
-
473: <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
1079
|
-
474: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
1080
|
-
475: <span class="ruby-keyword kw">end</span>
|
|
1081
|
-
476: <span class="ruby-keyword kw">end</span>
|
|
1082
|
-
477: <span class="ruby-keyword kw">end</span>
|
|
1083
|
-
478:
|
|
1084
|
-
479: <span class="ruby-comment cmt"># An empty strings signals an already reported error</span>
|
|
1085
|
-
480: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'error'</span>
|
|
1086
|
-
481: <span class="ruby-keyword kw">end</span></pre>
|
|
1049
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 441</span>
|
|
1050
|
+
441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
|
|
1051
|
+
442: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
|
|
1052
|
+
443: <span class="ruby-keyword kw">end</span></pre>
|
|
1087
1053
|
</div>
|
|
1088
1054
|
|
|
1089
1055
|
</div>
|
|
@@ -1117,13 +1083,13 @@ pattens of that <em>newMode</em>.
|
|
|
1117
1083
|
<div class="method-source-code"
|
|
1118
1084
|
id="mode--source">
|
|
1119
1085
|
<pre>
|
|
1120
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1086
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 250</span>
|
|
1087
|
+
250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mode=</span>(<span class="ruby-identifier">newMode</span>)
|
|
1088
|
+
251: <span class="ruby-comment cmt">#puts "**** New mode: #{newMode}"</span>
|
|
1089
|
+
252: <span class="ruby-ivar">@activePatterns</span> = <span class="ruby-ivar">@patternsByMode</span>[<span class="ruby-identifier">newMode</span>]
|
|
1090
|
+
253: <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>
|
|
1091
|
+
254: <span class="ruby-ivar">@scannerMode</span> = <span class="ruby-identifier">newMode</span>
|
|
1092
|
+
255: <span class="ruby-keyword kw">end</span></pre>
|
|
1127
1093
|
</div>
|
|
1128
1094
|
|
|
1129
1095
|
</div>
|
|
@@ -1159,78 +1125,79 @@ started.
|
|
|
1159
1125
|
<div class="method-source-code"
|
|
1160
1126
|
id="next-oken-source">
|
|
1161
1127
|
<pre>
|
|
1162
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
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
|
-
396: <span class="ruby-keyword kw">rescue</span>
|
|
1220
|
-
397: <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>)
|
|
1221
|
-
398: <span class="ruby-keyword kw">end</span>
|
|
1222
|
-
399:
|
|
1223
|
-
400: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">nil?</span>
|
|
1224
|
-
401: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">eof?</span>
|
|
1225
|
-
402: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unexpected_eof'</span>,
|
|
1226
|
-
403: <span class="ruby-value str">"Unexpected end of file found"</span>)
|
|
1227
|
-
404: <span class="ruby-keyword kw">else</span>
|
|
1228
|
-
405: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_token_match'</span>,
|
|
1229
|
-
406: <span class="ruby-node">"Unexpected characters found: '#{@cf.peek(10)}...'"</span>)
|
|
1128
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 351</span>
|
|
1129
|
+
351: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
1130
|
+
352: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
|
|
1131
|
+
353: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
1132
|
+
354: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
|
|
1133
|
+
355: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1134
|
+
356: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
|
|
1135
|
+
357: <span class="ruby-keyword kw">end</span>
|
|
1136
|
+
358:
|
|
1137
|
+
359: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@finishLastFile</span>
|
|
1138
|
+
360: <span class="ruby-comment cmt"># The previously processed file has now really been processed to</span>
|
|
1139
|
+
361: <span class="ruby-comment cmt"># completion. Close it and remove the corresponding entry from the</span>
|
|
1140
|
+
362: <span class="ruby-comment cmt"># @fileStack.</span>
|
|
1141
|
+
363: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">false</span>
|
|
1142
|
+
364: <span class="ruby-comment cmt">#Log << "Completed file #{@cf.fileName}"</span>
|
|
1143
|
+
365: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">close</span>
|
|
1144
|
+
366: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">pop</span>
|
|
1145
|
+
367:
|
|
1146
|
+
368: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
|
|
1147
|
+
369: <span class="ruby-comment cmt"># We are done with the top-level file now.</span>
|
|
1148
|
+
370: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1149
|
+
371: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
|
|
1150
|
+
372: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1151
|
+
373: <span class="ruby-keyword kw">else</span>
|
|
1152
|
+
374: <span class="ruby-comment cmt"># Continue parsing the file that included the current file.</span>
|
|
1153
|
+
375: <span class="ruby-ivar">@cf</span>, <span class="ruby-identifier">tokenBuffer</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>
|
|
1154
|
+
376: <span class="ruby-constant">Log</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"Parsing file #{@cf.fileName} ..."</span>
|
|
1155
|
+
377: <span class="ruby-comment cmt"># If we have a left over token from previously processing this file,</span>
|
|
1156
|
+
378: <span class="ruby-comment cmt"># return it now.</span>
|
|
1157
|
+
379: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tokenBuffer</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tokenBuffer</span>
|
|
1158
|
+
380: <span class="ruby-keyword kw">end</span>
|
|
1159
|
+
381: <span class="ruby-keyword kw">end</span>
|
|
1160
|
+
382:
|
|
1161
|
+
383: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
|
|
1162
|
+
384: <span class="ruby-ivar">@startOfToken</span> = <span class="ruby-identifier">sourceFileInfo</span>
|
|
1163
|
+
385: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
1164
|
+
386: <span class="ruby-identifier">match</span> = <span class="ruby-keyword kw">nil</span>
|
|
1165
|
+
387: <span class="ruby-keyword kw">begin</span>
|
|
1166
|
+
388: <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>
|
|
1167
|
+
389: <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>))
|
|
1168
|
+
390: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">==</span> <span class="ruby-value">:scannerEOF</span>
|
|
1169
|
+
391: <span class="ruby-comment cmt"># We've found the end of an input file. Return a special token</span>
|
|
1170
|
+
392: <span class="ruby-comment cmt"># that describes the end of a file.</span>
|
|
1171
|
+
393: <span class="ruby-ivar">@finishLastFile</span> = <span class="ruby-keyword kw">true</span>
|
|
1172
|
+
394: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span>, <span class="ruby-ivar">@startOfToken</span> ]
|
|
1173
|
+
395: <span class="ruby-keyword kw">end</span>
|
|
1174
|
+
396:
|
|
1175
|
+
397: <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>
|
|
1176
|
+
398: <span class="ruby-comment cmt"># If we have a post processing method, call it now. It may modify</span>
|
|
1177
|
+
399: <span class="ruby-comment cmt"># the type or the found token String.</span>
|
|
1178
|
+
400: <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>
|
|
1179
|
+
401:
|
|
1180
|
+
402: <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>
|
|
1181
|
+
403:
|
|
1182
|
+
404: <span class="ruby-comment cmt">#puts "type: #{type} match: [#{match}]"</span>
|
|
1183
|
+
405: <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> ]
|
|
1184
|
+
406: <span class="ruby-keyword kw">end</span>
|
|
1230
1185
|
407: <span class="ruby-keyword kw">end</span>
|
|
1231
|
-
408: <span class="ruby-keyword kw">
|
|
1232
|
-
409:
|
|
1233
|
-
410:
|
|
1186
|
+
408: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">ArgumentError</span>
|
|
1187
|
+
409: <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>)
|
|
1188
|
+
410: <span class="ruby-keyword kw">end</span>
|
|
1189
|
+
411:
|
|
1190
|
+
412: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">nil?</span>
|
|
1191
|
+
413: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">eof?</span>
|
|
1192
|
+
414: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unexpected_eof'</span>,
|
|
1193
|
+
415: <span class="ruby-value str">"Unexpected end of file found"</span>)
|
|
1194
|
+
416: <span class="ruby-keyword kw">else</span>
|
|
1195
|
+
417: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'no_token_match'</span>,
|
|
1196
|
+
418: <span class="ruby-node">"Unexpected characters found: '#{@cf.peek(10)}...'"</span>)
|
|
1197
|
+
419: <span class="ruby-keyword kw">end</span>
|
|
1198
|
+
420: <span class="ruby-keyword kw">end</span>
|
|
1199
|
+
421: <span class="ruby-keyword kw">end</span>
|
|
1200
|
+
422: <span class="ruby-keyword kw">end</span></pre>
|
|
1234
1201
|
</div>
|
|
1235
1202
|
|
|
1236
1203
|
</div>
|
|
@@ -1264,21 +1231,21 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
|
|
|
1264
1231
|
<div class="method-source-code"
|
|
1265
1232
|
id="open-source">
|
|
1266
1233
|
<pre>
|
|
1267
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1234
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 260</span>
|
|
1235
|
+
260: <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>)
|
|
1236
|
+
261: <span class="ruby-ivar">@fileNameIsBuffer</span> = <span class="ruby-identifier">fileNameIsBuffer</span>
|
|
1237
|
+
262: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
|
|
1238
|
+
263: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
|
|
1239
|
+
264: <span class="ruby-keyword kw">else</span>
|
|
1240
|
+
265: <span class="ruby-keyword kw">begin</span>
|
|
1241
|
+
266: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span> ] ]
|
|
1242
|
+
267: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
1243
|
+
268: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'open_file'</span>, <span class="ruby-node">"Cannot open file #{@masterFile}"</span>)
|
|
1244
|
+
269: <span class="ruby-keyword kw">end</span>
|
|
1245
|
+
270: <span class="ruby-keyword kw">end</span>
|
|
1246
|
+
271: <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>
|
|
1247
|
+
272: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
1248
|
+
273: <span class="ruby-keyword kw">end</span></pre>
|
|
1282
1249
|
</div>
|
|
1283
1250
|
|
|
1284
1251
|
</div>
|
|
@@ -1312,15 +1279,15 @@ token can be returned before the next nextToken() call.
|
|
|
1312
1279
|
<div class="method-source-code"
|
|
1313
1280
|
id="return-oken-source">
|
|
1314
1281
|
<pre>
|
|
1315
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1282
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 426</span>
|
|
1283
|
+
426: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
1284
|
+
427: <span class="ruby-comment cmt">#Log << "-> Returning Token: [#{token[0]}][#{token[1]}]"</span>
|
|
1285
|
+
428: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
1286
|
+
429: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
|
|
1287
|
+
430: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Fatal Error: Cannot return more than 1 token in a row"</span>
|
|
1288
|
+
431: <span class="ruby-keyword kw">end</span>
|
|
1289
|
+
432: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
|
|
1290
|
+
433: <span class="ruby-keyword kw">end</span></pre>
|
|
1324
1291
|
</div>
|
|
1325
1292
|
|
|
1326
1293
|
</div>
|
|
@@ -1354,11 +1321,11 @@ processing prosition.
|
|
|
1354
1321
|
<div class="method-source-code"
|
|
1355
1322
|
id="source-ile-nfo-source">
|
|
1356
1323
|
<pre>
|
|
1357
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1324
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 325</span>
|
|
1325
|
+
325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
1326
|
+
326: <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>
|
|
1327
|
+
327: <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>)
|
|
1328
|
+
328: <span class="ruby-keyword kw">end</span></pre>
|
|
1362
1329
|
</div>
|
|
1363
1330
|
|
|
1364
1331
|
</div>
|
|
@@ -1375,7 +1342,7 @@ processing prosition.
|
|
|
1375
1342
|
<div class="method-heading">
|
|
1376
1343
|
|
|
1377
1344
|
<span class="method-name">warning</span><span
|
|
1378
|
-
class="method-args">(id, text,
|
|
1345
|
+
class="method-args">(id, text, sfi = nil, data = nil)</span>
|
|
1379
1346
|
<span class="method-click-advice">click to toggle source</span>
|
|
1380
1347
|
|
|
1381
1348
|
</div>
|
|
@@ -1389,10 +1356,75 @@ processing prosition.
|
|
|
1389
1356
|
<div class="method-source-code"
|
|
1390
1357
|
id="warning-source">
|
|
1391
1358
|
<pre>
|
|
1392
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1359
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 469</span>
|
|
1360
|
+
469: <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>)
|
|
1361
|
+
470: <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-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>, <span class="ruby-identifier">data</span>)
|
|
1362
|
+
471: <span class="ruby-keyword kw">end</span></pre>
|
|
1363
|
+
</div>
|
|
1364
|
+
|
|
1365
|
+
</div>
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
</div>
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
</div>
|
|
1374
|
+
|
|
1375
|
+
<div id="private-instance-method-details" class="method-section section">
|
|
1376
|
+
<h3 class="section-header">Private Instance Methods</h3>
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
<div id="message-method" class="method-detail ">
|
|
1380
|
+
<a name="method-i-message"></a>
|
|
1381
|
+
|
|
1382
|
+
<div class="method-heading">
|
|
1383
|
+
|
|
1384
|
+
<span class="method-name">message</span><span
|
|
1385
|
+
class="method-args">(type, id, text, sfi, data)</span>
|
|
1386
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1387
|
+
|
|
1388
|
+
</div>
|
|
1389
|
+
|
|
1390
|
+
<div class="method-description">
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
<div class="method-source-code"
|
|
1397
|
+
id="message-source">
|
|
1398
|
+
<pre>
|
|
1399
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 475</span>
|
|
1400
|
+
475: <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>)
|
|
1401
|
+
476: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
|
1402
|
+
477: <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>
|
|
1403
|
+
478: <span class="ruby-identifier">sfi</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
1404
|
+
479:
|
|
1405
|
+
480: <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>
|
|
1406
|
+
481: <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>)
|
|
1407
|
+
482:
|
|
1408
|
+
483: <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>
|
|
1409
|
+
484: <span class="ruby-identifier">macro</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">macro</span>
|
|
1410
|
+
485: <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>]
|
|
1411
|
+
486: <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> }
|
|
1412
|
+
487: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-value str">'macro_stack'</span>,
|
|
1413
|
+
488: <span class="ruby-node">" ${#{macro.name} #{args.join(' ')}}"</span>,
|
|
1414
|
+
489: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
1415
|
+
490: <span class="ruby-keyword kw">end</span>
|
|
1416
|
+
491: <span class="ruby-keyword kw">end</span>
|
|
1417
|
+
492:
|
|
1418
|
+
493: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
|
|
1419
|
+
494: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:error</span>
|
|
1420
|
+
495: <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>)
|
|
1421
|
+
496: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:warning</span>
|
|
1422
|
+
497: <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>)
|
|
1423
|
+
498: <span class="ruby-keyword kw">else</span>
|
|
1424
|
+
499: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Unknown message type #{type}"</span>
|
|
1425
|
+
500: <span class="ruby-keyword kw">end</span>
|
|
1426
|
+
501: <span class="ruby-keyword kw">end</span>
|
|
1427
|
+
502: <span class="ruby-keyword kw">end</span></pre>
|
|
1396
1428
|
</div>
|
|
1397
1429
|
|
|
1398
1430
|
</div>
|