taskjuggler 0.0.2 → 0.0.3
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/Rakefile +1 -0
- data/benchmarks/depends.tjp +2 -1
- data/benchmarks/htmltaskreport.tjp +2 -1
- data/doc/classes/AppConfig.html +124 -120
- data/doc/classes/Arguments.html +10 -6
- data/doc/classes/Object.html +229 -0
- data/doc/classes/String.html +35 -31
- data/doc/classes/TaskJuggler/Account.html +18 -18
- data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
- data/doc/classes/TaskJuggler/Allocation.html +34 -30
- data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
- data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
- data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
- data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
- data/doc/classes/TaskJuggler/Booking.html +22 -18
- data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
- data/doc/classes/TaskJuggler/CSVFile.html +28 -24
- data/doc/classes/TaskJuggler/Charge.html +22 -18
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
- data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
- data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
- data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
- data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
- data/doc/classes/TaskJuggler/GanttChart.html +236 -207
- data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
- data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
- data/doc/classes/TaskJuggler/GanttLine.html +28 -24
- data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
- data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
- data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
- data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
- data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
- data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
- data/doc/classes/TaskJuggler/Interval.html +126 -120
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/JobInfo.html +284 -0
- data/doc/classes/TaskJuggler/Journal.html +197 -0
- data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
- data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
- data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
- data/doc/classes/TaskJuggler/Limits.html +68 -62
- data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
- data/doc/classes/TaskJuggler/Log.html +72 -68
- data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
- data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
- data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
- data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
- data/doc/classes/TaskJuggler/Macro.html +10 -6
- data/doc/classes/TaskJuggler/MacroParser.html +36 -36
- data/doc/classes/TaskJuggler/MacroTable.html +40 -36
- data/doc/classes/TaskJuggler/Message.html +16 -12
- data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
- data/doc/classes/TaskJuggler/Navigator.html +249 -0
- data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
- data/doc/classes/TaskJuggler/Project.html +1064 -678
- data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
- data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
- data/doc/classes/TaskJuggler/PropertyList.html +114 -113
- data/doc/classes/TaskJuggler/PropertySet.html +355 -312
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
- data/doc/classes/TaskJuggler/Query.html +90 -85
- data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
- data/doc/classes/TaskJuggler/RTPReport.html +301 -0
- data/doc/classes/TaskJuggler/RealFormat.html +114 -57
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
- data/doc/classes/TaskJuggler/Report.html +82 -291
- data/doc/classes/TaskJuggler/ReportBase.html +448 -0
- data/doc/classes/TaskJuggler/ReportContext.html +243 -0
- data/doc/classes/TaskJuggler/ReportTable.html +158 -129
- data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
- data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
- data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
- data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
- data/doc/classes/TaskJuggler/Resource.html +12 -12
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
- data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
- data/doc/classes/TaskJuggler/RichText.html +52 -48
- data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
- data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
- data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
- data/doc/classes/TaskJuggler/RichTextException.html +13 -13
- data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
- data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
- data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
- data/doc/classes/TaskJuggler/Scenario.html +6 -6
- data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
- data/doc/classes/TaskJuggler/Shift.html +18 -18
- data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
- data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
- data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
- data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
- data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
- data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
- data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
- data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
- data/doc/classes/TaskJuggler/TableReport.html +1036 -0
- data/doc/classes/TaskJuggler/Task.html +12 -12
- data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
- data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
- data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
- data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
- data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
- data/doc/classes/TaskJuggler/TextParser.html +203 -140
- data/doc/classes/TaskJuggler/TextReport.html +364 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
- data/doc/classes/TaskJuggler/TextScanner.html +334 -240
- data/doc/classes/TaskJuggler/TjException.html +6 -6
- data/doc/classes/TaskJuggler/TjTime.html +547 -497
- data/doc/classes/TaskJuggler/TjpExample.html +29 -25
- data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
- data/doc/classes/TaskJuggler/UserManual.html +54 -54
- data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
- data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
- data/doc/classes/TaskJuggler/XMLComment.html +21 -21
- data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
- data/doc/classes/TaskJuggler/XMLElement.html +70 -58
- data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
- data/doc/classes/TaskJuggler/XMLText.html +36 -36
- data/doc/classes/TaskJuggler.html +266 -183
- data/doc/files/COPYING.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/AccountScenario_rb.html +1 -1
- data/doc/files/lib/Account_rb.html +1 -1
- data/doc/files/lib/Allocation_rb.html +1 -1
- data/doc/files/lib/AppConfig_rb.html +1 -1
- data/doc/files/lib/AttributeBase_rb.html +11 -1
- data/doc/files/lib/AttributeDefinition_rb.html +1 -1
- data/doc/files/lib/Attributes_rb.html +1 -1
- data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
- data/doc/files/lib/Booking_rb.html +1 -1
- data/doc/files/lib/ChargeSet_rb.html +1 -1
- data/doc/files/lib/Charge_rb.html +1 -1
- data/doc/files/lib/HTMLDocument_rb.html +1 -1
- data/doc/files/lib/Interval_rb.html +1 -1
- data/doc/files/lib/Journal_rb.html +106 -0
- data/doc/files/lib/KeywordArray_rb.html +106 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/files/lib/Limits_rb.html +1 -1
- data/doc/files/lib/Log_rb.html +1 -1
- data/doc/files/lib/LogicalExpression_rb.html +1 -3
- data/doc/files/lib/LogicalFunction_rb.html +1 -1
- data/doc/files/lib/LogicalOperation_rb.html +1 -1
- data/doc/files/lib/MacroParser_rb.html +1 -1
- data/doc/files/lib/MacroTable_rb.html +1 -1
- data/doc/files/lib/MessageHandler_rb.html +1 -1
- data/doc/files/lib/Message_rb.html +1 -1
- data/doc/files/lib/ProjectFileParser_rb.html +5 -1
- data/doc/files/lib/Project_rb.html +5 -1
- data/doc/files/lib/PropertyList_rb.html +1 -1
- data/doc/files/lib/PropertySet_rb.html +1 -1
- data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/files/lib/Query_rb.html +1 -1
- data/doc/files/lib/RTPNavigator_rb.html +120 -0
- data/doc/files/lib/RTPReport_rb.html +118 -0
- data/doc/files/lib/RealFormat_rb.html +1 -1
- data/doc/files/lib/ResourceScenario_rb.html +1 -1
- data/doc/files/lib/Resource_rb.html +1 -1
- data/doc/files/lib/RichTextDocument_rb.html +1 -1
- data/doc/files/lib/RichTextElement_rb.html +1 -1
- data/doc/files/lib/RichTextParser_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
- data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
- data/doc/files/lib/RichTextScanner_rb.html +1 -1
- data/doc/files/lib/RichTextSnip_rb.html +1 -1
- data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/files/lib/RichText_rb.html +1 -1
- data/doc/files/lib/ScenarioData_rb.html +1 -1
- data/doc/files/lib/Scenario_rb.html +1 -1
- data/doc/files/lib/Scoreboard_rb.html +1 -1
- data/doc/files/lib/ShiftAssignments_rb.html +1 -1
- data/doc/files/lib/ShiftScenario_rb.html +1 -1
- data/doc/files/lib/Shift_rb.html +1 -1
- data/doc/files/lib/SourceFileInfo_rb.html +1 -1
- data/doc/files/lib/SyntaxReference_rb.html +1 -1
- data/doc/files/lib/TOCEntry_rb.html +1 -1
- data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/files/lib/TableOfContents_rb.html +1 -1
- data/doc/files/lib/TaskDependency_rb.html +1 -1
- data/doc/files/lib/TaskJuggler_rb.html +1 -1
- data/doc/files/lib/TaskScenario_rb.html +1 -1
- data/doc/files/lib/Task_rb.html +1 -1
- data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/files/lib/TextParser/Rule_rb.html +1 -1
- data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/files/lib/TextParser_rb.html +1 -1
- data/doc/files/lib/TextScanner_rb.html +1 -1
- data/doc/files/lib/Tj3Config_rb.html +1 -1
- data/doc/files/lib/TjException_rb.html +1 -1
- data/doc/files/lib/TjTime_rb.html +1 -1
- data/doc/files/lib/TjpExample_rb.html +1 -1
- data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/files/lib/UTF8String_rb.html +1 -1
- data/doc/files/lib/UserManual_rb.html +1 -1
- data/doc/files/lib/WorkingHours_rb.html +1 -1
- data/doc/files/lib/XMLDocument_rb.html +1 -1
- data/doc/files/lib/XMLElement_rb.html +1 -1
- data/doc/files/lib/deep_copy_rb.html +106 -0
- data/doc/files/lib/ms_test_rb.html +90 -0
- data/doc/files/lib/reports/CSVFile_rb.html +1 -1
- data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/files/lib/reports/GanttChart_rb.html +1 -1
- data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/files/lib/reports/GanttLine_rb.html +1 -1
- data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
- data/doc/files/lib/reports/ReportBase_rb.html +106 -0
- data/doc/files/lib/reports/ReportContext_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/files/lib/reports/ReportTable_rb.html +1 -1
- data/doc/files/lib/reports/Report_rb.html +8 -2
- data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
- data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/files/lib/reports/TextReport_rb.html +116 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/files/lib/taskjuggler3_rb.html +61 -56
- data/doc/files/lib/tj3man_rb.html +1 -1
- data/doc/fr_class_index.html +41 -3
- data/doc/fr_file_index.html +21 -5
- data/doc/fr_method_index.html +1069 -959
- data/examples/ContactList.html +1467 -0
- data/examples/Deliveries.html +485 -0
- data/examples/Development.html +2525 -0
- data/examples/Overview.html +747 -0
- data/examples/Resource Graph.html +616 -0
- data/examples/tutorial.tjp +63 -67
- data/lib/AttributeBase.rb +27 -31
- data/lib/AttributeDefinition.rb +12 -7
- data/lib/Attributes.rb +134 -34
- data/lib/Interval.rb +2 -0
- data/lib/Journal.rb +44 -0
- data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
- data/lib/KeywordDocumentation.rb +84 -47
- data/lib/Limits.rb +7 -5
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalOperation.rb +33 -0
- data/lib/Project.rb +313 -99
- data/lib/ProjectFileParser.rb +88 -11
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +13 -4
- data/lib/PropertyTreeNode.rb +34 -15
- data/lib/Query.rb +2 -1
- data/lib/RTPNavigator.rb +53 -0
- data/lib/RTPReport.rb +62 -0
- data/lib/RealFormat.rb +28 -10
- data/lib/RichTextElement.rb +18 -12
- data/lib/RichTextParser.rb +1 -0
- data/lib/RichTextProtocolExample.rb +8 -11
- data/lib/RichTextProtocolHandler.rb +11 -1
- data/lib/RichTextScanner.rb +308 -164
- data/lib/RichTextSyntaxRules.rb +24 -0
- data/lib/TableColumnDefinition.rb +5 -1
- data/lib/TaskJuggler.rb +3 -2
- data/lib/TaskScenario.rb +123 -31
- data/lib/TextParser.rb +14 -3
- data/lib/TextScanner.rb +210 -34
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +15 -0
- data/lib/TjpExample.rb +1 -1
- data/lib/TjpSyntaxRules.rb +674 -473
- data/lib/WorkingHours.rb +1 -1
- data/lib/XMLElement.rb +11 -3
- data/lib/deep_copy.rb +72 -0
- data/lib/ms_test.rb +27 -0
- data/lib/reports/ColumnTable.rb +7 -5
- data/lib/reports/GanttChart.rb +60 -34
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttRouter.rb +7 -5
- data/lib/reports/Navigator.rb +72 -0
- data/lib/reports/Report.rb +58 -73
- data/lib/reports/ReportBase.rb +241 -0
- data/lib/reports/ReportContext.rb +41 -0
- data/lib/reports/ReportTable.rb +7 -2
- data/lib/reports/ReportTableCell.rb +3 -3
- data/lib/reports/ResourceListRE.rb +19 -26
- data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
- data/lib/reports/TaskListRE.rb +16 -24
- data/lib/reports/TextReport.rb +87 -0
- data/lib/reports/TjpExportRE.rb +55 -50
- data/lib/taskjuggler3.rb +6 -1
- data/manual/Getting_Started +57 -6
- data/manual/How_To_Contribute +2 -4
- data/manual/Intro +2 -2
- data/manual/Reporting_Bugs +9 -2
- data/manual/Rich_Text_Attributes +41 -0
- data/manual/Tutorial +219 -173
- data/tasks/test.rake +3 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
- data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
- data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
- data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
- data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
- data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
- data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
- data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
- data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
- data/test/all.rb +1 -16
- data/test/test_CSV-Reports.rb +8 -5
- data/test/test_Query.rb +2 -2
- data/test/test_RichText.rb +95 -0
- data/test/test_Scheduler.rb +8 -4
- data/test/test_Syntax.rb +8 -4
- data/test/test_deep_copy.rb +83 -0
- metadata +549 -487
- data/benchmarks/UTF-8-Strings.rb +0 -58
- data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
- data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
- data/lib/reports/ReportElement.rb +0 -427
- data/test/TestSuite/Syntax/Correct/csvtest +0 -16
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
|
@@ -70,8 +70,12 @@
|
|
|
70
70
|
<td><strong>Parent:</strong></td>
|
|
71
71
|
<td>
|
|
72
72
|
|
|
73
|
+
<a href="../Object.html">
|
|
74
|
+
|
|
73
75
|
Object
|
|
74
76
|
|
|
77
|
+
</a>
|
|
78
|
+
|
|
75
79
|
</td>
|
|
76
80
|
</tr>
|
|
77
81
|
|
|
@@ -100,29 +104,33 @@ file can include an other file.
|
|
|
100
104
|
|
|
101
105
|
<div class="name-list">
|
|
102
106
|
|
|
103
|
-
<a href="#
|
|
107
|
+
<a href="#M000734">addMacro</a>
|
|
108
|
+
|
|
109
|
+
<a href="#M000728">close</a>
|
|
104
110
|
|
|
105
|
-
<a href="#
|
|
111
|
+
<a href="#M000737">error</a>
|
|
106
112
|
|
|
107
|
-
<a href="#
|
|
113
|
+
<a href="#M000736">expandMacro</a>
|
|
108
114
|
|
|
109
|
-
<a href="#
|
|
115
|
+
<a href="#M000731">fileName</a>
|
|
110
116
|
|
|
111
|
-
<a href="#
|
|
117
|
+
<a href="#M000729">include</a>
|
|
112
118
|
|
|
113
|
-
<a href="#
|
|
119
|
+
<a href="#M000735">macroDefined?</a>
|
|
114
120
|
|
|
115
|
-
<a href="#
|
|
121
|
+
<a href="#M000739">message</a>
|
|
116
122
|
|
|
117
|
-
<a href="#
|
|
123
|
+
<a href="#M000726">new</a>
|
|
118
124
|
|
|
119
|
-
<a href="#
|
|
125
|
+
<a href="#M000732">nextToken</a>
|
|
120
126
|
|
|
121
|
-
<a href="#
|
|
127
|
+
<a href="#M000727">open</a>
|
|
122
128
|
|
|
123
|
-
<a href="#
|
|
129
|
+
<a href="#M000733">returnToken</a>
|
|
124
130
|
|
|
125
|
-
<a href="#
|
|
131
|
+
<a href="#M000730">sourceFileInfo</a>
|
|
132
|
+
|
|
133
|
+
<a href="#M000738">warning</a>
|
|
126
134
|
|
|
127
135
|
</div>
|
|
128
136
|
</div>
|
|
@@ -152,12 +160,12 @@ Class <a href="TextScanner/StreamHandle.html" class="link">TaskJuggler::TextScan
|
|
|
152
160
|
<h3 class="section-bar">Public Class methods</h3>
|
|
153
161
|
|
|
154
162
|
|
|
155
|
-
<div id="method-
|
|
156
|
-
<a name="
|
|
163
|
+
<div id="method-M000726" class="method-detail">
|
|
164
|
+
<a name="M000726"></a>
|
|
157
165
|
|
|
158
166
|
<div class="method-heading">
|
|
159
167
|
|
|
160
|
-
<a href="#
|
|
168
|
+
<a href="#M000726" class="method-signature">
|
|
161
169
|
|
|
162
170
|
<span class="method-name">new</span><span class="method-args">(masterFile, messageHandler)</span>
|
|
163
171
|
|
|
@@ -177,26 +185,26 @@ messages.
|
|
|
177
185
|
</p>
|
|
178
186
|
|
|
179
187
|
<p><a class="source-toggle" href="#"
|
|
180
|
-
onclick="toggleCode('
|
|
181
|
-
<div class="method-source-code" id="
|
|
188
|
+
onclick="toggleCode('M000726-source');return false;">[Source]</a></p>
|
|
189
|
+
<div class="method-source-code" id="M000726-source">
|
|
182
190
|
<pre>
|
|
183
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
191
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 146</span>
|
|
192
|
+
146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>)
|
|
193
|
+
147: <span class="ruby-ivar">@masterFile</span> = <span class="ruby-identifier">masterFile</span>
|
|
194
|
+
148: <span class="ruby-ivar">@messageHandler</span> = <span class="ruby-identifier">messageHandler</span>
|
|
195
|
+
149: <span class="ruby-comment cmt"># This table contains all macros that may be expanded when found in the</span>
|
|
196
|
+
150: <span class="ruby-comment cmt"># text.</span>
|
|
197
|
+
151: <span class="ruby-ivar">@macroTable</span> = <span class="ruby-constant">MacroTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">messageHandler</span>)
|
|
198
|
+
152: <span class="ruby-comment cmt"># This Array stores the currently processed nested files. It's an Array</span>
|
|
199
|
+
153: <span class="ruby-comment cmt"># of Arrays. The nested Array consists of 3 elements, the @cf,</span>
|
|
200
|
+
154: <span class="ruby-comment cmt"># @tokenBuffer and the @pos of the file.</span>
|
|
201
|
+
155: <span class="ruby-ivar">@fileStack</span> = []
|
|
202
|
+
156: <span class="ruby-comment cmt"># This Array stores the currently processed nested macros.</span>
|
|
203
|
+
157: <span class="ruby-ivar">@macroStack</span> = []
|
|
204
|
+
158: <span class="ruby-comment cmt"># In certain situation we want to ignore Macro replacement and this flag</span>
|
|
205
|
+
159: <span class="ruby-comment cmt"># is set to true.</span>
|
|
206
|
+
160: <span class="ruby-ivar">@ignoreMacros</span> = <span class="ruby-keyword kw">false</span>
|
|
207
|
+
161: <span class="ruby-keyword kw">end</span>
|
|
200
208
|
</pre>
|
|
201
209
|
</div>
|
|
202
210
|
|
|
@@ -207,12 +215,12 @@ messages.
|
|
|
207
215
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
208
216
|
|
|
209
217
|
|
|
210
|
-
<div id="method-
|
|
211
|
-
<a name="
|
|
218
|
+
<div id="method-M000734" class="method-detail">
|
|
219
|
+
<a name="M000734"></a>
|
|
212
220
|
|
|
213
221
|
<div class="method-heading">
|
|
214
222
|
|
|
215
|
-
<a href="#
|
|
223
|
+
<a href="#M000734" class="method-signature">
|
|
216
224
|
|
|
217
225
|
<span class="method-name">addMacro</span><span class="method-args">(macro)</span>
|
|
218
226
|
|
|
@@ -227,13 +235,13 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
|
|
|
227
235
|
</p>
|
|
228
236
|
|
|
229
237
|
<p><a class="source-toggle" href="#"
|
|
230
|
-
onclick="toggleCode('
|
|
231
|
-
<div class="method-source-code" id="
|
|
238
|
+
onclick="toggleCode('M000734-source');return false;">[Source]</a></p>
|
|
239
|
+
<div class="method-source-code" id="M000734-source">
|
|
232
240
|
<pre>
|
|
233
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
241
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 325</span>
|
|
242
|
+
325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addMacro</span>(<span class="ruby-identifier">macro</span>)
|
|
243
|
+
326: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">macro</span>)
|
|
244
|
+
327: <span class="ruby-keyword kw">end</span>
|
|
237
245
|
</pre>
|
|
238
246
|
</div>
|
|
239
247
|
|
|
@@ -241,12 +249,12 @@ Add a <a href="Macro.html">Macro</a> to the macro translation table.
|
|
|
241
249
|
</div>
|
|
242
250
|
|
|
243
251
|
|
|
244
|
-
<div id="method-
|
|
245
|
-
<a name="
|
|
252
|
+
<div id="method-M000728" class="method-detail">
|
|
253
|
+
<a name="M000728"></a>
|
|
246
254
|
|
|
247
255
|
<div class="method-heading">
|
|
248
256
|
|
|
249
|
-
<a href="#
|
|
257
|
+
<a href="#M000728" class="method-signature">
|
|
250
258
|
|
|
251
259
|
<span class="method-name">close</span><span class="method-args">()</span>
|
|
252
260
|
|
|
@@ -261,16 +269,16 @@ Finish processing and reset all data structures.
|
|
|
261
269
|
</p>
|
|
262
270
|
|
|
263
271
|
<p><a class="source-toggle" href="#"
|
|
264
|
-
onclick="toggleCode('
|
|
265
|
-
<div class="method-source-code" id="
|
|
272
|
+
onclick="toggleCode('M000728-source');return false;">[Source]</a></p>
|
|
273
|
+
<div class="method-source-code" id="M000728-source">
|
|
266
274
|
<pre>
|
|
267
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
275
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 180</span>
|
|
276
|
+
180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
|
277
|
+
181: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">startProgressMeter</span>(<span class="ruby-node">"Reading file #{@masterFile}"</span>)
|
|
278
|
+
182: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">stopProgressMeter</span>
|
|
279
|
+
183: <span class="ruby-ivar">@fileStack</span> = []
|
|
280
|
+
184: <span class="ruby-ivar">@cf</span> = <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
281
|
+
185: <span class="ruby-keyword kw">end</span>
|
|
274
282
|
</pre>
|
|
275
283
|
</div>
|
|
276
284
|
|
|
@@ -278,12 +286,12 @@ Finish processing and reset all data structures.
|
|
|
278
286
|
</div>
|
|
279
287
|
|
|
280
288
|
|
|
281
|
-
<div id="method-
|
|
282
|
-
<a name="
|
|
289
|
+
<div id="method-M000737" class="method-detail">
|
|
290
|
+
<a name="M000737"></a>
|
|
283
291
|
|
|
284
292
|
<div class="method-heading">
|
|
285
293
|
|
|
286
|
-
<a href="#
|
|
294
|
+
<a href="#M000737" class="method-signature">
|
|
287
295
|
|
|
288
296
|
<span class="method-name">error</span><span class="method-args">(id, text, property = nil)</span>
|
|
289
297
|
|
|
@@ -298,26 +306,13 @@ Call this function to report any errors related to the parsed input.
|
|
|
298
306
|
</p>
|
|
299
307
|
|
|
300
308
|
<p><a class="source-toggle" href="#"
|
|
301
|
-
onclick="toggleCode('
|
|
302
|
-
<div class="method-source-code" id="
|
|
309
|
+
onclick="toggleCode('M000737-source');return false;">[Source]</a></p>
|
|
310
|
+
<div class="method-source-code" id="M000737-source">
|
|
303
311
|
<pre>
|
|
304
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
320: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
309
|
-
321:
|
|
310
|
-
322: <span class="ruby-keyword kw">until</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span>
|
|
311
|
-
323: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
|
|
312
|
-
324: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span> }
|
|
313
|
-
325: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
|
|
314
|
-
326: <span class="ruby-node">" #{macro.name} #{args.join(' ')}"</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
|
|
315
|
-
327: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
316
|
-
328: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
317
|
-
329: <span class="ruby-keyword kw">end</span>
|
|
318
|
-
330:
|
|
319
|
-
331: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">'Syntax error during parse'</span>
|
|
320
|
-
332: <span class="ruby-keyword kw">end</span>
|
|
312
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 348</span>
|
|
313
|
+
348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
|
|
314
|
+
349: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'error'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
|
|
315
|
+
350: <span class="ruby-keyword kw">end</span>
|
|
321
316
|
</pre>
|
|
322
317
|
</div>
|
|
323
318
|
|
|
@@ -325,12 +320,12 @@ Call this function to report any errors related to the parsed input.
|
|
|
325
320
|
</div>
|
|
326
321
|
|
|
327
322
|
|
|
328
|
-
<div id="method-
|
|
329
|
-
<a name="
|
|
323
|
+
<div id="method-M000736" class="method-detail">
|
|
324
|
+
<a name="M000736"></a>
|
|
330
325
|
|
|
331
326
|
<div class="method-heading">
|
|
332
327
|
|
|
333
|
-
<a href="#
|
|
328
|
+
<a href="#M000736" class="method-signature">
|
|
334
329
|
|
|
335
330
|
<span class="method-name">expandMacro</span><span class="method-args">(args)</span>
|
|
336
331
|
|
|
@@ -341,22 +336,22 @@ Call this function to report any errors related to the parsed input.
|
|
|
341
336
|
<div class="method-description">
|
|
342
337
|
|
|
343
338
|
<p><a class="source-toggle" href="#"
|
|
344
|
-
onclick="toggleCode('
|
|
345
|
-
<div class="method-source-code" id="
|
|
339
|
+
onclick="toggleCode('M000736-source');return false;">[Source]</a></p>
|
|
340
|
+
<div class="method-source-code" id="M000736-source">
|
|
346
341
|
<pre>
|
|
347
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
342
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 334</span>
|
|
343
|
+
334: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expandMacro</span>(<span class="ruby-identifier">args</span>)
|
|
344
|
+
335: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">text</span> = <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">resolve</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">sourceFileInfo</span>)
|
|
345
|
+
336: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">text</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
|
|
346
|
+
337:
|
|
347
|
+
338: <span class="ruby-ivar">@macroStack</span> <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> ]
|
|
348
|
+
339: <span class="ruby-comment cmt"># Mark end of macro with a 0 element</span>
|
|
349
|
+
340: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator"><<</span> <span class="ruby-value">0</span>
|
|
350
|
+
341: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">each_utf8_char</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
351
|
+
342: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">charBuffer</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
352
|
+
343: <span class="ruby-keyword kw">end</span>
|
|
353
|
+
344: <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">line</span> = <span class="ruby-value str">''</span>
|
|
354
|
+
345: <span class="ruby-keyword kw">end</span>
|
|
360
355
|
</pre>
|
|
361
356
|
</div>
|
|
362
357
|
|
|
@@ -364,12 +359,12 @@ Call this function to report any errors related to the parsed input.
|
|
|
364
359
|
</div>
|
|
365
360
|
|
|
366
361
|
|
|
367
|
-
<div id="method-
|
|
368
|
-
<a name="
|
|
362
|
+
<div id="method-M000731" class="method-detail">
|
|
363
|
+
<a name="M000731"></a>
|
|
369
364
|
|
|
370
365
|
<div class="method-heading">
|
|
371
366
|
|
|
372
|
-
<a href="#
|
|
367
|
+
<a href="#M000731" class="method-signature">
|
|
373
368
|
|
|
374
369
|
<span class="method-name">fileName</span><span class="method-args">()</span>
|
|
375
370
|
|
|
@@ -385,13 +380,13 @@ text buffer, the text will be returned.
|
|
|
385
380
|
</p>
|
|
386
381
|
|
|
387
382
|
<p><a class="source-toggle" href="#"
|
|
388
|
-
onclick="toggleCode('
|
|
389
|
-
<div class="method-source-code" id="
|
|
383
|
+
onclick="toggleCode('M000731-source');return false;">[Source]</a></p>
|
|
384
|
+
<div class="method-source-code" id="M000731-source">
|
|
390
385
|
<pre>
|
|
391
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
386
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 230</span>
|
|
387
|
+
230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
|
|
388
|
+
231: <span class="ruby-ivar">@cf</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">fileName</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@masterFile</span>
|
|
389
|
+
232: <span class="ruby-keyword kw">end</span>
|
|
395
390
|
</pre>
|
|
396
391
|
</div>
|
|
397
392
|
|
|
@@ -399,12 +394,12 @@ text buffer, the text will be returned.
|
|
|
399
394
|
</div>
|
|
400
395
|
|
|
401
396
|
|
|
402
|
-
<div id="method-
|
|
403
|
-
<a name="
|
|
397
|
+
<div id="method-M000729" class="method-detail">
|
|
398
|
+
<a name="M000729"></a>
|
|
404
399
|
|
|
405
400
|
<div class="method-heading">
|
|
406
401
|
|
|
407
|
-
<a href="#
|
|
402
|
+
<a href="#M000729" class="method-signature">
|
|
408
403
|
|
|
409
404
|
<span class="method-name">include</span><span class="method-args">(fileName)</span>
|
|
410
405
|
|
|
@@ -421,30 +416,42 @@ where we started with the new file.
|
|
|
421
416
|
</p>
|
|
422
417
|
|
|
423
418
|
<p><a class="source-toggle" href="#"
|
|
424
|
-
onclick="toggleCode('
|
|
425
|
-
<div class="method-source-code" id="
|
|
419
|
+
onclick="toggleCode('M000729-source');return false;">[Source]</a></p>
|
|
420
|
+
<div class="method-source-code" id="M000729-source">
|
|
426
421
|
<pre>
|
|
427
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
422
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 190</span>
|
|
423
|
+
190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include</span>(<span class="ruby-identifier">fileName</span>)
|
|
424
|
+
191: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">empty?</span>
|
|
425
|
+
192: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@masterPath</span>
|
|
426
|
+
193: <span class="ruby-keyword kw">else</span>
|
|
427
|
+
194: <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
|
428
|
+
195: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>, <span class="ruby-value">2</span>] = [ <span class="ruby-ivar">@tokenBuffer</span>, <span class="ruby-ivar">@pos</span> ]
|
|
429
|
+
196: <span class="ruby-keyword kw">end</span>
|
|
430
|
+
197: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileName</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'/'</span>
|
|
431
|
+
198: <span class="ruby-comment cmt"># If the included file is not an absolute name, we interpret the file</span>
|
|
432
|
+
199: <span class="ruby-comment cmt"># name relative to the including file.</span>
|
|
433
|
+
200: <span class="ruby-identifier">fileName</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">fileName</span>
|
|
434
|
+
201: <span class="ruby-keyword kw">end</span>
|
|
435
|
+
202:
|
|
436
|
+
203: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
437
|
+
204:
|
|
438
|
+
205: <span class="ruby-comment cmt"># Check the current file stack to find recusions.</span>
|
|
439
|
+
206: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pos</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">fileName</span>
|
|
440
|
+
207: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>, <span class="ruby-node">"Recursive inclusion of #{fileName} detected"</span>)
|
|
441
|
+
208: <span class="ruby-keyword kw">else</span>
|
|
442
|
+
209: <span class="ruby-ivar">@fileStack</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
|
|
443
|
+
210: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileName</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">entry</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">fileName</span>
|
|
444
|
+
211: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'include_recursion'</span>, <span class="ruby-node">"Recursive inclusion of #{fileName} "</span> <span class="ruby-operator">+</span>
|
|
445
|
+
212: <span class="ruby-value str">"detected"</span>)
|
|
446
|
+
213: <span class="ruby-keyword kw">end</span>
|
|
447
|
+
214: <span class="ruby-keyword kw">end</span>
|
|
448
|
+
215: <span class="ruby-keyword kw">end</span>
|
|
449
|
+
216: <span class="ruby-keyword kw">begin</span>
|
|
450
|
+
217: <span class="ruby-ivar">@fileStack</span> <span class="ruby-operator"><<</span> [ (<span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>)), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ]
|
|
451
|
+
218: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
452
|
+
219: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'bad_include'</span>, <span class="ruby-node">"Cannot open include file #{fileName}"</span>)
|
|
453
|
+
220: <span class="ruby-keyword kw">end</span>
|
|
454
|
+
221: <span class="ruby-keyword kw">end</span>
|
|
448
455
|
</pre>
|
|
449
456
|
</div>
|
|
450
457
|
|
|
@@ -452,12 +459,12 @@ where we started with the new file.
|
|
|
452
459
|
</div>
|
|
453
460
|
|
|
454
461
|
|
|
455
|
-
<div id="method-
|
|
456
|
-
<a name="
|
|
462
|
+
<div id="method-M000735" class="method-detail">
|
|
463
|
+
<a name="M000735"></a>
|
|
457
464
|
|
|
458
465
|
<div class="method-heading">
|
|
459
466
|
|
|
460
|
-
<a href="#
|
|
467
|
+
<a href="#M000735" class="method-signature">
|
|
461
468
|
|
|
462
469
|
<span class="method-name">macroDefined?</span><span class="method-args">(name)</span>
|
|
463
470
|
|
|
@@ -473,13 +480,59 @@ added already.
|
|
|
473
480
|
</p>
|
|
474
481
|
|
|
475
482
|
<p><a class="source-toggle" href="#"
|
|
476
|
-
onclick="toggleCode('
|
|
477
|
-
<div class="method-source-code" id="
|
|
483
|
+
onclick="toggleCode('M000735-source');return false;">[Source]</a></p>
|
|
484
|
+
<div class="method-source-code" id="M000735-source">
|
|
485
|
+
<pre>
|
|
486
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 330</span>
|
|
487
|
+
330: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">macroDefined?</span>(<span class="ruby-identifier">name</span>)
|
|
488
|
+
331: <span class="ruby-ivar">@macroTable</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
|
|
489
|
+
332: <span class="ruby-keyword kw">end</span>
|
|
490
|
+
</pre>
|
|
491
|
+
</div>
|
|
492
|
+
|
|
493
|
+
</div>
|
|
494
|
+
</div>
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
<div id="method-M000739" class="method-detail">
|
|
498
|
+
<a name="M000739"></a>
|
|
499
|
+
|
|
500
|
+
<div class="method-heading">
|
|
501
|
+
|
|
502
|
+
<a href="#M000739" class="method-signature">
|
|
503
|
+
|
|
504
|
+
<span class="method-name">message</span><span class="method-args">(type, id, text, property)</span>
|
|
505
|
+
|
|
506
|
+
</a>
|
|
507
|
+
|
|
508
|
+
</div>
|
|
509
|
+
|
|
510
|
+
<div class="method-description">
|
|
511
|
+
|
|
512
|
+
<p><a class="source-toggle" href="#"
|
|
513
|
+
onclick="toggleCode('M000739-source');return false;">[Source]</a></p>
|
|
514
|
+
<div class="method-source-code" id="M000739-source">
|
|
478
515
|
<pre>
|
|
479
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
516
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 356</span>
|
|
517
|
+
356: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
|
|
518
|
+
357: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">text</span>.<span class="ruby-identifier">empty?</span>
|
|
519
|
+
358: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">to_s</span>,
|
|
520
|
+
359: <span class="ruby-identifier">property</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">sourceFileInfo</span>)
|
|
521
|
+
360: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
522
|
+
361:
|
|
523
|
+
362: <span class="ruby-keyword kw">until</span> <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">empty?</span>
|
|
524
|
+
363: <span class="ruby-identifier">macro</span>, <span class="ruby-identifier">args</span> = <span class="ruby-ivar">@macroStack</span>.<span class="ruby-identifier">pop</span>
|
|
525
|
+
364: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-value str">'"'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">a</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'"'</span> }
|
|
526
|
+
365: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Message</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'macro_stack'</span>, <span class="ruby-value str">'info'</span>,
|
|
527
|
+
366: <span class="ruby-node">" #{macro.name} #{args.join(' ')}"</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>,
|
|
528
|
+
367: <span class="ruby-identifier">macro</span>.<span class="ruby-identifier">sourceFileInfo</span>)
|
|
529
|
+
368: <span class="ruby-ivar">@messageHandler</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">message</span>)
|
|
530
|
+
369: <span class="ruby-keyword kw">end</span>
|
|
531
|
+
370: <span class="ruby-keyword kw">end</span>
|
|
532
|
+
371:
|
|
533
|
+
372: <span class="ruby-comment cmt"># An empty strings signals an already reported error</span>
|
|
534
|
+
373: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'error'</span>
|
|
535
|
+
374: <span class="ruby-keyword kw">end</span>
|
|
483
536
|
</pre>
|
|
484
537
|
</div>
|
|
485
538
|
|
|
@@ -487,12 +540,12 @@ added already.
|
|
|
487
540
|
</div>
|
|
488
541
|
|
|
489
542
|
|
|
490
|
-
<div id="method-
|
|
491
|
-
<a name="
|
|
543
|
+
<div id="method-M000732" class="method-detail">
|
|
544
|
+
<a name="M000732"></a>
|
|
492
545
|
|
|
493
546
|
<div class="method-heading">
|
|
494
547
|
|
|
495
|
-
<a href="#
|
|
548
|
+
<a href="#M000732" class="method-signature">
|
|
496
549
|
|
|
497
550
|
<span class="method-name">nextToken</span><span class="method-args">()</span>
|
|
498
551
|
|
|
@@ -508,63 +561,73 @@ be an Array of the form [ TokenType, TokenValue ].
|
|
|
508
561
|
</p>
|
|
509
562
|
|
|
510
563
|
<p><a class="source-toggle" href="#"
|
|
511
|
-
onclick="toggleCode('
|
|
512
|
-
<div class="method-source-code" id="
|
|
564
|
+
onclick="toggleCode('M000732-source');return false;">[Source]</a></p>
|
|
565
|
+
<div class="method-source-code" id="M000732-source">
|
|
513
566
|
<pre>
|
|
514
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
567
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 248</span>
|
|
568
|
+
248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
569
|
+
249: <span class="ruby-comment cmt"># If we have a pushed-back token, return that first.</span>
|
|
570
|
+
250: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
571
|
+
251: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@tokenBuffer</span>
|
|
572
|
+
252: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
573
|
+
253: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@tokenBufferPos</span>
|
|
574
|
+
254: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
|
|
575
|
+
255: <span class="ruby-keyword kw">end</span>
|
|
576
|
+
256:
|
|
577
|
+
257: <span class="ruby-comment cmt"># Start processing characters from the input.</span>
|
|
578
|
+
258: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
|
|
579
|
+
259: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
580
|
+
260: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
|
|
581
|
+
261: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">c</span>
|
|
582
|
+
262: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>, <span class="ruby-value str">"\n"</span>, <span class="ruby-value str">"\t"</span>
|
|
583
|
+
263: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">tok</span> = <span class="ruby-identifier">readBlanks</span>(<span class="ruby-identifier">c</span>))
|
|
584
|
+
264: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">tok</span>
|
|
585
|
+
265: <span class="ruby-keyword kw">break</span>
|
|
586
|
+
266: <span class="ruby-keyword kw">end</span>
|
|
587
|
+
267: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
|
|
588
|
+
268: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
|
|
589
|
+
269: <span class="ruby-identifier">skipComment</span>
|
|
590
|
+
270: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
|
|
591
|
+
271: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'/'</span>
|
|
592
|
+
272: <span class="ruby-identifier">skipCPlusPlusComments</span>
|
|
593
|
+
273: <span class="ruby-identifier">startOfToken</span> = <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
|
|
594
|
+
274: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'0'</span><span class="ruby-operator">..</span><span class="ruby-value str">'9'</span>
|
|
595
|
+
275: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readNumber</span>(<span class="ruby-identifier">c</span>)
|
|
596
|
+
276: <span class="ruby-keyword kw">break</span>
|
|
597
|
+
277: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"'"</span>
|
|
598
|
+
278: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
|
|
599
|
+
279: <span class="ruby-keyword kw">break</span>
|
|
600
|
+
280: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'"'</span>
|
|
601
|
+
281: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
|
|
602
|
+
282: <span class="ruby-keyword kw">break</span>
|
|
603
|
+
283: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
|
|
604
|
+
284: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">handleDash</span>
|
|
605
|
+
285: <span class="ruby-keyword kw">break</span>
|
|
606
|
+
286: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'!'</span>
|
|
607
|
+
287: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readRelativeId</span>(<span class="ruby-identifier">c</span>)
|
|
608
|
+
288: <span class="ruby-keyword kw">break</span>
|
|
609
|
+
289: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'a'</span><span class="ruby-operator">..</span><span class="ruby-value str">'z'</span>, <span class="ruby-value str">'A'</span><span class="ruby-operator">..</span><span class="ruby-value str">'Z'</span>, <span class="ruby-value str">'_'</span>
|
|
610
|
+
290: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readId</span>(<span class="ruby-identifier">c</span>)
|
|
611
|
+
291: <span class="ruby-keyword kw">break</span>
|
|
612
|
+
292: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'<'</span>, <span class="ruby-value str">'>'</span>, <span class="ruby-value str">'='</span>
|
|
613
|
+
293: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readOperator</span>(<span class="ruby-identifier">c</span>)
|
|
614
|
+
294: <span class="ruby-keyword kw">break</span>
|
|
615
|
+
295: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'['</span>
|
|
616
|
+
296: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readMacro</span>
|
|
617
|
+
297: <span class="ruby-keyword kw">break</span>
|
|
618
|
+
298: <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
|
|
619
|
+
299: <span class="ruby-comment cmt"># We've reached an end of file or buffer</span>
|
|
620
|
+
300: <span class="ruby-keyword kw">break</span>
|
|
621
|
+
301: <span class="ruby-keyword kw">else</span>
|
|
622
|
+
302: <span class="ruby-identifier">str</span> = <span class="ruby-value str">""</span>
|
|
623
|
+
303: <span class="ruby-identifier">str</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
624
|
+
304: <span class="ruby-identifier">token</span> = [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-identifier">str</span> ]
|
|
625
|
+
305: <span class="ruby-keyword kw">break</span>
|
|
626
|
+
306: <span class="ruby-keyword kw">end</span>
|
|
627
|
+
307: <span class="ruby-keyword kw">end</span>
|
|
628
|
+
308: <span class="ruby-ivar">@pos</span> = <span class="ruby-identifier">startOfToken</span>
|
|
629
|
+
309: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">token</span>
|
|
630
|
+
310: <span class="ruby-keyword kw">end</span>
|
|
568
631
|
</pre>
|
|
569
632
|
</div>
|
|
570
633
|
|
|
@@ -572,12 +635,12 @@ be an Array of the form [ TokenType, TokenValue ].
|
|
|
572
635
|
</div>
|
|
573
636
|
|
|
574
637
|
|
|
575
|
-
<div id="method-
|
|
576
|
-
<a name="
|
|
638
|
+
<div id="method-M000727" class="method-detail">
|
|
639
|
+
<a name="M000727"></a>
|
|
577
640
|
|
|
578
641
|
<div class="method-heading">
|
|
579
642
|
|
|
580
|
-
<a href="#
|
|
643
|
+
<a href="#M000727" class="method-signature">
|
|
581
644
|
|
|
582
645
|
<span class="method-name">open</span><span class="method-args">(fileNameIsBuffer = false)</span>
|
|
583
646
|
|
|
@@ -593,23 +656,23 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
|
|
|
593
656
|
</p>
|
|
594
657
|
|
|
595
658
|
<p><a class="source-toggle" href="#"
|
|
596
|
-
onclick="toggleCode('
|
|
597
|
-
<div class="method-source-code" id="
|
|
659
|
+
onclick="toggleCode('M000727-source');return false;">[Source]</a></p>
|
|
660
|
+
<div class="method-source-code" id="M000727-source">
|
|
598
661
|
<pre>
|
|
599
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
662
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 165</span>
|
|
663
|
+
165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileNameIsBuffer</span> = <span class="ruby-keyword kw">false</span>)
|
|
664
|
+
166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fileNameIsBuffer</span>
|
|
665
|
+
167: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">BufferStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
|
|
666
|
+
168: <span class="ruby-keyword kw">else</span>
|
|
667
|
+
169: <span class="ruby-keyword kw">begin</span>
|
|
668
|
+
170: <span class="ruby-ivar">@fileStack</span> = [ [ <span class="ruby-ivar">@cf</span> = <span class="ruby-constant">FileStreamHandle</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@masterFile</span>), <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span> ] ]
|
|
669
|
+
171: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">StandardError</span>
|
|
670
|
+
172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">"Cannot open file #{@masterFile}"</span>
|
|
671
|
+
173: <span class="ruby-keyword kw">end</span>
|
|
672
|
+
174: <span class="ruby-keyword kw">end</span>
|
|
673
|
+
175: <span class="ruby-ivar">@masterPath</span> = <span class="ruby-ivar">@cf</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
|
674
|
+
176: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@lastPos</span> = <span class="ruby-keyword kw">nil</span>
|
|
675
|
+
177: <span class="ruby-keyword kw">end</span>
|
|
613
676
|
</pre>
|
|
614
677
|
</div>
|
|
615
678
|
|
|
@@ -617,12 +680,12 @@ Start the processing. if <em>fileNameIsBuffer</em> is true, we operate on a
|
|
|
617
680
|
</div>
|
|
618
681
|
|
|
619
682
|
|
|
620
|
-
<div id="method-
|
|
621
|
-
<a name="
|
|
683
|
+
<div id="method-M000733" class="method-detail">
|
|
684
|
+
<a name="M000733"></a>
|
|
622
685
|
|
|
623
686
|
<div class="method-heading">
|
|
624
687
|
|
|
625
|
-
<a href="#
|
|
688
|
+
<a href="#M000733" class="method-signature">
|
|
626
689
|
|
|
627
690
|
<span class="method-name">returnToken</span><span class="method-args">(token)</span>
|
|
628
691
|
|
|
@@ -638,18 +701,19 @@ token can be returned before the next nextToken() call.
|
|
|
638
701
|
</p>
|
|
639
702
|
|
|
640
703
|
<p><a class="source-toggle" href="#"
|
|
641
|
-
onclick="toggleCode('
|
|
642
|
-
<div class="method-source-code" id="
|
|
704
|
+
onclick="toggleCode('M000733-source');return false;">[Source]</a></p>
|
|
705
|
+
<div class="method-source-code" id="M000733-source">
|
|
643
706
|
<pre>
|
|
644
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
707
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 314</span>
|
|
708
|
+
314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
709
|
+
315: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
710
|
+
316: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@tokenBuffer</span>
|
|
711
|
+
317: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Fatal Error: Cannot return more than 1 token in a row"</span>
|
|
712
|
+
318: <span class="ruby-keyword kw">end</span>
|
|
713
|
+
319: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
|
|
714
|
+
320: <span class="ruby-ivar">@tokenBufferPos</span> = <span class="ruby-ivar">@pos</span>
|
|
715
|
+
321: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@lastPos</span>
|
|
716
|
+
322: <span class="ruby-keyword kw">end</span>
|
|
653
717
|
</pre>
|
|
654
718
|
</div>
|
|
655
719
|
|
|
@@ -657,12 +721,12 @@ token can be returned before the next nextToken() call.
|
|
|
657
721
|
</div>
|
|
658
722
|
|
|
659
723
|
|
|
660
|
-
<div id="method-
|
|
661
|
-
<a name="
|
|
724
|
+
<div id="method-M000730" class="method-detail">
|
|
725
|
+
<a name="M000730"></a>
|
|
662
726
|
|
|
663
727
|
<div class="method-heading">
|
|
664
728
|
|
|
665
|
-
<a href="#
|
|
729
|
+
<a href="#M000730" class="method-signature">
|
|
666
730
|
|
|
667
731
|
<span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
|
|
668
732
|
|
|
@@ -678,13 +742,43 @@ processing prosition.
|
|
|
678
742
|
</p>
|
|
679
743
|
|
|
680
744
|
<p><a class="source-toggle" href="#"
|
|
681
|
-
onclick="toggleCode('
|
|
682
|
-
<div class="method-source-code" id="
|
|
745
|
+
onclick="toggleCode('M000730-source');return false;">[Source]</a></p>
|
|
746
|
+
<div class="method-source-code" id="M000730-source">
|
|
747
|
+
<pre>
|
|
748
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 224</span>
|
|
749
|
+
224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
750
|
+
225: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">clone</span> <span class="ruby-operator">:</span> <span class="ruby-constant">SourceFileInfo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-identifier">lineNo</span>, <span class="ruby-identifier">columnNo</span>)
|
|
751
|
+
226: <span class="ruby-keyword kw">end</span>
|
|
752
|
+
</pre>
|
|
753
|
+
</div>
|
|
754
|
+
|
|
755
|
+
</div>
|
|
756
|
+
</div>
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
<div id="method-M000738" class="method-detail">
|
|
760
|
+
<a name="M000738"></a>
|
|
761
|
+
|
|
762
|
+
<div class="method-heading">
|
|
763
|
+
|
|
764
|
+
<a href="#M000738" class="method-signature">
|
|
765
|
+
|
|
766
|
+
<span class="method-name">warning</span><span class="method-args">(id, text, property = nil)</span>
|
|
767
|
+
|
|
768
|
+
</a>
|
|
769
|
+
|
|
770
|
+
</div>
|
|
771
|
+
|
|
772
|
+
<div class="method-description">
|
|
773
|
+
|
|
774
|
+
<p><a class="source-toggle" href="#"
|
|
775
|
+
onclick="toggleCode('M000738-source');return false;">[Source]</a></p>
|
|
776
|
+
<div class="method-source-code" id="M000738-source">
|
|
683
777
|
<pre>
|
|
684
|
-
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
778
|
+
<span class="ruby-comment cmt"># File lib/TextScanner.rb, line 352</span>
|
|
779
|
+
352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span> = <span class="ruby-keyword kw">nil</span>)
|
|
780
|
+
353: <span class="ruby-identifier">message</span>(<span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">property</span>)
|
|
781
|
+
354: <span class="ruby-keyword kw">end</span>
|
|
688
782
|
</pre>
|
|
689
783
|
</div>
|
|
690
784
|
|