taskjuggler 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +280 -0
- data/README +31 -0
- data/Rakefile +20 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/allocate.tjp +30 -0
- data/benchmarks/booking.tjp +62 -0
- data/benchmarks/depends.tjp +112 -0
- data/benchmarks/htmltaskreport.tjp +45 -0
- data/benchmarks/runbench.rb +24 -0
- data/bin/tj3 +3 -0
- data/bin/tj3man +3 -0
- data/doc/classes/AppConfig.html +808 -0
- data/doc/classes/Arguments.html +226 -0
- data/doc/classes/String.html +395 -0
- data/doc/classes/TaskJuggler.html +1358 -0
- data/doc/classes/TaskJuggler/Account.html +257 -0
- data/doc/classes/TaskJuggler/AccountScenario.html +218 -0
- data/doc/classes/TaskJuggler/Allocation.html +419 -0
- data/doc/classes/TaskJuggler/AllocationAttribute.html +291 -0
- data/doc/classes/TaskJuggler/AttributeBase.html +608 -0
- data/doc/classes/TaskJuggler/AttributeDefinition.html +259 -0
- data/doc/classes/TaskJuggler/Booking.html +307 -0
- data/doc/classes/TaskJuggler/BookingListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/BooleanAttribute.html +261 -0
- data/doc/classes/TaskJuggler/CSVFile.html +325 -0
- data/doc/classes/TaskJuggler/Charge.html +279 -0
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +229 -0
- data/doc/classes/TaskJuggler/ChargeSet.html +440 -0
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +276 -0
- data/doc/classes/TaskJuggler/ColumnTable.html +260 -0
- data/doc/classes/TaskJuggler/DateAttribute.html +194 -0
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/DurationAttribute.html +229 -0
- data/doc/classes/TaskJuggler/FixnumAttribute.html +194 -0
- data/doc/classes/TaskJuggler/FlagListAttribute.html +263 -0
- data/doc/classes/TaskJuggler/FloatAttribute.html +229 -0
- data/doc/classes/TaskJuggler/GanttChart.html +667 -0
- data/doc/classes/TaskJuggler/GanttContainer.html +441 -0
- data/doc/classes/TaskJuggler/GanttHeader.html +280 -0
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +245 -0
- data/doc/classes/TaskJuggler/GanttLine.html +398 -0
- data/doc/classes/TaskJuggler/GanttLoadStack.html +327 -0
- data/doc/classes/TaskJuggler/GanttMilestone.html +415 -0
- data/doc/classes/TaskJuggler/GanttRouter.html +425 -0
- data/doc/classes/TaskJuggler/GanttTaskBar.html +429 -0
- data/doc/classes/TaskJuggler/HTMLDocument.html +240 -0
- data/doc/classes/TaskJuggler/HTMLGraphics.html +231 -0
- data/doc/classes/TaskJuggler/Interval.html +552 -0
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +796 -0
- data/doc/classes/TaskJuggler/Limits.html +416 -0
- data/doc/classes/TaskJuggler/Limits/Limit.html +381 -0
- data/doc/classes/TaskJuggler/LimitsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/Log.html +613 -0
- data/doc/classes/TaskJuggler/LogicalAttribute.html +226 -0
- data/doc/classes/TaskJuggler/LogicalExpression.html +251 -0
- data/doc/classes/TaskJuggler/LogicalFlag.html +229 -0
- data/doc/classes/TaskJuggler/LogicalFunction.html +324 -0
- data/doc/classes/TaskJuggler/LogicalOperation.html +299 -0
- data/doc/classes/TaskJuggler/Macro.html +194 -0
- data/doc/classes/TaskJuggler/MacroParser.html +360 -0
- data/doc/classes/TaskJuggler/MacroTable.html +366 -0
- data/doc/classes/TaskJuggler/Message.html +281 -0
- data/doc/classes/TaskJuggler/MessageHandler.html +215 -0
- data/doc/classes/TaskJuggler/Project.html +1606 -0
- data/doc/classes/TaskJuggler/ProjectFileParser.html +412 -0
- data/doc/classes/TaskJuggler/PropertyList.html +597 -0
- data/doc/classes/TaskJuggler/PropertySet.html +1200 -0
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +1449 -0
- data/doc/classes/TaskJuggler/Query.html +600 -0
- data/doc/classes/TaskJuggler/RealFormat.html +252 -0
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +194 -0
- data/doc/classes/TaskJuggler/Report.html +528 -0
- data/doc/classes/TaskJuggler/ReportElement.html +1070 -0
- data/doc/classes/TaskJuggler/ReportTable.html +497 -0
- data/doc/classes/TaskJuggler/ReportTableCell.html +518 -0
- data/doc/classes/TaskJuggler/ReportTableColumn.html +364 -0
- data/doc/classes/TaskJuggler/ReportTableElement.html +644 -0
- data/doc/classes/TaskJuggler/ReportTableLegend.html +343 -0
- data/doc/classes/TaskJuggler/ReportTableLine.html +431 -0
- data/doc/classes/TaskJuggler/Resource.html +211 -0
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/ResourceListRE.html +249 -0
- data/doc/classes/TaskJuggler/ResourceScenario.html +1137 -0
- data/doc/classes/TaskJuggler/RichText.html +537 -0
- data/doc/classes/TaskJuggler/RichTextAttribute.html +229 -0
- data/doc/classes/TaskJuggler/RichTextDocument.html +418 -0
- data/doc/classes/TaskJuggler/RichTextElement.html +829 -0
- data/doc/classes/TaskJuggler/RichTextException.html +212 -0
- data/doc/classes/TaskJuggler/RichTextParser.html +317 -0
- data/doc/classes/TaskJuggler/RichTextProtocolExample.html +303 -0
- data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +194 -0
- data/doc/classes/TaskJuggler/RichTextScanner.html +561 -0
- data/doc/classes/TaskJuggler/RichTextSnip.html +364 -0
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +883 -0
- data/doc/classes/TaskJuggler/Scenario.html +163 -0
- data/doc/classes/TaskJuggler/ScenarioData.html +354 -0
- data/doc/classes/TaskJuggler/Scoreboard.html +638 -0
- data/doc/classes/TaskJuggler/Shift.html +255 -0
- data/doc/classes/TaskJuggler/ShiftAssignment.html +488 -0
- data/doc/classes/TaskJuggler/ShiftAssignments.html +715 -0
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +261 -0
- data/doc/classes/TaskJuggler/ShiftScenario.html +282 -0
- data/doc/classes/TaskJuggler/SourceFileInfo.html +247 -0
- data/doc/classes/TaskJuggler/StringAttribute.html +229 -0
- data/doc/classes/TaskJuggler/SymbolAttribute.html +194 -0
- data/doc/classes/TaskJuggler/SyntaxReference.html +516 -0
- data/doc/classes/TaskJuggler/TOCEntry.html +242 -0
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +273 -0
- data/doc/classes/TaskJuggler/TableOfContents.html +256 -0
- data/doc/classes/TaskJuggler/Task.html +203 -0
- data/doc/classes/TaskJuggler/TaskDependency.html +251 -0
- data/doc/classes/TaskJuggler/TaskListAttribute.html +267 -0
- data/doc/classes/TaskJuggler/TaskListRE.html +250 -0
- data/doc/classes/TaskJuggler/TaskScenario.html +2206 -0
- data/doc/classes/TaskJuggler/TextParser.html +670 -0
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +923 -0
- data/doc/classes/TaskJuggler/TextParser/Rule.html +779 -0
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +267 -0
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +212 -0
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +221 -0
- data/doc/classes/TaskJuggler/TextScanner.html +708 -0
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +355 -0
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +341 -0
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +260 -0
- data/doc/classes/TaskJuggler/TjException.html +185 -0
- data/doc/classes/TaskJuggler/TjTime.html +1845 -0
- data/doc/classes/TaskJuggler/TjpExample.html +310 -0
- data/doc/classes/TaskJuggler/TjpExportRE.html +329 -0
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +8928 -0
- data/doc/classes/TaskJuggler/UserManual.html +606 -0
- data/doc/classes/TaskJuggler/WorkingHours.html +582 -0
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +284 -0
- data/doc/classes/TaskJuggler/XMLBlob.html +207 -0
- data/doc/classes/TaskJuggler/XMLComment.html +206 -0
- data/doc/classes/TaskJuggler/XMLDocument.html +293 -0
- data/doc/classes/TaskJuggler/XMLElement.html +341 -0
- data/doc/classes/TaskJuggler/XMLNamedText.html +174 -0
- data/doc/classes/TaskJuggler/XMLText.html +221 -0
- data/doc/files/COPYING.html +448 -0
- data/doc/files/README.html +134 -0
- data/doc/files/lib/AccountScenario_rb.html +116 -0
- data/doc/files/lib/Account_rb.html +118 -0
- data/doc/files/lib/Allocation_rb.html +118 -0
- data/doc/files/lib/AppConfig_rb.html +116 -0
- data/doc/files/lib/AttributeBase_rb.html +106 -0
- data/doc/files/lib/AttributeDefinition_rb.html +106 -0
- data/doc/files/lib/Attributes_rb.html +130 -0
- data/doc/files/lib/Booking_rb.html +106 -0
- data/doc/files/lib/ChargeSet_rb.html +116 -0
- data/doc/files/lib/Charge_rb.html +116 -0
- data/doc/files/lib/HTMLDocument_rb.html +116 -0
- data/doc/files/lib/Interval_rb.html +116 -0
- data/doc/files/lib/KeywordDocumentation_rb.html +122 -0
- data/doc/files/lib/Limits_rb.html +116 -0
- data/doc/files/lib/Log_rb.html +116 -0
- data/doc/files/lib/LogicalExpression_rb.html +122 -0
- data/doc/files/lib/LogicalFlag_rb.html +116 -0
- data/doc/files/lib/LogicalFunction_rb.html +116 -0
- data/doc/files/lib/LogicalOperation_rb.html +116 -0
- data/doc/files/lib/MacroParser_rb.html +118 -0
- data/doc/files/lib/MacroTable_rb.html +122 -0
- data/doc/files/lib/MessageHandler_rb.html +106 -0
- data/doc/files/lib/Message_rb.html +116 -0
- data/doc/files/lib/ProjectFileParser_rb.html +122 -0
- data/doc/files/lib/Project_rb.html +148 -0
- data/doc/files/lib/PropertyList_rb.html +106 -0
- data/doc/files/lib/PropertySet_rb.html +118 -0
- data/doc/files/lib/PropertyTreeNode_rb.html +106 -0
- data/doc/files/lib/Query_rb.html +116 -0
- data/doc/files/lib/RealFormat_rb.html +106 -0
- data/doc/files/lib/ResourceScenario_rb.html +116 -0
- data/doc/files/lib/Resource_rb.html +118 -0
- data/doc/files/lib/RichTextDocument_rb.html +120 -0
- data/doc/files/lib/RichTextElement_rb.html +120 -0
- data/doc/files/lib/RichTextParser_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolExample_rb.html +120 -0
- data/doc/files/lib/RichTextProtocolHandler_rb.html +106 -0
- data/doc/files/lib/RichTextScanner_rb.html +116 -0
- data/doc/files/lib/RichTextSnip_rb.html +118 -0
- data/doc/files/lib/RichTextSyntaxRules_rb.html +106 -0
- data/doc/files/lib/RichText_rb.html +118 -0
- data/doc/files/lib/ScenarioData_rb.html +118 -0
- data/doc/files/lib/Scenario_rb.html +116 -0
- data/doc/files/lib/Scoreboard_rb.html +106 -0
- data/doc/files/lib/ShiftAssignments_rb.html +116 -0
- data/doc/files/lib/ShiftScenario_rb.html +116 -0
- data/doc/files/lib/Shift_rb.html +118 -0
- data/doc/files/lib/SourceFileInfo_rb.html +106 -0
- data/doc/files/lib/SyntaxReference_rb.html +122 -0
- data/doc/files/lib/TOCEntry_rb.html +118 -0
- data/doc/files/lib/TableColumnDefinition_rb.html +106 -0
- data/doc/files/lib/TableOfContents_rb.html +118 -0
- data/doc/files/lib/TaskDependency_rb.html +106 -0
- data/doc/files/lib/TaskJuggler_rb.html +120 -0
- data/doc/files/lib/TaskScenario_rb.html +116 -0
- data/doc/files/lib/Task_rb.html +118 -0
- data/doc/files/lib/TextParser/Pattern_rb.html +116 -0
- data/doc/files/lib/TextParser/Rule_rb.html +106 -0
- data/doc/files/lib/TextParser/StackElement_rb.html +106 -0
- data/doc/files/lib/TextParser/TokenDoc_rb.html +106 -0
- data/doc/files/lib/TextParser_rb.html +124 -0
- data/doc/files/lib/TextScanner_rb.html +128 -0
- data/doc/files/lib/Tj3Config_rb.html +118 -0
- data/doc/files/lib/TjException_rb.html +106 -0
- data/doc/files/lib/TjTime_rb.html +118 -0
- data/doc/files/lib/TjpExample_rb.html +116 -0
- data/doc/files/lib/TjpSyntaxRules_rb.html +106 -0
- data/doc/files/lib/UTF8String_rb.html +132 -0
- data/doc/files/lib/UserManual_rb.html +124 -0
- data/doc/files/lib/WorkingHours_rb.html +116 -0
- data/doc/files/lib/XMLDocument_rb.html +116 -0
- data/doc/files/lib/XMLElement_rb.html +116 -0
- data/doc/files/lib/reports/CSVFile_rb.html +116 -0
- data/doc/files/lib/reports/ColumnTable_rb.html +116 -0
- data/doc/files/lib/reports/GanttChart_rb.html +122 -0
- data/doc/files/lib/reports/GanttContainer_rb.html +116 -0
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +106 -0
- data/doc/files/lib/reports/GanttHeader_rb.html +116 -0
- data/doc/files/lib/reports/GanttLine_rb.html +126 -0
- data/doc/files/lib/reports/GanttLoadStack_rb.html +116 -0
- data/doc/files/lib/reports/GanttMilestone_rb.html +116 -0
- data/doc/files/lib/reports/GanttRouter_rb.html +106 -0
- data/doc/files/lib/reports/GanttTaskBar_rb.html +116 -0
- data/doc/files/lib/reports/HTMLGraphics_rb.html +106 -0
- data/doc/files/lib/reports/ReportElement_rb.html +118 -0
- data/doc/files/lib/reports/ReportTableCell_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableColumn_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableElement_rb.html +122 -0
- data/doc/files/lib/reports/ReportTableLegend_rb.html +106 -0
- data/doc/files/lib/reports/ReportTableLine_rb.html +116 -0
- data/doc/files/lib/reports/ReportTable_rb.html +118 -0
- data/doc/files/lib/reports/Report_rb.html +126 -0
- data/doc/files/lib/reports/ResourceListRE_rb.html +122 -0
- data/doc/files/lib/reports/TaskListRE_rb.html +122 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +116 -0
- data/doc/files/lib/taskjuggler3_rb.html +276 -0
- data/doc/files/lib/tj3man_rb.html +189 -0
- data/doc/fr_class_index.html +285 -0
- data/doc/fr_file_index.html +223 -0
- data/doc/fr_method_index.html +1953 -0
- data/doc/index.html +21 -0
- data/doc/rdoc-style.css +299 -0
- data/examples/tutorial.tjp +361 -0
- data/gem_spec.rb +30 -0
- data/lib/Account.rb +50 -0
- data/lib/AccountScenario.rb +39 -0
- data/lib/Allocation.rb +102 -0
- data/lib/AppConfig.rb +134 -0
- data/lib/AttributeBase.rb +131 -0
- data/lib/AttributeDefinition.rb +47 -0
- data/lib/Attributes.rb +478 -0
- data/lib/BatchProcessor.rb +209 -0
- data/lib/Booking.rb +59 -0
- data/lib/Charge.rb +71 -0
- data/lib/ChargeSet.rb +126 -0
- data/lib/HTMLDocument.rb +59 -0
- data/lib/Interval.rb +127 -0
- data/lib/KeywordDocumentation.rb +560 -0
- data/lib/Limits.rb +219 -0
- data/lib/Log.rb +160 -0
- data/lib/LogicalExpression.rb +71 -0
- data/lib/LogicalFlag.rb +34 -0
- data/lib/LogicalFunction.rb +102 -0
- data/lib/LogicalOperation.rb +118 -0
- data/lib/MacroParser.rb +77 -0
- data/lib/MacroTable.rb +84 -0
- data/lib/Message.rb +56 -0
- data/lib/MessageHandler.rb +34 -0
- data/lib/Project.rb +662 -0
- data/lib/ProjectFileParser.rb +333 -0
- data/lib/PropertyList.rb +181 -0
- data/lib/PropertySet.rb +304 -0
- data/lib/PropertyTreeNode.rb +461 -0
- data/lib/Query.rb +227 -0
- data/lib/RealFormat.rb +73 -0
- data/lib/Resource.rb +42 -0
- data/lib/ResourceScenario.rb +511 -0
- data/lib/RichText.rb +147 -0
- data/lib/RichTextDocument.rb +139 -0
- data/lib/RichTextElement.rb +391 -0
- data/lib/RichTextParser.rb +66 -0
- data/lib/RichTextProtocolExample.rb +65 -0
- data/lib/RichTextProtocolHandler.rb +35 -0
- data/lib/RichTextScanner.rb +390 -0
- data/lib/RichTextSnip.rb +104 -0
- data/lib/RichTextSyntaxRules.rb +265 -0
- data/lib/Scenario.rb +27 -0
- data/lib/ScenarioData.rb +65 -0
- data/lib/Scoreboard.rb +141 -0
- data/lib/Shift.rb +48 -0
- data/lib/ShiftAssignments.rb +291 -0
- data/lib/ShiftScenario.rb +46 -0
- data/lib/SourceFileInfo.rb +37 -0
- data/lib/SyntaxReference.rb +284 -0
- data/lib/TOCEntry.rb +76 -0
- data/lib/TableColumnDefinition.rb +54 -0
- data/lib/TableOfContents.rb +46 -0
- data/lib/Task.rb +37 -0
- data/lib/TaskDependency.rb +39 -0
- data/lib/TaskJuggler.rb +84 -0
- data/lib/TaskScenario.rb +1622 -0
- data/lib/TextParser.rb +416 -0
- data/lib/TextParser/Pattern.rb +263 -0
- data/lib/TextParser/Rule.rb +171 -0
- data/lib/TextParser/StackElement.rb +45 -0
- data/lib/TextParser/TokenDoc.rb +38 -0
- data/lib/TextScanner.rb +682 -0
- data/lib/Tj3Config.rb +27 -0
- data/lib/TjException.rb +27 -0
- data/lib/TjTime.rb +395 -0
- data/lib/TjpExample.rb +119 -0
- data/lib/TjpSyntaxRules.rb +4022 -0
- data/lib/UTF8String.rb +100 -0
- data/lib/UserManual.rb +282 -0
- data/lib/WorkingHours.rb +323 -0
- data/lib/XMLDocument.rb +54 -0
- data/lib/XMLElement.rb +175 -0
- data/lib/reports/CSVFile.rb +146 -0
- data/lib/reports/ColumnTable.rb +66 -0
- data/lib/reports/GanttChart.rb +308 -0
- data/lib/reports/GanttContainer.rb +107 -0
- data/lib/reports/GanttHeader.rb +141 -0
- data/lib/reports/GanttHeaderScaleItem.rb +42 -0
- data/lib/reports/GanttLine.rb +329 -0
- data/lib/reports/GanttLoadStack.rb +113 -0
- data/lib/reports/GanttMilestone.rb +80 -0
- data/lib/reports/GanttRouter.rb +375 -0
- data/lib/reports/GanttTaskBar.rb +95 -0
- data/lib/reports/HTMLGraphics.rb +65 -0
- data/lib/reports/Report.rb +344 -0
- data/lib/reports/ReportElement.rb +427 -0
- data/lib/reports/ReportTable.rb +144 -0
- data/lib/reports/ReportTableCell.rb +142 -0
- data/lib/reports/ReportTableColumn.rb +82 -0
- data/lib/reports/ReportTableElement.rb +852 -0
- data/lib/reports/ReportTableLegend.rb +167 -0
- data/lib/reports/ReportTableLine.rb +87 -0
- data/lib/reports/ResourceListRE.rb +72 -0
- data/lib/reports/TaskListRE.rb +73 -0
- data/lib/reports/TjpExportRE.rb +394 -0
- data/lib/taskjuggler3.rb +106 -0
- data/lib/tj3man.rb +88 -0
- data/manual/Day_To_Day_Juggling +168 -0
- data/manual/Getting_Started +61 -0
- data/manual/How_To_Contribute +185 -0
- data/manual/Installation +68 -0
- data/manual/Intro +102 -0
- data/manual/Reporting_Bugs +26 -0
- data/manual/Rich_Text_Attributes +90 -0
- data/manual/TaskJuggler_2x_Migration +40 -0
- data/manual/Tutorial +579 -0
- data/manual/fdl +450 -0
- data/prj_cfg.rb +43 -0
- data/setup.rb +1585 -0
- data/tasks/csts.rake +72 -0
- data/tasks/gem.rake +14 -0
- data/tasks/manual.rake +10 -0
- data/tasks/missing.rake +21 -0
- data/tasks/rcov.rake +14 -0
- data/tasks/rdoc.rake +17 -0
- data/tasks/rexml_fix.rb +16 -0
- data/tasks/rexml_fix_19.rb +49 -0
- data/tasks/show.rake +21 -0
- data/tasks/stats.rake +25 -0
- data/tasks/test.rake +11 -0
- data/test/MessageChecker.rb +53 -0
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +7 -0
- data/test/TestSuite/CSV-Reports/genrefs +6 -0
- data/test/TestSuite/CSV-Reports/project-1.tji +57 -0
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -0
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +11 -0
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +8 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +10 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -0
- data/test/TestSuite/CSV-Reports/taskreport.tjp +10 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +24 -0
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +86 -0
- data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +63 -0
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +161 -0
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +129 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +81 -0
- data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +43 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +28 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +33 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +34 -0
- data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +62 -0
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +50 -0
- data/test/TestSuite/Scheduler/Correct/Shift.tjp +102 -0
- data/test/TestSuite/Scheduler/Errors/account_no_leaf.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/booking_conflict.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/booking_on_vacation.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/container_booking.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/container_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/effort_no_allocations.tjp +7 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +19 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +27 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +26 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +24 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +18 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +36 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +37 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +35 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +46 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +51 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +20 -0
- data/test/TestSuite/Scheduler/Errors/maxend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/maxstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_booking.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/milestone_duration.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/milestone_start_end.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minend.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/minstart.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/no_tasks.tjp +6 -0
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_child.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +13 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_parent.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_self.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_depend_unknown.tjp +10 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_1.tjp +9 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_2.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_overspecified_3.tjp +14 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_1.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +8 -0
- data/test/TestSuite/Scheduler/Errors/task_underspecified_3.tjp +9 -0
- data/test/TestSuite/Syntax/Correct/Account.tjp +53 -0
- data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/Alternative.tjp +13 -0
- data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Caption.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Comments.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Complete.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji +20 -0
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/Depends1.tjp +22 -0
- data/test/TestSuite/Syntax/Correct/Durations.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Efficiency.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Export.tjp +40 -0
- data/test/TestSuite/Syntax/Correct/Flags.tjp +32 -0
- data/test/TestSuite/Syntax/Correct/Freeze.tjp +28 -0
- data/test/TestSuite/Syntax/Correct/Gap.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +71 -0
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +31 -0
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Mandatory.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Milestone.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/MinMax.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Numberformat.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Period.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Persistent.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/Precedes1.tjp +17 -0
- data/test/TestSuite/Syntax/Correct/Priority.tjp +30 -0
- data/test/TestSuite/Syntax/Correct/Project.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +23 -0
- data/test/TestSuite/Syntax/Correct/RawHTML.tjp +29 -0
- data/test/TestSuite/Syntax/Correct/Reports.tjp +54 -0
- data/test/TestSuite/Syntax/Correct/Resource.tjp +20 -0
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +16 -0
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +15 -0
- data/test/TestSuite/Syntax/Correct/Scheduling.tjp +26 -0
- data/test/TestSuite/Syntax/Correct/Select.tjp +27 -0
- data/test/TestSuite/Syntax/Correct/Shift.tjp +55 -0
- data/test/TestSuite/Syntax/Correct/Simple.tjp +25 -0
- data/test/TestSuite/Syntax/Correct/String.tjp +12 -0
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +24 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +34 -0
- data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +19 -0
- data/test/TestSuite/Syntax/Correct/Timezone.tjp +8 -0
- data/test/TestSuite/Syntax/Correct/Vacation.tjp +33 -0
- data/test/TestSuite/Syntax/Correct/csvtest +16 -0
- data/test/TestSuite/Syntax/Correct/manual2example.rb +24 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +485 -0
- data/test/TestSuite/Syntax/Errors/bad_include.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/booking_group.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/booking_milestone.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/booking_no_leaf.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/chargeset.tjp +14 -0
- data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/container_attribute.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/date_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/effort_zero.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/export_bad_extn.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/extend_id_cap.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_end_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/interval_start_in_range.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/leaf_resource_id_expected.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/misaligned_date.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/operand_attribute.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/overtime_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/purge_no_list.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/purge_unknown_id.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/report_end.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/report_start.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/resource_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/resource_id_expected.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +24 -0
- data/test/TestSuite/Syntax/Errors/scenario_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_assignment_overlap.tjp +15 -0
- data/test/TestSuite/Syntax/Errors/shift_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/shift_id_expected.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/sloppy_range.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/sort_direction.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/start_before_end1.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/start_before_end2.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/task_complete.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_exists.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/task_priority.tjp +8 -0
- data/test/TestSuite/Syntax/Errors/task_without_chargeset.tjp +9 -0
- data/test/TestSuite/Syntax/Errors/time_interval.tjp +12 -0
- data/test/TestSuite/Syntax/Errors/too_many_bangs.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/undecl_flag.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_projectid.tjp +7 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_id.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +11 -0
- data/test/TestSuite/Syntax/Errors/unknown_task.tjp +10 -0
- data/test/all.rb +31 -0
- data/test/test_BatchProcessor.rb +54 -0
- data/test/test_CSV-Reports.rb +101 -0
- data/test/test_Limits.rb +104 -0
- data/test/test_LogicalExpression.rb +110 -0
- data/test/test_MacroTable.rb +51 -0
- data/test/test_Project.rb +57 -0
- data/test/test_PropertySet.rb +71 -0
- data/test/test_Query.rb +83 -0
- data/test/test_RealFormat.rb +83 -0
- data/test/test_RichText.rb +869 -0
- data/test/test_Scheduler.rb +42 -0
- data/test/test_ShiftAssignments.rb +77 -0
- data/test/test_Syntax.rb +41 -0
- data/test/test_TextScanner.rb +95 -0
- data/test/test_TjTime.rb +114 -0
- data/test/test_TjpExample.rb +169 -0
- data/test/test_UTF8String.rb +84 -0
- data/test/test_WorkingHours.rb +56 -0
- metadata +649 -0
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Class: TaskJuggler::RichTextScanner [TaskJuggler III API documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Class</strong></td>
|
|
49
|
+
<td class="class-name-in-header">TaskJuggler::RichTextScanner</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../files/lib/RichTextScanner_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/RichTextScanner.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<tr class="top-aligned-row">
|
|
70
|
+
<td><strong>Parent:</strong></td>
|
|
71
|
+
<td>
|
|
72
|
+
|
|
73
|
+
Object
|
|
74
|
+
|
|
75
|
+
</td>
|
|
76
|
+
</tr>
|
|
77
|
+
|
|
78
|
+
</table>
|
|
79
|
+
</div>
|
|
80
|
+
<!-- banner header -->
|
|
81
|
+
|
|
82
|
+
<div id="bodyContent">
|
|
83
|
+
|
|
84
|
+
<div id="contextContent">
|
|
85
|
+
|
|
86
|
+
<div id="description">
|
|
87
|
+
<p>
|
|
88
|
+
The <a href="RichTextScanner.html">RichTextScanner</a> is used by the <a
|
|
89
|
+
href="RichTextParser.html">RichTextParser</a> to chop the input text into
|
|
90
|
+
digestable tokens. The parser and the scanner only communicate over <a
|
|
91
|
+
href="RichTextScanner.html#M000610">RichTextScanner#nextToken</a> and <a
|
|
92
|
+
href="RichTextScanner.html#M000611">RichTextScanner#returnToken</a>. The
|
|
93
|
+
scanner can break the text into words and special tokens.
|
|
94
|
+
</p>
|
|
95
|
+
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
<div id="method-list">
|
|
102
|
+
<h3 class="section-bar">Methods</h3>
|
|
103
|
+
|
|
104
|
+
<div class="name-list">
|
|
105
|
+
|
|
106
|
+
<a href="#M000614">error</a>
|
|
107
|
+
|
|
108
|
+
<a href="#M000613">fileName</a>
|
|
109
|
+
|
|
110
|
+
<a href="#M000609">new</a>
|
|
111
|
+
|
|
112
|
+
<a href="#M000610">nextToken</a>
|
|
113
|
+
|
|
114
|
+
<a href="#M000611">returnToken</a>
|
|
115
|
+
|
|
116
|
+
<a href="#M000612">sourceFileInfo</a>
|
|
117
|
+
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<!-- if includes -->
|
|
124
|
+
|
|
125
|
+
<div id="section">
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
<!-- if method_list -->
|
|
131
|
+
|
|
132
|
+
<div id="methods">
|
|
133
|
+
|
|
134
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
<div id="method-M000609" class="method-detail">
|
|
138
|
+
<a name="M000609"></a>
|
|
139
|
+
|
|
140
|
+
<div class="method-heading">
|
|
141
|
+
|
|
142
|
+
<a href="#M000609" class="method-signature">
|
|
143
|
+
|
|
144
|
+
<span class="method-name">new</span><span class="method-args">(text)</span>
|
|
145
|
+
|
|
146
|
+
</a>
|
|
147
|
+
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<div class="method-description">
|
|
151
|
+
|
|
152
|
+
<p>
|
|
153
|
+
Create the <a href="RichTextScanner.html">RichTextScanner</a> object and
|
|
154
|
+
initialize all state variables.
|
|
155
|
+
</p>
|
|
156
|
+
|
|
157
|
+
<p><a class="source-toggle" href="#"
|
|
158
|
+
onclick="toggleCode('M000609-source');return false;">[Source]</a></p>
|
|
159
|
+
<div class="method-source-code" id="M000609-source">
|
|
160
|
+
<pre>
|
|
161
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 24</span>
|
|
162
|
+
24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>)
|
|
163
|
+
25: <span class="ruby-comment cmt"># The token buffer is used to hold a returned token. Only one token can</span>
|
|
164
|
+
26: <span class="ruby-comment cmt"># be returned at a time.</span>
|
|
165
|
+
27: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
166
|
+
28: <span class="ruby-comment cmt"># A reference to the input text.</span>
|
|
167
|
+
29: <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>
|
|
168
|
+
30: <span class="ruby-comment cmt"># The reference text should not change during processing. So we can</span>
|
|
169
|
+
31: <span class="ruby-comment cmt"># determine the length upfront. It's frequently used.</span>
|
|
170
|
+
32: <span class="ruby-ivar">@textLength</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">length</span>
|
|
171
|
+
33: <span class="ruby-comment cmt"># The number of current line.</span>
|
|
172
|
+
34: <span class="ruby-ivar">@lineNo</span> = <span class="ruby-value">1</span>
|
|
173
|
+
35: <span class="ruby-comment cmt"># This is the current position withing @text.</span>
|
|
174
|
+
36: <span class="ruby-ivar">@pos</span> = <span class="ruby-value">0</span>
|
|
175
|
+
37: <span class="ruby-comment cmt"># This flag is set to true whenever we are at the start of a text line.</span>
|
|
176
|
+
38: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
|
|
177
|
+
39: <span class="ruby-comment cmt"># This is the position of the start of the currently processed line.</span>
|
|
178
|
+
40: <span class="ruby-comment cmt"># It's only used for error reporting.</span>
|
|
179
|
+
41: <span class="ruby-ivar">@lineStart</span> = <span class="ruby-value">0</span>
|
|
180
|
+
42: <span class="ruby-comment cmt"># Most of the wiki markup interpretation can be turned on/off by using</span>
|
|
181
|
+
43: <span class="ruby-comment cmt"># <nowiki>...</nowiki> in the text. This flag keeps this state.</span>
|
|
182
|
+
44: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">true</span>
|
|
183
|
+
45: <span class="ruby-comment cmt"># Enable to trigger printout instead of exception.</span>
|
|
184
|
+
46: <span class="ruby-ivar">@debug</span> = <span class="ruby-keyword kw">false</span>
|
|
185
|
+
47: <span class="ruby-keyword kw">end</span>
|
|
186
|
+
</pre>
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
<div id="method-M000614" class="method-detail">
|
|
197
|
+
<a name="M000614"></a>
|
|
198
|
+
|
|
199
|
+
<div class="method-heading">
|
|
200
|
+
|
|
201
|
+
<a href="#M000614" class="method-signature">
|
|
202
|
+
|
|
203
|
+
<span class="method-name">error</span><span class="method-args">(id, text, foo)</span>
|
|
204
|
+
|
|
205
|
+
</a>
|
|
206
|
+
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<div class="method-description">
|
|
210
|
+
|
|
211
|
+
<p>
|
|
212
|
+
The parser uses this function to report any errors during parsing.
|
|
213
|
+
</p>
|
|
214
|
+
|
|
215
|
+
<p><a class="source-toggle" href="#"
|
|
216
|
+
onclick="toggleCode('M000614-source');return false;">[Source]</a></p>
|
|
217
|
+
<div class="method-source-code" id="M000614-source">
|
|
218
|
+
<pre>
|
|
219
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 253</span>
|
|
220
|
+
253: <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">foo</span>)
|
|
221
|
+
254: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
222
|
+
255: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"Line #{@lineNo}: #{text}\n"</span> <span class="ruby-operator">+</span>
|
|
223
|
+
256: <span class="ruby-node">"#{@text[@lineStart, @pos - @lineStart]}"</span>
|
|
224
|
+
257: <span class="ruby-keyword kw">else</span>
|
|
225
|
+
258: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RichTextException</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">id</span>, <span class="ruby-ivar">@lineNo</span>, <span class="ruby-identifier">text</span>,
|
|
226
|
+
259: <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@lineStart</span>, <span class="ruby-ivar">@pos</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@lineStart</span>])
|
|
227
|
+
260: <span class="ruby-keyword kw">end</span>
|
|
228
|
+
261: <span class="ruby-keyword kw">end</span>
|
|
229
|
+
</pre>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
<div id="method-M000613" class="method-detail">
|
|
237
|
+
<a name="M000613"></a>
|
|
238
|
+
|
|
239
|
+
<div class="method-heading">
|
|
240
|
+
|
|
241
|
+
<a href="#M000613" class="method-signature">
|
|
242
|
+
|
|
243
|
+
<span class="method-name">fileName</span><span class="method-args">()</span>
|
|
244
|
+
|
|
245
|
+
</a>
|
|
246
|
+
|
|
247
|
+
</div>
|
|
248
|
+
|
|
249
|
+
<div class="method-description">
|
|
250
|
+
|
|
251
|
+
<p>
|
|
252
|
+
This function makes more sense for parsers that process actual files. As we
|
|
253
|
+
don’t have a file name, we just return ‘input text’.
|
|
254
|
+
</p>
|
|
255
|
+
|
|
256
|
+
<p><a class="source-toggle" href="#"
|
|
257
|
+
onclick="toggleCode('M000613-source');return false;">[Source]</a></p>
|
|
258
|
+
<div class="method-source-code" id="M000613-source">
|
|
259
|
+
<pre>
|
|
260
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 248</span>
|
|
261
|
+
248: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fileName</span>
|
|
262
|
+
249: <span class="ruby-value str">'input text'</span>
|
|
263
|
+
250: <span class="ruby-keyword kw">end</span>
|
|
264
|
+
</pre>
|
|
265
|
+
</div>
|
|
266
|
+
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
<div id="method-M000610" class="method-detail">
|
|
272
|
+
<a name="M000610"></a>
|
|
273
|
+
|
|
274
|
+
<div class="method-heading">
|
|
275
|
+
|
|
276
|
+
<a href="#M000610" class="method-signature">
|
|
277
|
+
|
|
278
|
+
<span class="method-name">nextToken</span><span class="method-args">()</span>
|
|
279
|
+
|
|
280
|
+
</a>
|
|
281
|
+
|
|
282
|
+
</div>
|
|
283
|
+
|
|
284
|
+
<div class="method-description">
|
|
285
|
+
|
|
286
|
+
<p>
|
|
287
|
+
Return the next token from the input text.
|
|
288
|
+
</p>
|
|
289
|
+
|
|
290
|
+
<p><a class="source-toggle" href="#"
|
|
291
|
+
onclick="toggleCode('M000610-source');return false;">[Source]</a></p>
|
|
292
|
+
<div class="method-source-code" id="M000610-source">
|
|
293
|
+
<pre>
|
|
294
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 57</span>
|
|
295
|
+
57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
296
|
+
58: <span class="ruby-comment cmt"># If we have a returned token, this is returned first.</span>
|
|
297
|
+
59: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokenBuffer</span>
|
|
298
|
+
60: <span class="ruby-identifier">tok</span> = <span class="ruby-ivar">@tokenBuffer</span>
|
|
299
|
+
61: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
300
|
+
62: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tok</span>
|
|
301
|
+
63: <span class="ruby-keyword kw">end</span>
|
|
302
|
+
64:
|
|
303
|
+
65: <span class="ruby-comment cmt"># Some characters have only a special meaning at the start of the line.</span>
|
|
304
|
+
66: <span class="ruby-comment cmt"># When the last token pushed the cursor into a new line, this flag is set</span>
|
|
305
|
+
67: <span class="ruby-comment cmt"># to true.</span>
|
|
306
|
+
68: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@beginOfLine</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
307
|
+
69: <span class="ruby-comment cmt"># Reset the flag again.</span>
|
|
308
|
+
70: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">false</span>
|
|
309
|
+
71:
|
|
310
|
+
72: <span class="ruby-comment cmt"># We already know that the last newline was a real linebreak. Further</span>
|
|
311
|
+
73: <span class="ruby-comment cmt"># newlines can safely be ignored.</span>
|
|
312
|
+
74: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">"\n"</span>)
|
|
313
|
+
75:
|
|
314
|
+
76: <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>)
|
|
315
|
+
77: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
316
|
+
78: <span class="ruby-comment cmt"># Headings start with 2 or more = and must be followed by a space.</span>
|
|
317
|
+
79: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">4</span>)
|
|
318
|
+
80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
319
|
+
81: <span class="ruby-comment cmt"># 1 = does not mean anything. Push it back and process it as normal</span>
|
|
320
|
+
82: <span class="ruby-comment cmt"># text further down.</span>
|
|
321
|
+
83: <span class="ruby-identifier">returnChar</span>
|
|
322
|
+
84: <span class="ruby-keyword kw">else</span>
|
|
323
|
+
85: <span class="ruby-comment cmt"># Between the = characters and the title text must be exactly one</span>
|
|
324
|
+
86: <span class="ruby-comment cmt"># space.</span>
|
|
325
|
+
87: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"TITLE#{level - 1}"</span>, <span class="ruby-value str">'='</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
|
|
326
|
+
88: <span class="ruby-comment cmt"># If that's missing, The = are treated as normal text further down.</span>
|
|
327
|
+
89: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
328
|
+
90: <span class="ruby-keyword kw">end</span>
|
|
329
|
+
91: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
|
|
330
|
+
92: <span class="ruby-comment cmt"># Horizontal ruler. Must have exactly 4 -.</span>
|
|
331
|
+
93: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">4</span>)
|
|
332
|
+
94: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">"HLINE"</span>, <span class="ruby-value str">'-'</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
|
|
333
|
+
95: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
334
|
+
96: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'*'</span>
|
|
335
|
+
97: <span class="ruby-comment cmt"># Bullet lists start with one to three * characters.</span>
|
|
336
|
+
98: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'*'</span>)
|
|
337
|
+
99: <span class="ruby-comment cmt"># Between the * characters and the bullet text must be exactly one</span>
|
|
338
|
+
100: <span class="ruby-comment cmt"># space.</span>
|
|
339
|
+
101: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"BULLET#{level}"</span>, <span class="ruby-value str">'*'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
|
|
340
|
+
102: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
|
|
341
|
+
103: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
342
|
+
104: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
|
|
343
|
+
105: <span class="ruby-comment cmt"># Numbered list start with one to three # characters.</span>
|
|
344
|
+
106: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'#'</span>)
|
|
345
|
+
107: <span class="ruby-comment cmt"># Between the # characters and the bullet text must be exactly one</span>
|
|
346
|
+
108: <span class="ruby-comment cmt"># space.</span>
|
|
347
|
+
109: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"NUMBER#{level}"</span>, <span class="ruby-value str">'#'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span>
|
|
348
|
+
110: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
|
|
349
|
+
111: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
350
|
+
112: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>
|
|
351
|
+
113: <span class="ruby-comment cmt"># Lines that start with a space are treated as verbatim text.</span>
|
|
352
|
+
114: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">"PRE"</span>, <span class="ruby-identifier">readCode</span> ] <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">peek</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"\n"</span>
|
|
353
|
+
115: <span class="ruby-keyword kw">else</span>
|
|
354
|
+
116: <span class="ruby-comment cmt"># If the character is not a known control character we push it back</span>
|
|
355
|
+
117: <span class="ruby-comment cmt"># and treat it as normal text further down.</span>
|
|
356
|
+
118: <span class="ruby-identifier">returnChar</span>
|
|
357
|
+
119: <span class="ruby-keyword kw">end</span>
|
|
358
|
+
120: <span class="ruby-keyword kw">end</span>
|
|
359
|
+
121:
|
|
360
|
+
122: <span class="ruby-comment cmt"># Not all sequences of inline markup characters are control sequences. In</span>
|
|
361
|
+
123: <span class="ruby-comment cmt"># case we detect a sequence that has not the right number of characters,</span>
|
|
362
|
+
124: <span class="ruby-comment cmt"># we push them back and start over with this flag set to true.</span>
|
|
363
|
+
125: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
|
|
364
|
+
126:
|
|
365
|
+
127: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
366
|
+
128: <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
|
|
367
|
+
129: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">nil?</span>
|
|
368
|
+
130: <span class="ruby-comment cmt"># We've reached the end of the text.</span>
|
|
369
|
+
131: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
370
|
+
132: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"\t"</span>
|
|
371
|
+
133: <span class="ruby-comment cmt"># Sequences of tabs or spaces are treated as token boundaries, but</span>
|
|
372
|
+
134: <span class="ruby-comment cmt"># otherwise they are ignored.</span>
|
|
373
|
+
135: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">"\t"</span>)
|
|
374
|
+
136: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
375
|
+
137: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"'"</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ignoreInlineMarkup</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
376
|
+
138: <span class="ruby-comment cmt"># Sequence of 2 ' means italic, 3 ' means bold, 4 ' means monospaced</span>
|
|
377
|
+
139: <span class="ruby-comment cmt"># code, 5 ' means italic and bold. Anything else is just normal text.</span>
|
|
378
|
+
140: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">"'"</span>, <span class="ruby-value">5</span>)
|
|
379
|
+
141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
|
|
380
|
+
142: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'ITALIC'</span>, <span class="ruby-value str">"'"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
381
|
+
143: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span>
|
|
382
|
+
144: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BOLD'</span>, <span class="ruby-value str">"'"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
383
|
+
145: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
|
|
384
|
+
146: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'CODE'</span>, <span class="ruby-value str">"'"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
385
|
+
147: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">5</span>
|
|
386
|
+
148: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BOLDITALIC'</span>, <span class="ruby-value str">"'"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
387
|
+
149: <span class="ruby-keyword kw">else</span>
|
|
388
|
+
150: <span class="ruby-comment cmt"># We have not found the right syntax. Treat the found characters as</span>
|
|
389
|
+
151: <span class="ruby-comment cmt"># normal text. Push all ' back and start again but ignoring the '</span>
|
|
390
|
+
152: <span class="ruby-comment cmt"># code for once.</span>
|
|
391
|
+
153: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
392
|
+
154: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
393
|
+
155: <span class="ruby-keyword kw">next</span>
|
|
394
|
+
156: <span class="ruby-keyword kw">end</span>
|
|
395
|
+
157: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'='</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">ignoreInlineMarkup</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
396
|
+
158: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">4</span>)
|
|
397
|
+
159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span>
|
|
398
|
+
160: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"TITLE#{level - 1}END"</span>, <span class="ruby-value str">'='</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
399
|
+
161: <span class="ruby-keyword kw">else</span>
|
|
400
|
+
162: <span class="ruby-comment cmt"># We have not found the right syntax. Treat found characters as</span>
|
|
401
|
+
163: <span class="ruby-comment cmt"># normal text. Push all = back and start again but ignoring the =</span>
|
|
402
|
+
164: <span class="ruby-comment cmt"># code for once.</span>
|
|
403
|
+
165: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
404
|
+
166: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
405
|
+
167: <span class="ruby-keyword kw">next</span>
|
|
406
|
+
168: <span class="ruby-keyword kw">end</span>
|
|
407
|
+
169: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'['</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
408
|
+
170: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'['</span>, <span class="ruby-value">2</span>)
|
|
409
|
+
171: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'HREF'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'REF'</span>, <span class="ruby-value str">'['</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
410
|
+
172: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">']'</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
411
|
+
173: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">']'</span>, <span class="ruby-value">2</span>)
|
|
412
|
+
174: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'HREFEND'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'REFEND'</span>, <span class="ruby-value str">']'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">level</span> ]
|
|
413
|
+
175: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"\n"</span>
|
|
414
|
+
176: <span class="ruby-comment cmt"># Newlines are pretty important as they can terminate blocks and turn</span>
|
|
415
|
+
177: <span class="ruby-comment cmt"># the next character into the start of a control sequence.</span>
|
|
416
|
+
178: <span class="ruby-comment cmt"># Hard linebreaks consist of a newline followed by another newline or</span>
|
|
417
|
+
179: <span class="ruby-comment cmt"># any of the begin-of-line control characters.</span>
|
|
418
|
+
180: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>) <span class="ruby-operator">&&</span> <span class="ruby-value str">"\n*# =-"</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
|
|
419
|
+
181: <span class="ruby-identifier">returnChar</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"\n"</span>
|
|
420
|
+
182: <span class="ruby-comment cmt"># The next character may be a control character.</span>
|
|
421
|
+
183: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
|
|
422
|
+
184: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-value str">"\n"</span> ]
|
|
423
|
+
185: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">nil?</span>
|
|
424
|
+
186: <span class="ruby-comment cmt"># We hit the end of the text.</span>
|
|
425
|
+
187: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
426
|
+
188: <span class="ruby-keyword kw">else</span>
|
|
427
|
+
189: <span class="ruby-comment cmt"># Single line breaks are treated as spaces. Return the char after</span>
|
|
428
|
+
190: <span class="ruby-comment cmt"># the newline and start with this one again.</span>
|
|
429
|
+
191: <span class="ruby-identifier">returnChar</span>
|
|
430
|
+
192: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
431
|
+
193: <span class="ruby-keyword kw">end</span>
|
|
432
|
+
194: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'<'</span>
|
|
433
|
+
195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'nowiki>'</span>)
|
|
434
|
+
196: <span class="ruby-comment cmt"># Turn most wiki markup interpretation off.</span>
|
|
435
|
+
197: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'nowiki>'</span>.<span class="ruby-identifier">length</span>
|
|
436
|
+
198: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">false</span>
|
|
437
|
+
199: <span class="ruby-keyword kw">next</span>
|
|
438
|
+
200: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'/nowiki>'</span>)
|
|
439
|
+
201: <span class="ruby-comment cmt"># Turn most wiki markup interpretation on.</span>
|
|
440
|
+
202: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/nowiki>'</span>.<span class="ruby-identifier">length</span>
|
|
441
|
+
203: <span class="ruby-ivar">@wikiEnabled</span> = <span class="ruby-keyword kw">true</span>
|
|
442
|
+
204: <span class="ruby-keyword kw">next</span>
|
|
443
|
+
205: <span class="ruby-keyword kw">else</span>
|
|
444
|
+
206: <span class="ruby-identifier">returnChar</span>
|
|
445
|
+
207: <span class="ruby-keyword kw">end</span>
|
|
446
|
+
208: <span class="ruby-keyword kw">else</span>
|
|
447
|
+
209: <span class="ruby-comment cmt"># Reset this flag again.</span>
|
|
448
|
+
210: <span class="ruby-identifier">ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
|
|
449
|
+
211: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
|
|
450
|
+
212: <span class="ruby-identifier">str</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
451
|
+
213: <span class="ruby-comment cmt"># Now we can collect characters of a word until we hit a whitespace.</span>
|
|
452
|
+
214: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>) <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-value str">" \n\t"</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
|
|
453
|
+
215: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@wikiEnabled</span>
|
|
454
|
+
216: <span class="ruby-comment cmt"># Or at least to ' characters in a row.</span>
|
|
455
|
+
217: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"'"</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">peek</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"'"</span>
|
|
456
|
+
218: <span class="ruby-comment cmt"># Or a ] or <</span>
|
|
457
|
+
219: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-value str">']<'</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
|
|
458
|
+
220: <span class="ruby-keyword kw">else</span>
|
|
459
|
+
221: <span class="ruby-comment cmt"># Make sure we find the </nowiki> tag even within a word.</span>
|
|
460
|
+
222: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'<'</span>
|
|
461
|
+
223: <span class="ruby-keyword kw">end</span>
|
|
462
|
+
224: <span class="ruby-identifier">str</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
463
|
+
225: <span class="ruby-keyword kw">end</span>
|
|
464
|
+
226: <span class="ruby-comment cmt"># Return the character that indicated the word end.</span>
|
|
465
|
+
227: <span class="ruby-identifier">returnChar</span>
|
|
466
|
+
228: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-identifier">str</span> ]
|
|
467
|
+
229: <span class="ruby-keyword kw">end</span>
|
|
468
|
+
230: <span class="ruby-keyword kw">end</span>
|
|
469
|
+
231: <span class="ruby-keyword kw">end</span>
|
|
470
|
+
</pre>
|
|
471
|
+
</div>
|
|
472
|
+
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
<div id="method-M000611" class="method-detail">
|
|
478
|
+
<a name="M000611"></a>
|
|
479
|
+
|
|
480
|
+
<div class="method-heading">
|
|
481
|
+
|
|
482
|
+
<a href="#M000611" class="method-signature">
|
|
483
|
+
|
|
484
|
+
<span class="method-name">returnToken</span><span class="method-args">(token)</span>
|
|
485
|
+
|
|
486
|
+
</a>
|
|
487
|
+
|
|
488
|
+
</div>
|
|
489
|
+
|
|
490
|
+
<div class="method-description">
|
|
491
|
+
|
|
492
|
+
<p>
|
|
493
|
+
Return the last issued token to the token buffer.
|
|
494
|
+
</p>
|
|
495
|
+
|
|
496
|
+
<p><a class="source-toggle" href="#"
|
|
497
|
+
onclick="toggleCode('M000611-source');return false;">[Source]</a></p>
|
|
498
|
+
<div class="method-source-code" id="M000611-source">
|
|
499
|
+
<pre>
|
|
500
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 234</span>
|
|
501
|
+
234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
502
|
+
235: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@tokenBuffer</span>.<span class="ruby-identifier">nil?</span>
|
|
503
|
+
236: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-value str">'Token buffer overflow!'</span>
|
|
504
|
+
237: <span class="ruby-keyword kw">end</span>
|
|
505
|
+
238: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-identifier">token</span>
|
|
506
|
+
239: <span class="ruby-keyword kw">end</span>
|
|
507
|
+
</pre>
|
|
508
|
+
</div>
|
|
509
|
+
|
|
510
|
+
</div>
|
|
511
|
+
</div>
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
<div id="method-M000612" class="method-detail">
|
|
515
|
+
<a name="M000612"></a>
|
|
516
|
+
|
|
517
|
+
<div class="method-heading">
|
|
518
|
+
|
|
519
|
+
<a href="#M000612" class="method-signature">
|
|
520
|
+
|
|
521
|
+
<span class="method-name">sourceFileInfo</span><span class="method-args">()</span>
|
|
522
|
+
|
|
523
|
+
</a>
|
|
524
|
+
|
|
525
|
+
</div>
|
|
526
|
+
|
|
527
|
+
<div class="method-description">
|
|
528
|
+
|
|
529
|
+
<p>
|
|
530
|
+
<a href="Report.html">Report</a> the current cursor position.
|
|
531
|
+
</p>
|
|
532
|
+
|
|
533
|
+
<p><a class="source-toggle" href="#"
|
|
534
|
+
onclick="toggleCode('M000612-source');return false;">[Source]</a></p>
|
|
535
|
+
<div class="method-source-code" id="M000612-source">
|
|
536
|
+
<pre>
|
|
537
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 242</span>
|
|
538
|
+
242: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sourceFileInfo</span>
|
|
539
|
+
243: [ <span class="ruby-ivar">@lineNo</span>, <span class="ruby-ivar">@pos</span> ]
|
|
540
|
+
244: <span class="ruby-keyword kw">end</span>
|
|
541
|
+
</pre>
|
|
542
|
+
</div>
|
|
543
|
+
|
|
544
|
+
</div>
|
|
545
|
+
</div>
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
</div>
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
</div>
|
|
555
|
+
|
|
556
|
+
<div id="validator-badges">
|
|
557
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
558
|
+
</div>
|
|
559
|
+
|
|
560
|
+
</body>
|
|
561
|
+
</html>
|