taskjuggler 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +160 -0
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/data/css/tjreport.css +7 -2
- data/doc/AppConfig.html +10 -4
- data/doc/Arguments.html +10 -4
- data/doc/CHANGELOG.html +171 -5
- data/doc/COPYING.html +10 -4
- data/doc/Object.html +11 -107
- data/doc/README.html +10 -4
- data/doc/RuntimeConfig.html +10 -4
- data/doc/String.html +16 -11
- data/doc/StringIO.html +10 -4
- data/doc/TaskJuggler.html +506 -435
- data/doc/TaskJuggler/Account.html +10 -4
- data/doc/TaskJuggler/AccountAttribute.html +10 -4
- data/doc/TaskJuggler/AccountScenario.html +10 -4
- data/doc/TaskJuggler/Allocation.html +69 -60
- data/doc/TaskJuggler/AllocationAttribute.html +10 -4
- data/doc/TaskJuggler/AttributeBase.html +10 -4
- data/doc/TaskJuggler/AttributeDefinition.html +10 -4
- data/doc/TaskJuggler/BatchProcessor.html +202 -192
- data/doc/TaskJuggler/Booking.html +10 -4
- data/doc/TaskJuggler/BookingListAttribute.html +10 -4
- data/doc/TaskJuggler/BooleanAttribute.html +10 -4
- data/doc/TaskJuggler/CSVFile.html +10 -4
- data/doc/TaskJuggler/CellSettingPattern.html +10 -4
- data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
- data/doc/TaskJuggler/Charge.html +10 -4
- data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
- data/doc/TaskJuggler/ChargeSet.html +10 -4
- data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
- data/doc/TaskJuggler/ColumnTable.html +10 -4
- data/doc/TaskJuggler/Daemon.html +71 -52
- data/doc/TaskJuggler/DateAttribute.html +10 -4
- data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
- data/doc/TaskJuggler/DurationAttribute.html +10 -4
- data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
- data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
- data/doc/TaskJuggler/FixnumAttribute.html +10 -4
- data/doc/TaskJuggler/FlagListAttribute.html +10 -4
- data/doc/TaskJuggler/FloatAttribute.html +10 -4
- data/doc/TaskJuggler/FormatListAttribute.html +10 -4
- data/doc/TaskJuggler/GanttChart.html +10 -4
- data/doc/TaskJuggler/GanttContainer.html +14 -8
- data/doc/TaskJuggler/GanttHeader.html +10 -4
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
- data/doc/TaskJuggler/GanttLine.html +29 -24
- data/doc/TaskJuggler/GanttLoadStack.html +10 -4
- data/doc/TaskJuggler/GanttMilestone.html +10 -4
- data/doc/TaskJuggler/GanttRouter.html +10 -4
- data/doc/TaskJuggler/GanttTaskBar.html +20 -10
- data/doc/TaskJuggler/HTMLDocument.html +10 -4
- data/doc/TaskJuggler/HTMLGraphics.html +10 -4
- data/doc/TaskJuggler/Interval.html +10 -4
- data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
- data/doc/TaskJuggler/JobInfo.html +10 -4
- data/doc/TaskJuggler/Journal.html +227 -160
- data/doc/TaskJuggler/JournalEntry.html +10 -4
- data/doc/TaskJuggler/JournalEntryList.html +158 -72
- data/doc/TaskJuggler/KeywordArray.html +21 -9
- data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
- data/doc/TaskJuggler/Limits.html +13 -8
- data/doc/TaskJuggler/Limits/Limit.html +10 -4
- data/doc/TaskJuggler/LimitsAttribute.html +10 -4
- data/doc/TaskJuggler/ListAttributeBase.html +10 -4
- data/doc/TaskJuggler/Log.html +10 -4
- data/doc/TaskJuggler/LogFile.html +10 -4
- data/doc/TaskJuggler/LogicalAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalExpression.html +11 -5
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
- data/doc/TaskJuggler/LogicalFlag.html +10 -4
- data/doc/TaskJuggler/LogicalFunction.html +132 -124
- data/doc/TaskJuggler/LogicalOperation.html +10 -4
- data/doc/TaskJuggler/Macro.html +16 -10
- data/doc/TaskJuggler/MacroTable.html +44 -38
- data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
- data/doc/TaskJuggler/Message.html +92 -68
- data/doc/TaskJuggler/MessageHandler.html +349 -28
- data/doc/TaskJuggler/Navigator.html +10 -4
- data/doc/TaskJuggler/NavigatorElement.html +10 -4
- data/doc/TaskJuggler/NikuProject.html +10 -4
- data/doc/TaskJuggler/NikuReport.html +10 -4
- data/doc/TaskJuggler/NikuResource.html +10 -4
- data/doc/TaskJuggler/NodeListAttribute.html +10 -4
- data/doc/TaskJuggler/OnShiftCache.html +10 -4
- data/doc/TaskJuggler/ProcessIntercom.html +118 -111
- data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
- data/doc/TaskJuggler/Project.html +886 -913
- data/doc/TaskJuggler/ProjectBroker.html +442 -331
- data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
- data/doc/TaskJuggler/ProjectFileParser.html +320 -317
- data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
- data/doc/TaskJuggler/ProjectRecord.html +119 -56
- data/doc/TaskJuggler/ProjectServer.html +282 -237
- data/doc/TaskJuggler/ProjectServerIface.html +45 -39
- data/doc/TaskJuggler/PropertyAttribute.html +10 -4
- data/doc/TaskJuggler/PropertyList.html +177 -173
- data/doc/TaskJuggler/PropertySet.html +11 -5
- data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
- data/doc/TaskJuggler/Query.html +280 -256
- data/doc/TaskJuggler/RTFHandlers.html +10 -4
- data/doc/TaskJuggler/RTFNavigator.html +33 -26
- data/doc/TaskJuggler/RTFQuery.html +135 -169
- data/doc/TaskJuggler/RTFReport.html +63 -56
- data/doc/TaskJuggler/RTFReportLink.html +58 -47
- data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
- data/doc/TaskJuggler/RealFormat.html +10 -4
- data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
- data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
- data/doc/TaskJuggler/Report.html +333 -290
- data/doc/TaskJuggler/ReportBase.html +182 -174
- data/doc/TaskJuggler/ReportContext.html +10 -4
- data/doc/TaskJuggler/ReportServer.html +144 -126
- data/doc/TaskJuggler/ReportServerIface.html +50 -44
- data/doc/TaskJuggler/ReportServerRecord.html +38 -32
- data/doc/TaskJuggler/ReportServlet.html +144 -137
- data/doc/TaskJuggler/ReportTable.html +10 -4
- data/doc/TaskJuggler/ReportTableCell.html +169 -164
- data/doc/TaskJuggler/ReportTableColumn.html +10 -4
- data/doc/TaskJuggler/ReportTableLegend.html +10 -4
- data/doc/TaskJuggler/ReportTableLine.html +10 -4
- data/doc/TaskJuggler/Resource.html +121 -115
- data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
- data/doc/TaskJuggler/ResourceListRE.html +10 -4
- data/doc/TaskJuggler/ResourceScenario.html +13 -7
- data/doc/TaskJuggler/RichText.html +61 -37
- data/doc/TaskJuggler/RichTextAttribute.html +10 -4
- data/doc/TaskJuggler/RichTextDocument.html +91 -81
- data/doc/TaskJuggler/RichTextElement.html +378 -317
- data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
- data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
- data/doc/TaskJuggler/RichTextImage.html +10 -4
- data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
- data/doc/TaskJuggler/RichTextParser.html +48 -40
- data/doc/TaskJuggler/RichTextScanner.html +328 -906
- data/doc/TaskJuggler/RichTextSnip.html +59 -57
- data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
- data/doc/TaskJuggler/Scenario.html +10 -4
- data/doc/TaskJuggler/ScenarioData.html +33 -30
- data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
- data/doc/TaskJuggler/Scoreboard.html +10 -4
- data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
- data/doc/TaskJuggler/SheetReceiver.html +334 -313
- data/doc/TaskJuggler/SheetSender.html +10 -4
- data/doc/TaskJuggler/Shift.html +10 -4
- data/doc/TaskJuggler/ShiftAssignment.html +10 -4
- data/doc/TaskJuggler/ShiftAssignments.html +10 -4
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
- data/doc/TaskJuggler/ShiftScenario.html +10 -4
- data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
- data/doc/TaskJuggler/SortListAttribute.html +10 -4
- data/doc/TaskJuggler/SourceFileInfo.html +10 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
- data/doc/TaskJuggler/StatusSheetReport.html +10 -4
- data/doc/TaskJuggler/StatusSheetSender.html +10 -4
- data/doc/TaskJuggler/StringAttribute.html +10 -4
- data/doc/TaskJuggler/SymbolAttribute.html +10 -4
- data/doc/TaskJuggler/SyntaxReference.html +260 -230
- data/doc/TaskJuggler/TOCEntry.html +99 -42
- data/doc/TaskJuggler/TSResourceRecord.html +10 -4
- data/doc/TaskJuggler/TSTaskRecord.html +10 -4
- data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
- data/doc/TaskJuggler/TableOfContents.html +54 -12
- data/doc/TaskJuggler/TableReport.html +877 -872
- data/doc/TaskJuggler/Task.html +117 -68
- data/doc/TaskJuggler/TaskDependency.html +10 -4
- data/doc/TaskJuggler/TaskListAttribute.html +10 -4
- data/doc/TaskJuggler/TaskListRE.html +10 -4
- data/doc/TaskJuggler/TaskScenario.html +1681 -1563
- data/doc/TaskJuggler/TextFormatter.html +10 -4
- data/doc/TaskJuggler/TextParser.html +567 -534
- data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
- data/doc/TaskJuggler/TextParser/Rule.html +26 -15
- data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
- data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
- data/doc/TaskJuggler/TextReport.html +15 -6
- data/doc/TaskJuggler/TextScanner.html +319 -287
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
- data/doc/TaskJuggler/TimeSheet.html +138 -175
- data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
- data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
- data/doc/TaskJuggler/TimeSheetReport.html +47 -42
- data/doc/TaskJuggler/TimeSheetSender.html +10 -4
- data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
- data/doc/TaskJuggler/TimeSheets.html +22 -16
- data/doc/TaskJuggler/Tj3AppBase.html +10 -4
- data/doc/TaskJuggler/Tj3Client.html +399 -365
- data/doc/TaskJuggler/Tj3Daemon.html +107 -94
- data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
- data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3SsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
- data/doc/TaskJuggler/Tj3TsSender.html +10 -4
- data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
- data/doc/TaskJuggler/TjException.html +10 -4
- data/doc/TaskJuggler/TjTime.html +145 -140
- data/doc/TaskJuggler/TjpExample.html +10 -4
- data/doc/TaskJuggler/TjpExportRE.html +122 -118
- data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
- data/doc/TaskJuggler/URLParameter.html +10 -4
- data/doc/TaskJuggler/UserManual.html +162 -155
- data/doc/TaskJuggler/VimSyntax.html +1028 -0
- data/doc/TaskJuggler/WebServer.html +45 -27
- data/doc/TaskJuggler/WorkingHours.html +10 -4
- data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
- data/doc/TaskJuggler/XMLBlob.html +10 -4
- data/doc/TaskJuggler/XMLComment.html +10 -4
- data/doc/TaskJuggler/XMLDocument.html +10 -4
- data/doc/TaskJuggler/XMLElement.html +10 -4
- data/doc/TaskJuggler/XMLNamedText.html +10 -4
- data/doc/TaskJuggler/XMLText.html +10 -4
- data/doc/index.html +735 -677
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +1 -1
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +1 -1
- data/doc/lib/LogFile_rb.html +1 -1
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +1 -1
- data/doc/lib/LogicalOperation_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -3
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +4 -2
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/PropertySet_rb.html +1 -1
- data/doc/lib/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RTFHandlers_rb.html +1 -1
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +2 -2
- data/doc/lib/RTFReportLink_rb.html +4 -2
- data/doc/lib/RTFReport_rb.html +1 -1
- data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +1 -1
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +3 -1
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +3 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +5 -1
- data/doc/lib/SheetReceiver_rb.html +3 -1
- data/doc/lib/SheetSender_rb.html +1 -1
- data/doc/lib/ShiftAssignments_rb.html +1 -1
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SimpleQueryExpander_rb.html +67 -0
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +1 -1
- data/doc/lib/Task_rb.html +1 -1
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +1 -1
- data/doc/lib/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +3 -1
- data/doc/lib/TextScanner_rb.html +1 -3
- data/doc/lib/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/TimeSheetSender_rb.html +1 -1
- data/doc/lib/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/TimeSheets_rb.html +1 -1
- data/doc/lib/Tj3AppBase_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/URLParameter_rb.html +1 -1
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +1 -1
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -3
- data/doc/lib/daemon/WebServer_rb.html +1 -1
- data/doc/lib/deep_copy_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/NikuReport_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportContext_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/Allocation.rb +8 -5
- data/lib/BatchProcessor.rb +7 -3
- data/lib/FileList.rb +58 -0
- data/lib/Journal.rb +73 -33
- data/lib/KeywordArray.rb +4 -0
- data/lib/KeywordDocumentation.rb +45 -11
- data/lib/Limits.rb +0 -1
- data/lib/LogicalExpression.rb +1 -1
- data/lib/LogicalFunction.rb +14 -12
- data/lib/MacroTable.rb +3 -4
- data/lib/MessageHandler.rb +136 -7
- data/lib/Project.rb +72 -86
- data/lib/ProjectFileParser.rb +30 -33
- data/lib/ProjectFileScanner.rb +7 -16
- data/lib/PropertyList.rb +25 -27
- data/lib/PropertySet.rb +1 -1
- data/lib/PropertyTreeNode.rb +9 -12
- data/lib/Query.rb +5 -4
- data/lib/RTFNavigator.rb +2 -1
- data/lib/RTFQuery.rb +4 -11
- data/lib/RTFReport.rb +2 -1
- data/lib/RTFReportLink.rb +10 -4
- data/lib/RTFWithQuerySupport.rb +45 -0
- data/lib/Resource.rb +20 -20
- data/lib/ResourceScenario.rb +3 -3
- data/lib/RichText.rb +15 -7
- data/lib/RichTextDocument.rb +8 -4
- data/lib/RichTextElement.rb +35 -12
- data/lib/RichTextFunctionHandler.rb +11 -12
- data/lib/RichTextParser.rb +5 -3
- data/lib/RichTextScanner.rb +144 -565
- data/lib/RichTextSnip.rb +3 -7
- data/lib/RichTextSyntaxRules.rb +51 -32
- data/lib/ScenarioData.rb +16 -25
- data/lib/SheetHandlerBase.rb +59 -2
- data/lib/SheetReceiver.rb +36 -18
- data/lib/SimpleQueryExpander.rb +58 -0
- data/lib/SyntaxReference.rb +9 -5
- data/lib/TOCEntry.rb +2 -0
- data/lib/TableOfContents.rb +4 -0
- data/lib/Task.rb +23 -12
- data/lib/TaskJuggler.rb +72 -33
- data/lib/TaskScenario.rb +131 -53
- data/lib/TextParser.rb +43 -30
- data/lib/TextParser/Pattern.rb +17 -13
- data/lib/TextParser/Rule.rb +5 -0
- data/lib/TextScanner.rb +46 -25
- data/lib/TimeSheetSummary.rb +9 -7
- data/lib/TimeSheets.rb +14 -23
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +1 -2
- data/lib/TjpSyntaxRules.rb +128 -104
- data/lib/UTF8String.rb +0 -1
- data/lib/UserManual.rb +5 -4
- data/lib/VimSyntax.rb +223 -0
- data/lib/daemon/Daemon.rb +9 -0
- data/lib/daemon/ProcessIntercom.rb +19 -4
- data/lib/daemon/ProjectBroker.rb +149 -68
- data/lib/daemon/ProjectServer.rb +119 -79
- data/lib/daemon/ReportServer.rb +42 -31
- data/lib/daemon/WebServer.rb +21 -2
- data/lib/deep_copy.rb +1 -1
- data/lib/reports/GanttContainer.rb +2 -2
- data/lib/reports/GanttLine.rb +2 -3
- data/lib/reports/GanttTaskBar.rb +7 -3
- data/lib/reports/Report.rb +62 -57
- data/lib/reports/ReportBase.rb +6 -4
- data/lib/reports/ReportTableCell.rb +13 -14
- data/lib/reports/TableReport.rb +2 -1
- data/lib/reports/TextReport.rb +3 -0
- data/lib/reports/TimeSheetReport.rb +2 -3
- data/lib/reports/TjpExportRE.rb +0 -2
- data/lib/tj3client.rb +31 -3
- data/lib/tj3d.rb +8 -1
- data/manual/Day_To_Day_Juggling +2 -95
- data/manual/How_To_Contribute +2 -1
- data/manual/Rich_Text_Attributes +37 -3
- data/manual/Software +203 -0
- data/test/MessageChecker.rb +4 -4
- data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
- data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
- data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
- data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
- data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
- data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
- data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
- data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
- data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
- data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/StatusSheets/resrep.tji +7 -0
- data/test/TestSuite/StatusSheets/run +6 -4
- data/test/TestSuite/StatusSheets/tj3d.log +312 -0
- data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
- data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/run +6 -5
- data/test/TestSuite/TimeSheets/statussheets.log +1 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_PropertySet.rb +2 -2
- data/test/test_RichText.rb +178 -387
- data/test/test_SimpleQueryExpander.rb +55 -0
- data/test/test_deep_copy.rb +2 -2
- metadata +854 -834
- data/lib/MacroParser.rb +0 -77
- data/lib/Message.rb +0 -56
- data/lib/ruby-signal-bug.rb +0 -43
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
|
@@ -180,6 +180,10 @@
|
|
|
180
180
|
|
|
181
181
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
182
182
|
|
|
183
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
184
|
+
|
|
185
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
186
|
+
|
|
183
187
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
184
188
|
|
|
185
189
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -252,8 +256,6 @@
|
|
|
252
256
|
|
|
253
257
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
254
258
|
|
|
255
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
256
|
-
|
|
257
259
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
258
260
|
|
|
259
261
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -318,6 +320,8 @@
|
|
|
318
320
|
|
|
319
321
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
320
322
|
|
|
323
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
324
|
+
|
|
321
325
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
322
326
|
|
|
323
327
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -364,8 +368,6 @@
|
|
|
364
368
|
|
|
365
369
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
366
370
|
|
|
367
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
368
|
-
|
|
369
371
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
370
372
|
|
|
371
373
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -406,6 +408,8 @@
|
|
|
406
408
|
|
|
407
409
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
408
410
|
|
|
411
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
412
|
+
|
|
409
413
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
410
414
|
|
|
411
415
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -516,6 +520,8 @@
|
|
|
516
520
|
|
|
517
521
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
518
522
|
|
|
523
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
524
|
+
|
|
519
525
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
520
526
|
|
|
521
527
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -589,7 +595,7 @@ href="RichTextScanner.html">RichTextScanner</a> class is used.
|
|
|
589
595
|
<div class="method-heading">
|
|
590
596
|
|
|
591
597
|
<span class="method-name">new</span><span
|
|
592
|
-
class="method-args">(rti, sectionCounter = [ 0, 0, 0, 0 ], tokenSet = nil)</span>
|
|
598
|
+
class="method-args">(messageHandler, rti, sectionCounter = [ 0, 0, 0, 0 ], tokenSet = nil)</span>
|
|
593
599
|
<span class="method-click-advice">click to toggle source</span>
|
|
594
600
|
|
|
595
601
|
</div>
|
|
@@ -608,27 +614,28 @@ href="RichTextElement.html">RichTextElement</a> objects should belong to.
|
|
|
608
614
|
id="new-source">
|
|
609
615
|
<pre>
|
|
610
616
|
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line 30</span>
|
|
611
|
-
30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">
|
|
612
|
-
31:
|
|
613
|
-
32: <span class="ruby-
|
|
614
|
-
33: <span class="ruby-
|
|
615
|
-
34: <span class="ruby-
|
|
616
|
-
35:
|
|
617
|
-
36:
|
|
618
|
-
37:
|
|
619
|
-
38:
|
|
620
|
-
39:
|
|
621
|
-
40:
|
|
622
|
-
41:
|
|
623
|
-
42:
|
|
624
|
-
43:
|
|
625
|
-
44: <span class="ruby-
|
|
626
|
-
45: <span class="ruby-
|
|
627
|
-
46: <span class="ruby-
|
|
628
|
-
47: <span class="ruby-comment cmt">#
|
|
629
|
-
48: <span class="ruby-
|
|
630
|
-
49: <span class="ruby-ivar">@
|
|
631
|
-
50:
|
|
617
|
+
30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">messageHandler</span>, <span class="ruby-identifier">rti</span>, <span class="ruby-identifier">sectionCounter</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span> ],
|
|
618
|
+
31: <span class="ruby-identifier">tokenSet</span> = <span class="ruby-keyword kw">nil</span>)
|
|
619
|
+
32: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">messageHandler</span>)
|
|
620
|
+
33: <span class="ruby-ivar">@richTextI</span> = <span class="ruby-identifier">rti</span>
|
|
621
|
+
34: <span class="ruby-comment cmt"># These are the tokens that can be returned by the RichTextScanner.</span>
|
|
622
|
+
35: <span class="ruby-ivar">@variables</span> = <span class="ruby-node">%( LINEBREAK SPACE WORD BOLD ITALIC CODE BOLDITALIC PRE
|
|
623
|
+
36: HREF HREFEND REF REFEND HLINE
|
|
624
|
+
37: QUERY
|
|
625
|
+
38: INLINEFUNCSTART INLINEFUNCEND
|
|
626
|
+
39: BLOCKFUNCSTART BLOCKFUNCEND ID STRING
|
|
627
|
+
40: TITLE1 TITLE2 TITLE3 TITLE4
|
|
628
|
+
41: TITLE1END TITLE2END TITLE3END TITLE4END
|
|
629
|
+
42: BULLET1 BULLET2 BULLET3 BULLET4
|
|
630
|
+
43: NUMBER1 NUMBER2 NUMBER3 NUMBER4 )</span>
|
|
631
|
+
44: <span class="ruby-identifier">limitTokenSet</span>(<span class="ruby-identifier">tokenSet</span>)
|
|
632
|
+
45: <span class="ruby-comment cmt"># Load the rule set into the parser.</span>
|
|
633
|
+
46: <span class="ruby-identifier">initRules</span>
|
|
634
|
+
47: <span class="ruby-comment cmt"># The sections and numbered list can each nest 3 levels deep. We use these</span>
|
|
635
|
+
48: <span class="ruby-comment cmt"># counter Arrays to generate proper 1.2.3 type labels.</span>
|
|
636
|
+
49: <span class="ruby-ivar">@sectionCounter</span> = <span class="ruby-identifier">sectionCounter</span>
|
|
637
|
+
50: <span class="ruby-ivar">@numberListCounter</span> = [ <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">0</span> ]
|
|
638
|
+
51: <span class="ruby-keyword kw">end</span></pre>
|
|
632
639
|
</div>
|
|
633
640
|
|
|
634
641
|
</div>
|
|
@@ -667,10 +674,10 @@ Get the next token from the scanner.
|
|
|
667
674
|
<div class="method-source-code"
|
|
668
675
|
id="next-oken-source">
|
|
669
676
|
<pre>
|
|
670
|
-
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
677
|
+
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line 62</span>
|
|
678
|
+
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
679
|
+
63: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">nextToken</span>
|
|
680
|
+
64: <span class="ruby-keyword kw">end</span></pre>
|
|
674
681
|
</div>
|
|
675
682
|
|
|
676
683
|
</div>
|
|
@@ -703,12 +710,13 @@ Construct the parser and get ready to read.
|
|
|
703
710
|
<div class="method-source-code"
|
|
704
711
|
id="open-source">
|
|
705
712
|
<pre>
|
|
706
|
-
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
713
|
+
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line 54</span>
|
|
714
|
+
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">text</span>)
|
|
715
|
+
55: <span class="ruby-comment cmt"># Make sure that the last line is properly terminated with a newline.</span>
|
|
716
|
+
56: <span class="ruby-comment cmt"># Multiple newlines at the end are simply ignored.</span>
|
|
717
|
+
57: <span class="ruby-ivar">@scanner</span> = <span class="ruby-constant">RichTextScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n\n"</span>, <span class="ruby-ivar">@messageHandler</span>)
|
|
718
|
+
58: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">open</span>(<span class="ruby-keyword kw">true</span>)
|
|
719
|
+
59: <span class="ruby-keyword kw">end</span></pre>
|
|
712
720
|
</div>
|
|
713
721
|
|
|
714
722
|
</div>
|
|
@@ -741,10 +749,10 @@ Return the last fetch token again to the scanner.
|
|
|
741
749
|
<div class="method-source-code"
|
|
742
750
|
id="return-oken-source">
|
|
743
751
|
<pre>
|
|
744
|
-
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
752
|
+
<span class="ruby-comment cmt"># File lib/RichTextParser.rb, line 67</span>
|
|
753
|
+
67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
754
|
+
68: <span class="ruby-ivar">@scanner</span>.<span class="ruby-identifier">returnToken</span>(<span class="ruby-identifier">token</span>)
|
|
755
|
+
69: <span class="ruby-keyword kw">end</span></pre>
|
|
748
756
|
</div>
|
|
749
757
|
|
|
750
758
|
</div>
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
<div id="parent-class-section" class="section">
|
|
56
56
|
<h3 class="section-header">Parent</h3>
|
|
57
57
|
|
|
58
|
-
<p class="link"><a href="
|
|
58
|
+
<p class="link"><a href="TextScanner.html">TaskJuggler::TextScanner</a></p>
|
|
59
59
|
|
|
60
60
|
</div>
|
|
61
61
|
|
|
@@ -71,55 +71,45 @@
|
|
|
71
71
|
|
|
72
72
|
<li><a href="#method-c-new">::new</a></li>
|
|
73
73
|
|
|
74
|
-
<li><a href="#method-i-
|
|
74
|
+
<li><a href="#method-i-bullet">#bullet</a></li>
|
|
75
75
|
|
|
76
|
-
<li><a href="#method-i-
|
|
76
|
+
<li><a href="#method-i-dqString">#dqString</a></li>
|
|
77
77
|
|
|
78
|
-
<li><a href="#method-i-
|
|
78
|
+
<li><a href="#method-i-functionEnd">#functionEnd</a></li>
|
|
79
79
|
|
|
80
|
-
<li><a href="#method-i-
|
|
80
|
+
<li><a href="#method-i-functionStart">#functionStart</a></li>
|
|
81
81
|
|
|
82
|
-
<li><a href="#method-i-
|
|
82
|
+
<li><a href="#method-i-hrefEnd">#hrefEnd</a></li>
|
|
83
83
|
|
|
84
|
-
<li><a href="#method-i-
|
|
84
|
+
<li><a href="#method-i-hrefStart">#hrefStart</a></li>
|
|
85
85
|
|
|
86
|
-
<li><a href="#method-i-
|
|
86
|
+
<li><a href="#method-i-inlineMode">#inlineMode</a></li>
|
|
87
87
|
|
|
88
|
-
<li><a href="#method-i-
|
|
88
|
+
<li><a href="#method-i-linebreak">#linebreak</a></li>
|
|
89
89
|
|
|
90
|
-
<li><a href="#method-i-
|
|
90
|
+
<li><a href="#method-i-nowikiEnd">#nowikiEnd</a></li>
|
|
91
91
|
|
|
92
|
-
<li><a href="#method-i-
|
|
92
|
+
<li><a href="#method-i-nowikiStart">#nowikiStart</a></li>
|
|
93
93
|
|
|
94
|
-
<li><a href="#method-i-
|
|
94
|
+
<li><a href="#method-i-number">#number</a></li>
|
|
95
95
|
|
|
96
|
-
<li><a href="#method-i-
|
|
96
|
+
<li><a href="#method-i-pre">#pre</a></li>
|
|
97
97
|
|
|
98
|
-
<li><a href="#method-i-
|
|
98
|
+
<li><a href="#method-i-query">#query</a></li>
|
|
99
99
|
|
|
100
|
-
<li><a href="#method-i-
|
|
100
|
+
<li><a href="#method-i-quotes">#quotes</a></li>
|
|
101
101
|
|
|
102
|
-
<li><a href="#method-i-
|
|
102
|
+
<li><a href="#method-i-refEnd">#refEnd</a></li>
|
|
103
103
|
|
|
104
|
-
<li><a href="#method-i-
|
|
104
|
+
<li><a href="#method-i-refStart">#refStart</a></li>
|
|
105
105
|
|
|
106
|
-
<li><a href="#method-i-
|
|
106
|
+
<li><a href="#method-i-space">#space</a></li>
|
|
107
107
|
|
|
108
|
-
<li><a href="#method-i-
|
|
108
|
+
<li><a href="#method-i-sqString">#sqString</a></li>
|
|
109
109
|
|
|
110
|
-
<li><a href="#method-i-
|
|
110
|
+
<li><a href="#method-i-titleEnd">#titleEnd</a></li>
|
|
111
111
|
|
|
112
|
-
<li><a href="#method-i-
|
|
113
|
-
|
|
114
|
-
<li><a href="#method-i-readSequenceMax">#readSequenceMax</a></li>
|
|
115
|
-
|
|
116
|
-
<li><a href="#method-i-readString">#readString</a></li>
|
|
117
|
-
|
|
118
|
-
<li><a href="#method-i-returnChar">#returnChar</a></li>
|
|
119
|
-
|
|
120
|
-
<li><a href="#method-i-returnToken">#returnToken</a></li>
|
|
121
|
-
|
|
122
|
-
<li><a href="#method-i-sourceFileInfo">#sourceFileInfo</a></li>
|
|
112
|
+
<li><a href="#method-i-titleStart">#titleStart</a></li>
|
|
123
113
|
|
|
124
114
|
</ul>
|
|
125
115
|
</div>
|
|
@@ -213,6 +203,10 @@
|
|
|
213
203
|
|
|
214
204
|
<li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
|
|
215
205
|
|
|
206
|
+
<li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
|
|
207
|
+
|
|
208
|
+
<li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
|
|
209
|
+
|
|
216
210
|
<li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
|
|
217
211
|
|
|
218
212
|
<li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
|
|
@@ -285,8 +279,6 @@
|
|
|
285
279
|
|
|
286
280
|
<li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li>
|
|
287
281
|
|
|
288
|
-
<li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li>
|
|
289
|
-
|
|
290
282
|
<li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li>
|
|
291
283
|
|
|
292
284
|
<li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
|
|
@@ -351,6 +343,8 @@
|
|
|
351
343
|
|
|
352
344
|
<li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
|
|
353
345
|
|
|
346
|
+
<li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
|
|
347
|
+
|
|
354
348
|
<li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
|
|
355
349
|
|
|
356
350
|
<li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
|
|
@@ -397,8 +391,6 @@
|
|
|
397
391
|
|
|
398
392
|
<li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
|
|
399
393
|
|
|
400
|
-
<li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li>
|
|
401
|
-
|
|
402
394
|
<li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
|
|
403
395
|
|
|
404
396
|
<li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
|
|
@@ -439,6 +431,8 @@
|
|
|
439
431
|
|
|
440
432
|
<li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
|
|
441
433
|
|
|
434
|
+
<li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
|
|
435
|
+
|
|
442
436
|
<li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
|
|
443
437
|
|
|
444
438
|
<li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li>
|
|
@@ -549,6 +543,8 @@
|
|
|
549
543
|
|
|
550
544
|
<li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
|
|
551
545
|
|
|
546
|
+
<li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
|
|
547
|
+
|
|
552
548
|
<li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
|
|
553
549
|
|
|
554
550
|
<li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
|
|
@@ -594,11 +590,18 @@
|
|
|
594
590
|
<p>
|
|
595
591
|
The <a href="RichTextScanner.html">RichTextScanner</a> is used by the <a
|
|
596
592
|
href="RichTextParser.html">RichTextParser</a> to chop the input text into
|
|
597
|
-
digestable tokens.
|
|
598
|
-
href="
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
593
|
+
digestable tokens. It specializes the <a
|
|
594
|
+
href="TextScanner.html">TextScanner</a> class for <a
|
|
595
|
+
href="RichText.html">RichText</a> syntax. The scanner can operate in
|
|
596
|
+
various modes. The current mode is context dependent. The following modes
|
|
597
|
+
are supported:
|
|
598
|
+
</p>
|
|
599
|
+
<p>
|
|
600
|
+
:bop : at the begining of a paragraph. :bol : at the begining of a
|
|
601
|
+
line. :inline : in the middle of a line :nowiki : ignoring all MediaWiki
|
|
602
|
+
special tokens :ref : inside of a REF [[ .. ]] :href : inside of an
|
|
603
|
+
HREF [ .. ] :func : inside of a block <[ .. ]> or inline <- .. ->
|
|
604
|
+
function
|
|
602
605
|
</p>
|
|
603
606
|
|
|
604
607
|
</div>
|
|
@@ -621,52 +624,82 @@ The scanner can break the text into words and special tokens.
|
|
|
621
624
|
<div class="method-heading">
|
|
622
625
|
|
|
623
626
|
<span class="method-name">new</span><span
|
|
624
|
-
class="method-args">(
|
|
627
|
+
class="method-args">(masterFile, messageHandler)</span>
|
|
625
628
|
<span class="method-click-advice">click to toggle source</span>
|
|
626
629
|
|
|
627
630
|
</div>
|
|
628
631
|
|
|
629
632
|
<div class="method-description">
|
|
630
633
|
|
|
631
|
-
|
|
632
|
-
Create the <a href="RichTextScanner.html">RichTextScanner</a> object and
|
|
633
|
-
initialize all state variables.
|
|
634
|
-
</p>
|
|
634
|
+
|
|
635
635
|
|
|
636
636
|
|
|
637
637
|
|
|
638
638
|
<div class="method-source-code"
|
|
639
639
|
id="new-source">
|
|
640
640
|
<pre>
|
|
641
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
641
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 32</span>
|
|
642
|
+
32: <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>)
|
|
643
|
+
33: <span class="ruby-identifier">tokenPatterns</span> = [
|
|
644
|
+
34: <span class="ruby-comment cmt"># :bol mode rules</span>
|
|
645
|
+
35: [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-regexp re">/\s*\n/</span>, <span class="ruby-value">:bol</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'linebreak'</span>) ],
|
|
646
|
+
36: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value">:bol</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'inlineMode'</span>) ],
|
|
647
|
+
37:
|
|
648
|
+
38: <span class="ruby-comment cmt"># :bop mode rules</span>
|
|
649
|
+
39: [ <span class="ruby-value str">'PRE'</span>, <span class="ruby-regexp re">/ [^\n]+\n?/</span>, <span class="ruby-value">:bop</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'pre'</span>) ],
|
|
650
|
+
40: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/\s*\n/</span>, <span class="ruby-value">:bop</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'linebreak'</span>) ],
|
|
651
|
+
41:
|
|
652
|
+
42: <span class="ruby-comment cmt"># :inline mode rules</span>
|
|
653
|
+
43: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-regexp re">/[ \t\n]+/</span>, <span class="ruby-value">:inline</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'space'</span>) ],
|
|
654
|
+
44:
|
|
655
|
+
45: <span class="ruby-comment cmt"># :bop and :bol mode rules</span>
|
|
656
|
+
46: [ <span class="ruby-value str">'INLINEFUNCSTART'</span>, <span class="ruby-regexp re">/<-/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span> ],
|
|
657
|
+
47: <span class="ruby-identifier">method</span>(<span class="ruby-value str">'functionStart'</span>) ],
|
|
658
|
+
48: [ <span class="ruby-value str">'BLOCKFUNCSTART'</span>, <span class="ruby-regexp re">/<\[/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'functionStart'</span>) ],
|
|
659
|
+
49: [ <span class="ruby-value str">'TITLE*'</span>, <span class="ruby-regexp re">/={2,5}/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'titleStart'</span>) ],
|
|
660
|
+
50: [ <span class="ruby-value str">'TITLE*END'</span>, <span class="ruby-regexp re">/={2,5}/</span>, <span class="ruby-value">:inline</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'titleEnd'</span>) ],
|
|
661
|
+
51: [ <span class="ruby-value str">'BULLET*'</span>, <span class="ruby-regexp re">/\*{1,4} /</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'bullet'</span>) ],
|
|
662
|
+
52: [ <span class="ruby-value str">'NUMBER*'</span>, <span class="ruby-regexp re">/\#{1,4} /</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'number'</span>) ],
|
|
663
|
+
53: [ <span class="ruby-value str">'HLINE'</span>, <span class="ruby-regexp re">/----/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'inlineMode'</span>) ],
|
|
664
|
+
54:
|
|
665
|
+
55: <span class="ruby-comment cmt"># :bop, :bol and :inline mode rules</span>
|
|
666
|
+
56: <span class="ruby-comment cmt"># The <nowiki> token puts the scanner into :nowiki mode.</span>
|
|
667
|
+
57: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/<nowiki>/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'nowikiStart'</span>) ],
|
|
668
|
+
58: [ <span class="ruby-value str">'QUOTES'</span>, <span class="ruby-regexp re">/'{2,5}/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'quotes'</span>) ],
|
|
669
|
+
59: [ <span class="ruby-value str">'REF'</span>, <span class="ruby-regexp re">/\[\[/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span> ], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'refStart'</span>) ],
|
|
670
|
+
60: [ <span class="ruby-value str">'HREF'</span>, <span class="ruby-regexp re">/\[/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span>], <span class="ruby-identifier">method</span>(<span class="ruby-value str">'hrefStart'</span>) ],
|
|
671
|
+
61: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-regexp re">/.[^ \n\t\[<']*/</span>, [ <span class="ruby-value">:bop</span>, <span class="ruby-value">:bol</span>, <span class="ruby-value">:inline</span> ],
|
|
672
|
+
62: <span class="ruby-identifier">method</span>(<span class="ruby-value str">'inlineMode'</span>) ],
|
|
673
|
+
63:
|
|
674
|
+
64: <span class="ruby-comment cmt"># :nowiki mode rules</span>
|
|
675
|
+
65: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/<\/nowiki>/</span>, <span class="ruby-value">:nowiki</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'nowikiEnd'</span>) ],
|
|
676
|
+
66: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-regexp re">/(<(?!\/nowiki>)|[^ \t\n<])+/</span>, <span class="ruby-value">:nowiki</span> ],
|
|
677
|
+
67: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-regexp re">/[ \t]+/</span>, <span class="ruby-value">:nowiki</span> ],
|
|
678
|
+
68: [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-regexp re">/\s*\n/</span>, <span class="ruby-value">:nowiki</span> ],
|
|
679
|
+
69:
|
|
680
|
+
70: <span class="ruby-comment cmt"># :ref mode rules</span>
|
|
681
|
+
71: [ <span class="ruby-value str">'REFEND'</span>, <span class="ruby-regexp re">/\]\]/</span>, <span class="ruby-value">:ref</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'refEnd'</span>) ],
|
|
682
|
+
72: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-regexp re">/(<(?!-)|(\](?!\])|[^|<\]]))+/</span>, <span class="ruby-value">:ref</span> ],
|
|
683
|
+
73: [ <span class="ruby-value str">'QUERY'</span>, <span class="ruby-regexp re">/<-\w+->/</span>, <span class="ruby-value">:ref</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'query'</span>) ],
|
|
684
|
+
74: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/./</span>, <span class="ruby-value">:ref</span> ],
|
|
685
|
+
75:
|
|
686
|
+
76: <span class="ruby-comment cmt"># :href mode rules</span>
|
|
687
|
+
77: [ <span class="ruby-value str">'HREFEND'</span>, <span class="ruby-regexp re">/\]/</span>, <span class="ruby-value">:href</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'hrefEnd'</span>) ],
|
|
688
|
+
78: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-regexp re">/(<(?!-)|[^ \t\n\]<])+/</span>, <span class="ruby-value">:href</span> ],
|
|
689
|
+
79: [ <span class="ruby-value str">'QUERY'</span>, <span class="ruby-regexp re">/<-\w+->/</span>, <span class="ruby-value">:href</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'query'</span>) ],
|
|
690
|
+
80: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-regexp re">/[ \t\n]+/</span>, <span class="ruby-value">:href</span> ],
|
|
691
|
+
81:
|
|
692
|
+
82: <span class="ruby-comment cmt"># :func mode rules</span>
|
|
693
|
+
83: [ <span class="ruby-value str">'INLINEFUNCEND'</span>, <span class="ruby-regexp re">/->/</span> , <span class="ruby-value">:func</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'functionEnd'</span>) ],
|
|
694
|
+
84: [ <span class="ruby-value str">'BLOCKFUNCEND'</span>, <span class="ruby-regexp re">/\]>/</span>, <span class="ruby-value">:func</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'functionEnd'</span>) ],
|
|
695
|
+
85: [ <span class="ruby-value str">'ID'</span>, <span class="ruby-regexp re">/[a-zA-Z_]\w*/</span>, <span class="ruby-value">:func</span> ],
|
|
696
|
+
86: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/"(\\"|[^"])*"/</span>, <span class="ruby-value">:func</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'dqString'</span>) ],
|
|
697
|
+
87: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-regexp re">/'(\\'|[^'])*'/</span>, <span class="ruby-value">:func</span>, <span class="ruby-identifier">method</span>(<span class="ruby-value str">'sqString'</span>) ],
|
|
698
|
+
88: [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-regexp re">/[ \t\n]+/</span>, <span class="ruby-value">:func</span> ],
|
|
699
|
+
89: [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-regexp re">/./</span>, <span class="ruby-value">:func</span> ]
|
|
700
|
+
90: ]
|
|
701
|
+
91: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">masterFile</span>, <span class="ruby-identifier">messageHandler</span>, <span class="ruby-identifier">tokenPatterns</span>, <span class="ruby-value">:bop</span>)
|
|
702
|
+
92: <span class="ruby-keyword kw">end</span></pre>
|
|
670
703
|
</div>
|
|
671
704
|
|
|
672
705
|
</div>
|
|
@@ -679,79 +712,35 @@ initialize all state variables.
|
|
|
679
712
|
|
|
680
713
|
</div>
|
|
681
714
|
|
|
682
|
-
<div id="
|
|
683
|
-
<h3 class="section-header">
|
|
715
|
+
<div id="private-instance-method-details" class="method-section section">
|
|
716
|
+
<h3 class="section-header">Private Instance Methods</h3>
|
|
684
717
|
|
|
685
718
|
|
|
686
|
-
<div id="
|
|
687
|
-
<a name="method-i-
|
|
719
|
+
<div id="bullet-method" class="method-detail ">
|
|
720
|
+
<a name="method-i-bullet"></a>
|
|
688
721
|
|
|
689
722
|
<div class="method-heading">
|
|
690
723
|
|
|
691
|
-
<span class="method-name">
|
|
692
|
-
class="method-args">(
|
|
724
|
+
<span class="method-name">bullet</span><span
|
|
725
|
+
class="method-args">(type, match)</span>
|
|
693
726
|
<span class="method-click-advice">click to toggle source</span>
|
|
694
727
|
|
|
695
728
|
</div>
|
|
696
729
|
|
|
697
730
|
<div class="method-description">
|
|
698
731
|
|
|
699
|
-
<p>
|
|
700
|
-
The parser uses this function to report any errors during parsing.
|
|
701
|
-
</p>
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
<div class="method-source-code"
|
|
706
|
-
id="error-source">
|
|
707
|
-
<pre>
|
|
708
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 115</span>
|
|
709
|
-
115: <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> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">bar</span> = <span class="ruby-keyword kw">nil</span>)
|
|
710
|
-
116: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
|
|
711
|
-
117: <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>
|
|
712
|
-
118: <span class="ruby-node">"#{@text[@lineStart, @pos - @lineStart]}"</span>
|
|
713
|
-
119: <span class="ruby-keyword kw">else</span>
|
|
714
|
-
120: <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>,
|
|
715
|
-
121: <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>])
|
|
716
|
-
122: <span class="ruby-keyword kw">end</span>
|
|
717
|
-
123: <span class="ruby-keyword kw">end</span></pre>
|
|
718
|
-
</div>
|
|
719
|
-
|
|
720
|
-
</div>
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
</div>
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
<div id="file-ame-method" class="method-detail ">
|
|
729
|
-
<a name="method-i-fileName"></a>
|
|
730
|
-
|
|
731
|
-
<div class="method-heading">
|
|
732
|
-
|
|
733
|
-
<span class="method-name">fileName</span><span
|
|
734
|
-
class="method-args">()</span>
|
|
735
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
736
|
-
|
|
737
|
-
</div>
|
|
738
|
-
|
|
739
|
-
<div class="method-description">
|
|
740
732
|
|
|
741
|
-
<p>
|
|
742
|
-
This function makes more sense for parsers that process actual files. As we
|
|
743
|
-
don’t have a file name, we just return ‘input text’.
|
|
744
|
-
</p>
|
|
745
733
|
|
|
746
734
|
|
|
747
735
|
|
|
748
736
|
<div class="method-source-code"
|
|
749
|
-
id="
|
|
737
|
+
id="bullet-source">
|
|
750
738
|
<pre>
|
|
751
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
739
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 125</span>
|
|
740
|
+
125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bullet</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
741
|
+
126: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
742
|
+
127: [ <span class="ruby-node">"BULLET#{match.length - 1}"</span>, <span class="ruby-identifier">match</span> ]
|
|
743
|
+
128: <span class="ruby-keyword kw">end</span></pre>
|
|
755
744
|
</div>
|
|
756
745
|
|
|
757
746
|
</div>
|
|
@@ -762,100 +751,32 @@ don’t have a file name, we just return ‘input text’.
|
|
|
762
751
|
</div>
|
|
763
752
|
|
|
764
753
|
|
|
765
|
-
<div id="
|
|
766
|
-
<a name="method-i-
|
|
754
|
+
<div id="dq-tring-method" class="method-detail ">
|
|
755
|
+
<a name="method-i-dqString"></a>
|
|
767
756
|
|
|
768
757
|
<div class="method-heading">
|
|
769
758
|
|
|
770
|
-
<span class="method-name">
|
|
771
|
-
class="method-args">()</span>
|
|
759
|
+
<span class="method-name">dqString</span><span
|
|
760
|
+
class="method-args">(type, match)</span>
|
|
772
761
|
<span class="method-click-advice">click to toggle source</span>
|
|
773
762
|
|
|
774
763
|
</div>
|
|
775
764
|
|
|
776
765
|
<div class="method-description">
|
|
777
766
|
|
|
778
|
-
<p>
|
|
779
|
-
Return the next token from the input text.
|
|
780
|
-
</p>
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
<div class="method-source-code"
|
|
785
|
-
id="next-oken-source">
|
|
786
|
-
<pre>
|
|
787
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 62</span>
|
|
788
|
-
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextToken</span>
|
|
789
|
-
63: <span class="ruby-comment cmt"># If we have a returned token, this is returned first.</span>
|
|
790
|
-
64: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tokenBuffer</span>
|
|
791
|
-
65: <span class="ruby-identifier">tok</span> = <span class="ruby-ivar">@tokenBuffer</span>
|
|
792
|
-
66: <span class="ruby-ivar">@tokenBuffer</span> = <span class="ruby-keyword kw">nil</span>
|
|
793
|
-
67: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">tok</span>
|
|
794
|
-
68: <span class="ruby-keyword kw">end</span>
|
|
795
|
-
69:
|
|
796
|
-
70: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:funcarg</span>
|
|
797
|
-
71: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nextTokenFuncArg</span>
|
|
798
|
-
72: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:href</span>
|
|
799
|
-
73: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nextTokenHRef</span>
|
|
800
|
-
74: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:ref</span>
|
|
801
|
-
75: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nextTokenRef</span>
|
|
802
|
-
76: <span class="ruby-keyword kw">end</span>
|
|
803
|
-
77: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@beginOfLine</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:wiki</span>
|
|
804
|
-
78: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">res</span> = <span class="ruby-identifier">nextTokenWikiBOL</span>)
|
|
805
|
-
79: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
|
|
806
|
-
80: <span class="ruby-keyword kw">end</span>
|
|
807
|
-
81: <span class="ruby-keyword kw">end</span>
|
|
808
|
-
82:
|
|
809
|
-
83: <span class="ruby-comment cmt"># Many inline control character sequences consit of multiple characters.</span>
|
|
810
|
-
84: <span class="ruby-comment cmt"># In case of incomplete sequences, we roll back to the start character</span>
|
|
811
|
-
85: <span class="ruby-comment cmt"># and set the ignoreInlineMarkup flag to simply treat them as normal</span>
|
|
812
|
-
86: <span class="ruby-comment cmt"># text.</span>
|
|
813
|
-
87: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
|
|
814
|
-
88: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
|
815
|
-
89: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> = (<span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:wiki</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">nextTokenWikiInline</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">nextTokenNoWikiInline</span>)
|
|
816
|
-
90: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">res</span>
|
|
817
|
-
91: <span class="ruby-keyword kw">end</span>
|
|
818
|
-
92: <span class="ruby-keyword kw">end</span>
|
|
819
|
-
93: <span class="ruby-keyword kw">end</span></pre>
|
|
820
|
-
</div>
|
|
821
|
-
|
|
822
|
-
</div>
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
</div>
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
<div id="return-oken-method" class="method-detail ">
|
|
831
|
-
<a name="method-i-returnToken"></a>
|
|
832
|
-
|
|
833
|
-
<div class="method-heading">
|
|
834
|
-
|
|
835
|
-
<span class="method-name">returnToken</span><span
|
|
836
|
-
class="method-args">(token)</span>
|
|
837
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
838
|
-
|
|
839
|
-
</div>
|
|
840
|
-
|
|
841
|
-
<div class="method-description">
|
|
842
767
|
|
|
843
|
-
<p>
|
|
844
|
-
Return the last issued token to the token buffer.
|
|
845
|
-
</p>
|
|
846
768
|
|
|
847
769
|
|
|
848
770
|
|
|
849
771
|
<div class="method-source-code"
|
|
850
|
-
id="
|
|
772
|
+
id="dq-tring-source">
|
|
851
773
|
<pre>
|
|
852
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
101: <span class="ruby-keyword kw">end</span></pre>
|
|
774
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 169</span>
|
|
775
|
+
169: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dqString</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
776
|
+
170: <span class="ruby-comment cmt"># Remove first and last character and remove backslashes from quoted</span>
|
|
777
|
+
171: <span class="ruby-comment cmt"># double quotes.</span>
|
|
778
|
+
172: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\"/</span>, <span class="ruby-value str">'"'</span>) ]
|
|
779
|
+
173: <span class="ruby-keyword kw">end</span></pre>
|
|
859
780
|
</div>
|
|
860
781
|
|
|
861
782
|
</div>
|
|
@@ -866,32 +787,32 @@ Return the last issued token to the token buffer.
|
|
|
866
787
|
</div>
|
|
867
788
|
|
|
868
789
|
|
|
869
|
-
<div id="
|
|
870
|
-
<a name="method-i-
|
|
790
|
+
<div id="function-nd-method" class="method-detail ">
|
|
791
|
+
<a name="method-i-functionEnd"></a>
|
|
871
792
|
|
|
872
793
|
<div class="method-heading">
|
|
873
794
|
|
|
874
|
-
<span class="method-name">
|
|
875
|
-
class="method-args">()</span>
|
|
795
|
+
<span class="method-name">functionEnd</span><span
|
|
796
|
+
class="method-args">(type, match)</span>
|
|
876
797
|
<span class="method-click-advice">click to toggle source</span>
|
|
877
798
|
|
|
878
799
|
</div>
|
|
879
800
|
|
|
880
801
|
<div class="method-description">
|
|
881
802
|
|
|
882
|
-
|
|
883
|
-
<a href="Report.html">Report</a> the current cursor position.
|
|
884
|
-
</p>
|
|
803
|
+
|
|
885
804
|
|
|
886
805
|
|
|
887
806
|
|
|
888
807
|
<div class="method-source-code"
|
|
889
|
-
id="
|
|
808
|
+
id="function-nd-source">
|
|
890
809
|
<pre>
|
|
891
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
810
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 159</span>
|
|
811
|
+
159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">functionEnd</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
812
|
+
160: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-ivar">@funcLastMode</span>
|
|
813
|
+
161: <span class="ruby-ivar">@funcLastMode</span> = <span class="ruby-keyword kw">nil</span>
|
|
814
|
+
162: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
815
|
+
163: <span class="ruby-keyword kw">end</span></pre>
|
|
895
816
|
</div>
|
|
896
817
|
|
|
897
818
|
</div>
|
|
@@ -902,19 +823,13 @@ Return the last issued token to the token buffer.
|
|
|
902
823
|
</div>
|
|
903
824
|
|
|
904
825
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
<div id="private-instance-method-details" class="method-section section">
|
|
908
|
-
<h3 class="section-header">Private Instance Methods</h3>
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
<div id="is-d-tart-method" class="method-detail ">
|
|
912
|
-
<a name="method-i-isIdStart"></a>
|
|
826
|
+
<div id="function-tart-method" class="method-detail ">
|
|
827
|
+
<a name="method-i-functionStart"></a>
|
|
913
828
|
|
|
914
829
|
<div class="method-heading">
|
|
915
830
|
|
|
916
|
-
<span class="method-name">
|
|
917
|
-
class="method-args">(
|
|
831
|
+
<span class="method-name">functionStart</span><span
|
|
832
|
+
class="method-args">(type, match)</span>
|
|
918
833
|
<span class="method-click-advice">click to toggle source</span>
|
|
919
834
|
|
|
920
835
|
</div>
|
|
@@ -926,12 +841,16 @@ Return the last issued token to the token buffer.
|
|
|
926
841
|
|
|
927
842
|
|
|
928
843
|
<div class="method-source-code"
|
|
929
|
-
id="
|
|
844
|
+
id="function-tart-source">
|
|
930
845
|
<pre>
|
|
931
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
846
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 151</span>
|
|
847
|
+
151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">functionStart</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
848
|
+
152: <span class="ruby-comment cmt"># When restoring :bol or :bop mode, we need to switch to :inline mode.</span>
|
|
849
|
+
153: <span class="ruby-ivar">@funcLastMode</span> = (<span class="ruby-ivar">@scannerMode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:bop</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scannerMode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:bol</span>) <span class="ruby-operator">?</span>
|
|
850
|
+
154: <span class="ruby-value">:inline</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scannerMode</span>
|
|
851
|
+
155: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:func</span>
|
|
852
|
+
156: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
853
|
+
157: <span class="ruby-keyword kw">end</span></pre>
|
|
935
854
|
</div>
|
|
936
855
|
|
|
937
856
|
</div>
|
|
@@ -942,118 +861,32 @@ Return the last issued token to the token buffer.
|
|
|
942
861
|
</div>
|
|
943
862
|
|
|
944
863
|
|
|
945
|
-
<div id="
|
|
946
|
-
<a name="method-i-
|
|
864
|
+
<div id="href-nd-method" class="method-detail ">
|
|
865
|
+
<a name="method-i-hrefEnd"></a>
|
|
947
866
|
|
|
948
867
|
<div class="method-heading">
|
|
949
868
|
|
|
950
|
-
<span class="method-name">
|
|
951
|
-
class="method-args">()</span>
|
|
869
|
+
<span class="method-name">hrefEnd</span><span
|
|
870
|
+
class="method-args">(type, match)</span>
|
|
952
871
|
<span class="method-click-advice">click to toggle source</span>
|
|
953
872
|
|
|
954
873
|
</div>
|
|
955
874
|
|
|
956
875
|
<div class="method-description">
|
|
957
876
|
|
|
958
|
-
<p>
|
|
959
|
-
Deliver the next character. Keep track of the cursor position. In case we
|
|
960
|
-
reach the end, nil is returned.
|
|
961
|
-
</p>
|
|
962
877
|
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
<div class="method-source-code"
|
|
966
|
-
id="next-har-source">
|
|
967
|
-
<pre>
|
|
968
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 464</span>
|
|
969
|
-
464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextChar</span>
|
|
970
|
-
465: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@pos</span> <span class="ruby-operator">>=</span> <span class="ruby-ivar">@textLength</span>
|
|
971
|
-
466: <span class="ruby-comment cmt"># Correct @pos so that returnChar works properly but mutliple reads of</span>
|
|
972
|
-
467: <span class="ruby-comment cmt"># EOT are ignored.</span>
|
|
973
|
-
468: <span class="ruby-ivar">@pos</span> = <span class="ruby-ivar">@textLength</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
|
|
974
|
-
469: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
975
|
-
470: <span class="ruby-keyword kw">end</span>
|
|
976
|
-
471: <span class="ruby-identifier">c</span> = <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@pos</span>]
|
|
977
|
-
472: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
978
|
-
473: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
|
|
979
|
-
474: <span class="ruby-ivar">@lineNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
980
|
-
475: <span class="ruby-comment cmt"># Save the position of the line start for later use during error</span>
|
|
981
|
-
476: <span class="ruby-comment cmt"># reporting. The line begins after the newline.</span>
|
|
982
|
-
477: <span class="ruby-ivar">@lineStart</span> = <span class="ruby-ivar">@pos</span>
|
|
983
|
-
478: <span class="ruby-keyword kw">end</span>
|
|
984
|
-
479: <span class="ruby-comment cmt"># Since Ruby 1.9 is returning Strings for String#[] we need to emulate</span>
|
|
985
|
-
480: <span class="ruby-comment cmt"># this for Ruby 1.8.</span>
|
|
986
|
-
481: <span class="ruby-value str">''</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
987
|
-
482: <span class="ruby-keyword kw">end</span></pre>
|
|
988
|
-
</div>
|
|
989
|
-
|
|
990
|
-
</div>
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
</div>
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
<div id="next-oken-unc-rg-method" class="method-detail ">
|
|
999
|
-
<a name="method-i-nextTokenFuncArg"></a>
|
|
1000
|
-
|
|
1001
|
-
<div class="method-heading">
|
|
1002
|
-
|
|
1003
|
-
<span class="method-name">nextTokenFuncArg</span><span
|
|
1004
|
-
class="method-args">()</span>
|
|
1005
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1006
|
-
|
|
1007
|
-
</div>
|
|
1008
|
-
|
|
1009
|
-
<div class="method-description">
|
|
1010
|
-
|
|
1011
|
-
<p>
|
|
1012
|
-
Function arguments have the following formats:
|
|
1013
|
-
</p>
|
|
1014
|
-
<pre>
|
|
1015
|
-
<[blockfunc par1="value1" par2='value2']>
|
|
1016
|
-
<-inlinefunc par1="value1" ... -></pre>
|
|
1017
878
|
|
|
1018
879
|
|
|
1019
880
|
|
|
1020
881
|
<div class="method-source-code"
|
|
1021
|
-
id="
|
|
882
|
+
id="href-nd-source">
|
|
1022
883
|
<pre>
|
|
1023
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
135: <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>))
|
|
1030
|
-
136: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">tok</span>
|
|
1031
|
-
137: <span class="ruby-keyword kw">break</span>
|
|
1032
|
-
138: <span class="ruby-keyword kw">end</span>
|
|
1033
|
-
139: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
1034
|
-
140: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'_='</span>, <span class="ruby-value str">'='</span> ]
|
|
1035
|
-
141: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"'"</span>
|
|
1036
|
-
142: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
|
|
1037
|
-
143: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'"'</span>
|
|
1038
|
-
144: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">readString</span>(<span class="ruby-identifier">c</span>)
|
|
1039
|
-
145: <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>
|
|
1040
|
-
146: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">readId</span>(<span class="ruby-identifier">c</span>)
|
|
1041
|
-
147: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">']'</span>
|
|
1042
|
-
148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'>'</span>
|
|
1043
|
-
149: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:wiki</span>
|
|
1044
|
-
150: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BLOCKFUNCEND'</span>, <span class="ruby-value str">']>'</span> ]
|
|
1045
|
-
151: <span class="ruby-keyword kw">end</span>
|
|
1046
|
-
152: <span class="ruby-identifier">returnChar</span>
|
|
1047
|
-
153: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
|
|
1048
|
-
154: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'>'</span>
|
|
1049
|
-
155: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:wiki</span>
|
|
1050
|
-
156: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'INLINEFUNCEND'</span>, <span class="ruby-value str">'->'</span> ]
|
|
1051
|
-
157: <span class="ruby-keyword kw">end</span>
|
|
1052
|
-
158: <span class="ruby-identifier">returnChar</span>
|
|
1053
|
-
159: <span class="ruby-keyword kw">end</span>
|
|
1054
|
-
160: <span class="ruby-keyword kw">end</span>
|
|
1055
|
-
161: <span class="ruby-identifier">token</span>
|
|
1056
|
-
162: <span class="ruby-keyword kw">end</span></pre>
|
|
884
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 194</span>
|
|
885
|
+
194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hrefEnd</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
886
|
+
195: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-ivar">@hrefLastMode</span>
|
|
887
|
+
196: <span class="ruby-ivar">@hrefLastMode</span> = <span class="ruby-keyword kw">nil</span>
|
|
888
|
+
197: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
889
|
+
198: <span class="ruby-keyword kw">end</span></pre>
|
|
1057
890
|
</div>
|
|
1058
891
|
|
|
1059
892
|
</div>
|
|
@@ -1064,13 +897,13 @@ Function arguments have the following formats:
|
|
|
1064
897
|
</div>
|
|
1065
898
|
|
|
1066
899
|
|
|
1067
|
-
<div id="
|
|
1068
|
-
<a name="method-i-
|
|
900
|
+
<div id="href-tart-method" class="method-detail ">
|
|
901
|
+
<a name="method-i-hrefStart"></a>
|
|
1069
902
|
|
|
1070
903
|
<div class="method-heading">
|
|
1071
904
|
|
|
1072
|
-
<span class="method-name">
|
|
1073
|
-
class="method-args">()</span>
|
|
905
|
+
<span class="method-name">hrefStart</span><span
|
|
906
|
+
class="method-args">(type, match)</span>
|
|
1074
907
|
<span class="method-click-advice">click to toggle source</span>
|
|
1075
908
|
|
|
1076
909
|
</div>
|
|
@@ -1082,43 +915,16 @@ Function arguments have the following formats:
|
|
|
1082
915
|
|
|
1083
916
|
|
|
1084
917
|
<div class="method-source-code"
|
|
1085
|
-
id="
|
|
918
|
+
id="href-tart-source">
|
|
1086
919
|
<pre>
|
|
1087
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
195: <span class="ruby-comment cmt"># Sequences of tabs, spaces and newlines are treated as token</span>
|
|
1096
|
-
196: <span class="ruby-comment cmt"># boundaries, but otherwise they are ignored.</span>
|
|
1097
|
-
197: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">" \n\t"</span>)
|
|
1098
|
-
198: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
1099
|
-
199: <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-ivar">@ignoreInlineMarkup</span>
|
|
1100
|
-
200: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'-'</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">isIdStart</span>(<span class="ruby-identifier">peek</span>(<span class="ruby-value">1</span>))
|
|
1101
|
-
201: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">readId</span>(<span class="ruby-value str">''</span>, <span class="ruby-value str">'QUERY'</span>)
|
|
1102
|
-
202: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'-'</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'>'</span>
|
|
1103
|
-
203: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'unterminated_query'</span>,
|
|
1104
|
-
204: <span class="ruby-value str">"Inline query must be terminated with '->'"</span>)
|
|
1105
|
-
205: <span class="ruby-keyword kw">end</span>
|
|
1106
|
-
206: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">token</span>
|
|
1107
|
-
207: <span class="ruby-keyword kw">else</span>
|
|
1108
|
-
208: <span class="ruby-comment cmt"># It's not a query.</span>
|
|
1109
|
-
209: <span class="ruby-identifier">returnChar</span>(<span class="ruby-value">2</span>)
|
|
1110
|
-
210: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
1111
|
-
211: <span class="ruby-keyword kw">next</span>
|
|
1112
|
-
212: <span class="ruby-keyword kw">end</span>
|
|
1113
|
-
213: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">']'</span>
|
|
1114
|
-
214: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:wiki</span>
|
|
1115
|
-
215: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'HREFEND'</span>, <span class="ruby-value str">']'</span> ]
|
|
1116
|
-
216: <span class="ruby-keyword kw">else</span>
|
|
1117
|
-
217: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">nextTokenWord</span>(<span class="ruby-identifier">c</span>)
|
|
1118
|
-
218: <span class="ruby-keyword kw">end</span>
|
|
1119
|
-
219: <span class="ruby-keyword kw">end</span>
|
|
1120
|
-
220: <span class="ruby-identifier">token</span>
|
|
1121
|
-
221: <span class="ruby-keyword kw">end</span></pre>
|
|
920
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 186</span>
|
|
921
|
+
186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hrefStart</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
922
|
+
187: <span class="ruby-comment cmt"># When restoring :bol or :bop mode, we need to switch to :inline mode.</span>
|
|
923
|
+
188: <span class="ruby-ivar">@hrefLastMode</span> = (<span class="ruby-ivar">@scannerMode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:bop</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@scannerMode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:bol</span>) <span class="ruby-operator">?</span>
|
|
924
|
+
189: <span class="ruby-value">:inline</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scannerMode</span>
|
|
925
|
+
190: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:href</span>
|
|
926
|
+
191: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
927
|
+
192: <span class="ruby-keyword kw">end</span></pre>
|
|
1122
928
|
</div>
|
|
1123
929
|
|
|
1124
930
|
</div>
|
|
@@ -1129,61 +935,31 @@ Function arguments have the following formats:
|
|
|
1129
935
|
</div>
|
|
1130
936
|
|
|
1131
937
|
|
|
1132
|
-
<div id="
|
|
1133
|
-
<a name="method-i-
|
|
938
|
+
<div id="inline-ode-method" class="method-detail ">
|
|
939
|
+
<a name="method-i-inlineMode"></a>
|
|
1134
940
|
|
|
1135
941
|
<div class="method-heading">
|
|
1136
942
|
|
|
1137
|
-
<span class="method-name">
|
|
1138
|
-
class="method-args">()</span>
|
|
943
|
+
<span class="method-name">inlineMode</span><span
|
|
944
|
+
class="method-args">(type, match)</span>
|
|
1139
945
|
<span class="method-click-advice">click to toggle source</span>
|
|
1140
946
|
|
|
1141
947
|
</div>
|
|
1142
948
|
|
|
1143
949
|
<div class="method-description">
|
|
1144
950
|
|
|
1145
|
-
|
|
1146
|
-
We’ve just read a newline. Now we need to figure out whether this is
|
|
1147
|
-
a LINEBREAK or just a SPACE. This is determined by looking at the next
|
|
1148
|
-
character.
|
|
1149
|
-
</p>
|
|
951
|
+
|
|
1150
952
|
|
|
1151
953
|
|
|
1152
954
|
|
|
1153
955
|
<div class="method-source-code"
|
|
1154
|
-
id="
|
|
956
|
+
id="inline-ode-source">
|
|
1155
957
|
<pre>
|
|
1156
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
383: <span class="ruby-comment cmt"># any of the begin-of-line control characters.</span>
|
|
1162
|
-
384: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>).<span class="ruby-identifier">nil?</span>
|
|
1163
|
-
385: <span class="ruby-comment cmt"># We hit the end of the text.</span>
|
|
1164
|
-
386: [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
1165
|
-
387: <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">peekMatch</span>(<span class="ruby-value str">'['</span>)
|
|
1166
|
-
388: <span class="ruby-comment cmt"># the '<' can be a start of a block (BLOCKFUNCSTART) or inline text</span>
|
|
1167
|
-
389: <span class="ruby-comment cmt"># (INLINEFUNCSTART). Only for the first case the linebreak is real.</span>
|
|
1168
|
-
390: <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>
|
|
1169
|
-
391: <span class="ruby-comment cmt"># The next character may be a control character.</span>
|
|
1170
|
-
392: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
|
|
1171
|
-
393: [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-value str">"\n"</span> ]
|
|
1172
|
-
394: <span class="ruby-keyword kw">elsif</span> <span class="ruby-node">"\n*#=-"</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">c</span>)
|
|
1173
|
-
395: <span class="ruby-comment cmt"># These characters correspond to the first characters of a block</span>
|
|
1174
|
-
396: <span class="ruby-comment cmt"># element. When they are found at the begin of the line, the newline</span>
|
|
1175
|
-
397: <span class="ruby-comment cmt"># was really a line break.</span>
|
|
1176
|
-
398: <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>
|
|
1177
|
-
399: <span class="ruby-comment cmt"># The next character may be a control character.</span>
|
|
1178
|
-
400: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
|
|
1179
|
-
401: [ <span class="ruby-value str">'LINEBREAK'</span>, <span class="ruby-value str">"\n"</span> ]
|
|
1180
|
-
402: <span class="ruby-keyword kw">else</span>
|
|
1181
|
-
403: <span class="ruby-comment cmt"># Single line breaks are treated as spaces. Return the char after</span>
|
|
1182
|
-
404: <span class="ruby-comment cmt"># the newline and start with this one again.</span>
|
|
1183
|
-
405: <span class="ruby-identifier">returnChar</span>
|
|
1184
|
-
406: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
1185
|
-
407: <span class="ruby-keyword kw">end</span>
|
|
1186
|
-
408: <span class="ruby-keyword kw">end</span></pre>
|
|
958
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 111</span>
|
|
959
|
+
111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inlineMode</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
960
|
+
112: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
961
|
+
113: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
962
|
+
114: <span class="ruby-keyword kw">end</span></pre>
|
|
1187
963
|
</div>
|
|
1188
964
|
|
|
1189
965
|
</div>
|
|
@@ -1194,13 +970,13 @@ character.
|
|
|
1194
970
|
</div>
|
|
1195
971
|
|
|
1196
972
|
|
|
1197
|
-
<div id="
|
|
1198
|
-
<a name="method-i-
|
|
973
|
+
<div id="linebreak-method" class="method-detail ">
|
|
974
|
+
<a name="method-i-linebreak"></a>
|
|
1199
975
|
|
|
1200
976
|
<div class="method-heading">
|
|
1201
977
|
|
|
1202
|
-
<span class="method-name">
|
|
1203
|
-
class="method-args">()</span>
|
|
978
|
+
<span class="method-name">linebreak</span><span
|
|
979
|
+
class="method-args">(type, match)</span>
|
|
1204
980
|
<span class="method-click-advice">click to toggle source</span>
|
|
1205
981
|
|
|
1206
982
|
</div>
|
|
@@ -1212,27 +988,13 @@ character.
|
|
|
1212
988
|
|
|
1213
989
|
|
|
1214
990
|
<div class="method-source-code"
|
|
1215
|
-
id="
|
|
991
|
+
id="linebreak-source">
|
|
1216
992
|
<pre>
|
|
1217
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
361: [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
1223
|
-
362: <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>
|
|
1224
|
-
363: <span class="ruby-comment cmt"># Sequences of tabs or spaces are treated as token boundaries, but</span>
|
|
1225
|
-
364: <span class="ruby-comment cmt"># otherwise they are ignored.</span>
|
|
1226
|
-
365: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">" \t"</span>)
|
|
1227
|
-
366: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
1228
|
-
367: <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>
|
|
1229
|
-
368: <span class="ruby-identifier">nextTokenNewline</span>
|
|
1230
|
-
369: <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-ivar">@ignoreInlineMarkup</span>
|
|
1231
|
-
370: <span class="ruby-identifier">nextTokenOpenAngle</span>
|
|
1232
|
-
371: <span class="ruby-keyword kw">else</span>
|
|
1233
|
-
372: <span class="ruby-identifier">nextTokenWord</span>(<span class="ruby-identifier">c</span>)
|
|
1234
|
-
373: <span class="ruby-keyword kw">end</span>
|
|
1235
|
-
374: <span class="ruby-keyword kw">end</span></pre>
|
|
993
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 106</span>
|
|
994
|
+
106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">linebreak</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
995
|
+
107: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:bop</span>
|
|
996
|
+
108: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
997
|
+
109: <span class="ruby-keyword kw">end</span></pre>
|
|
1236
998
|
</div>
|
|
1237
999
|
|
|
1238
1000
|
</div>
|
|
@@ -1243,13 +1005,13 @@ character.
|
|
|
1243
1005
|
</div>
|
|
1244
1006
|
|
|
1245
1007
|
|
|
1246
|
-
<div id="
|
|
1247
|
-
<a name="method-i-
|
|
1008
|
+
<div id="nowiki-nd-method" class="method-detail ">
|
|
1009
|
+
<a name="method-i-nowikiEnd"></a>
|
|
1248
1010
|
|
|
1249
1011
|
<div class="method-heading">
|
|
1250
1012
|
|
|
1251
|
-
<span class="method-name">
|
|
1252
|
-
class="method-args">()</span>
|
|
1013
|
+
<span class="method-name">nowikiEnd</span><span
|
|
1014
|
+
class="method-args">(type, match)</span>
|
|
1253
1015
|
<span class="method-click-advice">click to toggle source</span>
|
|
1254
1016
|
|
|
1255
1017
|
</div>
|
|
@@ -1261,31 +1023,13 @@ character.
|
|
|
1261
1023
|
|
|
1262
1024
|
|
|
1263
1025
|
<div class="method-source-code"
|
|
1264
|
-
id="
|
|
1026
|
+
id="nowiki-nd-source">
|
|
1265
1027
|
<pre>
|
|
1266
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
414: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:nowiki</span>
|
|
1272
|
-
415: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'/nowiki>'</span>)
|
|
1273
|
-
416: <span class="ruby-comment cmt"># Turn most wiki markup interpretation on.</span>
|
|
1274
|
-
417: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'/nowiki>'</span>.<span class="ruby-identifier">length</span>
|
|
1275
|
-
418: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:wiki</span>
|
|
1276
|
-
419: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">peekMatch</span>(<span class="ruby-value str">'-'</span>) <span class="ruby-operator">&&</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">:wiki</span>
|
|
1277
|
-
420: <span class="ruby-identifier">nextChar</span>
|
|
1278
|
-
421: <span class="ruby-comment cmt"># Switch the parser to function argument parsing mode.</span>
|
|
1279
|
-
422: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:funcarg</span>
|
|
1280
|
-
423: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'INLINEFUNCSTART'</span>, <span class="ruby-value str">'<-'</span> ]
|
|
1281
|
-
424: <span class="ruby-keyword kw">else</span>
|
|
1282
|
-
425: <span class="ruby-comment cmt"># We've not found a valid control sequence. Push back the character</span>
|
|
1283
|
-
426: <span class="ruby-comment cmt"># and make sure we treat it as a normal character.</span>
|
|
1284
|
-
427: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
1285
|
-
428: <span class="ruby-identifier">returnChar</span>
|
|
1286
|
-
429: <span class="ruby-keyword kw">end</span>
|
|
1287
|
-
430: <span class="ruby-keyword kw">nil</span>
|
|
1288
|
-
431: <span class="ruby-keyword kw">end</span></pre>
|
|
1028
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 146</span>
|
|
1029
|
+
146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nowikiEnd</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1030
|
+
147: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
1031
|
+
148: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
1032
|
+
149: <span class="ruby-keyword kw">end</span></pre>
|
|
1289
1033
|
</div>
|
|
1290
1034
|
|
|
1291
1035
|
</div>
|
|
@@ -1296,13 +1040,13 @@ character.
|
|
|
1296
1040
|
</div>
|
|
1297
1041
|
|
|
1298
1042
|
|
|
1299
|
-
<div id="
|
|
1300
|
-
<a name="method-i-
|
|
1043
|
+
<div id="nowiki-tart-method" class="method-detail ">
|
|
1044
|
+
<a name="method-i-nowikiStart"></a>
|
|
1301
1045
|
|
|
1302
1046
|
<div class="method-heading">
|
|
1303
1047
|
|
|
1304
|
-
<span class="method-name">
|
|
1305
|
-
class="method-args">()</span>
|
|
1048
|
+
<span class="method-name">nowikiStart</span><span
|
|
1049
|
+
class="method-args">(type, match)</span>
|
|
1306
1050
|
<span class="method-click-advice">click to toggle source</span>
|
|
1307
1051
|
|
|
1308
1052
|
</div>
|
|
@@ -1314,32 +1058,13 @@ character.
|
|
|
1314
1058
|
|
|
1315
1059
|
|
|
1316
1060
|
<div class="method-source-code"
|
|
1317
|
-
id="
|
|
1061
|
+
id="nowiki-tart-source">
|
|
1318
1062
|
<pre>
|
|
1319
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
168: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'LITERAL'</span>, <span class="ruby-value str">'|'</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>
|
|
1325
|
-
169:
|
|
1326
|
-
170: <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>
|
|
1327
|
-
171: <span class="ruby-identifier">nextChar</span>
|
|
1328
|
-
172: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:wiki</span>
|
|
1329
|
-
173: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'REFEND'</span>, <span class="ruby-value str">']]'</span> ]
|
|
1330
|
-
174: <span class="ruby-keyword kw">end</span>
|
|
1331
|
-
175:
|
|
1332
|
-
176: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">c</span>
|
|
1333
|
-
177: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>)
|
|
1334
|
-
178: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">nil?</span>
|
|
1335
|
-
179: <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">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>)
|
|
1336
|
-
180: <span class="ruby-identifier">returnChar</span>
|
|
1337
|
-
181: <span class="ruby-keyword kw">break</span>
|
|
1338
|
-
182: <span class="ruby-keyword kw">end</span>
|
|
1339
|
-
183: <span class="ruby-identifier">token</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1340
|
-
184: <span class="ruby-keyword kw">end</span>
|
|
1341
|
-
185: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-identifier">token</span> ]
|
|
1342
|
-
186: <span class="ruby-keyword kw">end</span></pre>
|
|
1063
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 141</span>
|
|
1064
|
+
141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nowikiStart</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1065
|
+
142: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:nowiki</span>
|
|
1066
|
+
143: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
1067
|
+
144: <span class="ruby-keyword kw">end</span></pre>
|
|
1343
1068
|
</div>
|
|
1344
1069
|
|
|
1345
1070
|
</div>
|
|
@@ -1350,13 +1075,13 @@ character.
|
|
|
1350
1075
|
</div>
|
|
1351
1076
|
|
|
1352
1077
|
|
|
1353
|
-
<div id="
|
|
1354
|
-
<a name="method-i-
|
|
1078
|
+
<div id="number-method" class="method-detail ">
|
|
1079
|
+
<a name="method-i-number"></a>
|
|
1355
1080
|
|
|
1356
1081
|
<div class="method-heading">
|
|
1357
1082
|
|
|
1358
|
-
<span class="method-name">
|
|
1359
|
-
class="method-args">()</span>
|
|
1083
|
+
<span class="method-name">number</span><span
|
|
1084
|
+
class="method-args">(type, match)</span>
|
|
1360
1085
|
<span class="method-click-advice">click to toggle source</span>
|
|
1361
1086
|
|
|
1362
1087
|
</div>
|
|
@@ -1368,79 +1093,13 @@ character.
|
|
|
1368
1093
|
|
|
1369
1094
|
|
|
1370
1095
|
<div class="method-source-code"
|
|
1371
|
-
id="
|
|
1096
|
+
id="number-source">
|
|
1372
1097
|
<pre>
|
|
1373
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
227:
|
|
1379
|
-
228: <span class="ruby-comment cmt"># Reset the flag again.</span>
|
|
1380
|
-
229: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">false</span>
|
|
1381
|
-
230:
|
|
1382
|
-
231: <span class="ruby-comment cmt"># We already know that the last newline was a real linebreak. Further</span>
|
|
1383
|
-
232: <span class="ruby-comment cmt"># newlines can safely be ignored.</span>
|
|
1384
|
-
233: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">"\n"</span>)
|
|
1385
|
-
234:
|
|
1386
|
-
235: <span class="ruby-comment cmt"># All the lead characters of a token here also need to be registered</span>
|
|
1387
|
-
236: <span class="ruby-comment cmt"># with nextTokenNewline!</span>
|
|
1388
|
-
237: <span class="ruby-keyword kw">case</span> (<span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>)
|
|
1389
|
-
238: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'='</span>
|
|
1390
|
-
239: <span class="ruby-comment cmt"># Headings start with 2 or more = and must be followed by a space.</span>
|
|
1391
|
-
240: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">5</span>)
|
|
1392
|
-
241: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
1393
|
-
242: <span class="ruby-comment cmt"># 1 = does not mean anything. Push it back and process it as normal</span>
|
|
1394
|
-
243: <span class="ruby-comment cmt"># text further down.</span>
|
|
1395
|
-
244: <span class="ruby-identifier">returnChar</span>
|
|
1396
|
-
245: <span class="ruby-keyword kw">else</span>
|
|
1397
|
-
246: <span class="ruby-comment cmt"># Between the = characters and the title text must be exactly one</span>
|
|
1398
|
-
247: <span class="ruby-comment cmt"># space.</span>
|
|
1399
|
-
248: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"TITLE#{level - 1}"</span>, <span class="ruby-value str">'='</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>
|
|
1400
|
-
249: <span class="ruby-comment cmt"># If that's missing, The = are treated as normal text further down.</span>
|
|
1401
|
-
250: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
1402
|
-
251: <span class="ruby-keyword kw">end</span>
|
|
1403
|
-
252: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'-'</span>
|
|
1404
|
-
253: <span class="ruby-comment cmt"># Horizontal ruler. Must have exactly 4 -.</span>
|
|
1405
|
-
254: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">4</span>)
|
|
1406
|
-
255: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">"HLINE"</span>, <span class="ruby-value str">'-'</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>
|
|
1407
|
-
256: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
1408
|
-
257: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'*'</span>
|
|
1409
|
-
258: <span class="ruby-comment cmt"># Bullet lists start with one to three * characters.</span>
|
|
1410
|
-
259: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'*'</span>, <span class="ruby-value">4</span>)
|
|
1411
|
-
260: <span class="ruby-comment cmt"># Between the * characters and the bullet text must be exactly one</span>
|
|
1412
|
-
261: <span class="ruby-comment cmt"># space.</span>
|
|
1413
|
-
262: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"BULLET#{level}"</span>, <span class="ruby-value str">'*'</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>
|
|
1414
|
-
263: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
|
|
1415
|
-
264: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
1416
|
-
265: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'#'</span>
|
|
1417
|
-
266: <span class="ruby-comment cmt"># Numbered list start with one to three # characters.</span>
|
|
1418
|
-
267: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'#'</span>, <span class="ruby-value">4</span>)
|
|
1419
|
-
268: <span class="ruby-comment cmt"># Between the # characters and the bullet text must be exactly one</span>
|
|
1420
|
-
269: <span class="ruby-comment cmt"># space.</span>
|
|
1421
|
-
270: <span class="ruby-keyword kw">return</span> [ <span class="ruby-node">"NUMBER#{level}"</span>, <span class="ruby-value str">'#'</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>
|
|
1422
|
-
271: <span class="ruby-comment cmt"># If that's missing, The # are treated as normal text further down.</span>
|
|
1423
|
-
272: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
|
1424
|
-
273: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'<'</span>
|
|
1425
|
-
274: <span class="ruby-comment cmt"># This may be the start of a block generating function.</span>
|
|
1426
|
-
275: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nextChar</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'['</span>
|
|
1427
|
-
276: <span class="ruby-comment cmt"># Switch the parser to block function argument parsing mode.</span>
|
|
1428
|
-
277: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:funcarg</span>
|
|
1429
|
-
278: <span class="ruby-keyword kw">return</span> [ <span class="ruby-value str">'BLOCKFUNCSTART'</span>, <span class="ruby-value str">'<['</span> ]
|
|
1430
|
-
279: <span class="ruby-keyword kw">end</span>
|
|
1431
|
-
280: <span class="ruby-comment cmt"># Maybe not.</span>
|
|
1432
|
-
281: <span class="ruby-identifier">returnChar</span>(<span class="ruby-value">2</span>)
|
|
1433
|
-
282: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">' '</span>
|
|
1434
|
-
283: <span class="ruby-comment cmt"># Lines that start with a space are treated as verbatim text.</span>
|
|
1435
|
-
284: <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>
|
|
1436
|
-
285: <span class="ruby-keyword kw">else</span>
|
|
1437
|
-
286: <span class="ruby-comment cmt"># If the character is not a known control character we push it back</span>
|
|
1438
|
-
287: <span class="ruby-comment cmt"># and treat it as normal text further down.</span>
|
|
1439
|
-
288: <span class="ruby-identifier">returnChar</span>
|
|
1440
|
-
289: <span class="ruby-keyword kw">end</span>
|
|
1441
|
-
290:
|
|
1442
|
-
291: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1443
|
-
292: <span class="ruby-keyword kw">end</span></pre>
|
|
1098
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 130</span>
|
|
1099
|
+
130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">number</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1100
|
+
131: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
1101
|
+
132: [ <span class="ruby-node">"NUMBER#{match.length - 1}"</span>, <span class="ruby-identifier">match</span> ]
|
|
1102
|
+
133: <span class="ruby-keyword kw">end</span></pre>
|
|
1444
1103
|
</div>
|
|
1445
1104
|
|
|
1446
1105
|
</div>
|
|
@@ -1451,13 +1110,13 @@ character.
|
|
|
1451
1110
|
</div>
|
|
1452
1111
|
|
|
1453
1112
|
|
|
1454
|
-
<div id="
|
|
1455
|
-
<a name="method-i-
|
|
1113
|
+
<div id="pre-method" class="method-detail ">
|
|
1114
|
+
<a name="method-i-pre"></a>
|
|
1456
1115
|
|
|
1457
1116
|
<div class="method-heading">
|
|
1458
1117
|
|
|
1459
|
-
<span class="method-name">
|
|
1460
|
-
class="method-args">()</span>
|
|
1118
|
+
<span class="method-name">pre</span><span
|
|
1119
|
+
class="method-args">(type, match)</span>
|
|
1461
1120
|
<span class="method-click-advice">click to toggle source</span>
|
|
1462
1121
|
|
|
1463
1122
|
</div>
|
|
@@ -1469,71 +1128,12 @@ character.
|
|
|
1469
1128
|
|
|
1470
1129
|
|
|
1471
1130
|
<div class="method-source-code"
|
|
1472
|
-
id="
|
|
1131
|
+
id="pre-source">
|
|
1473
1132
|
<pre>
|
|
1474
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
297: <span class="ruby-comment cmt"># We've reached the end of the text.</span>
|
|
1479
|
-
298: [ <span class="ruby-value str">'.'</span>, <span class="ruby-value str">'<END>'</span> ]
|
|
1480
|
-
299: <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>
|
|
1481
|
-
300: <span class="ruby-comment cmt"># Sequences of tabs or spaces are treated as token boundaries, but</span>
|
|
1482
|
-
301: <span class="ruby-comment cmt"># otherwise they are ignored.</span>
|
|
1483
|
-
302: <span class="ruby-identifier">readSequence</span>(<span class="ruby-value str">" \t"</span>)
|
|
1484
|
-
303: [ <span class="ruby-value str">'SPACE'</span>, <span class="ruby-value str">' '</span> ]
|
|
1485
|
-
304: <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-ivar">@ignoreInlineMarkup</span>
|
|
1486
|
-
305: <span class="ruby-comment cmt"># Sequence of 2 ' means italic, 3 ' means bold, 4 ' means monospaced</span>
|
|
1487
|
-
306: <span class="ruby-comment cmt"># code, 5 ' means italic and bold. Anything else is just normal text.</span>
|
|
1488
|
-
307: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">"'"</span>, <span class="ruby-value">5</span>)
|
|
1489
|
-
308: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
|
|
1490
|
-
309: [ <span class="ruby-value str">'ITALIC'</span>, <span class="ruby-value str">"'"</span> * <span class="ruby-identifier">level</span> ]
|
|
1491
|
-
310: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span>
|
|
1492
|
-
311: [ <span class="ruby-value str">'BOLD'</span>, <span class="ruby-value str">"'"</span> * <span class="ruby-identifier">level</span> ]
|
|
1493
|
-
312: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">4</span>
|
|
1494
|
-
313: [ <span class="ruby-value str">'CODE'</span>, <span class="ruby-value str">"'"</span> * <span class="ruby-identifier">level</span> ]
|
|
1495
|
-
314: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">5</span>
|
|
1496
|
-
315: [ <span class="ruby-value str">'BOLDITALIC'</span>, <span class="ruby-value str">"'"</span> * <span class="ruby-identifier">level</span> ]
|
|
1497
|
-
316: <span class="ruby-keyword kw">else</span>
|
|
1498
|
-
317: <span class="ruby-comment cmt"># We have not found the right syntax. Treat the found characters as</span>
|
|
1499
|
-
318: <span class="ruby-comment cmt"># normal text. Push all ' back and start again but ignoring the '</span>
|
|
1500
|
-
319: <span class="ruby-comment cmt"># code for once.</span>
|
|
1501
|
-
320: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
1502
|
-
321: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
1503
|
-
322: <span class="ruby-keyword kw">nil</span>
|
|
1504
|
-
323: <span class="ruby-keyword kw">end</span>
|
|
1505
|
-
324: <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-ivar">@ignoreInlineMarkup</span>
|
|
1506
|
-
325: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'='</span>, <span class="ruby-value">5</span>)
|
|
1507
|
-
326: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span>
|
|
1508
|
-
327: [ <span class="ruby-node">"TITLE#{level - 1}END"</span>, <span class="ruby-value str">'='</span> * <span class="ruby-identifier">level</span> ]
|
|
1509
|
-
328: <span class="ruby-keyword kw">else</span>
|
|
1510
|
-
329: <span class="ruby-comment cmt"># We have not found the right syntax. Treat found characters as</span>
|
|
1511
|
-
330: <span class="ruby-comment cmt"># normal text. Push all = back and start again but ignoring the =</span>
|
|
1512
|
-
331: <span class="ruby-comment cmt"># code for once.</span>
|
|
1513
|
-
332: <span class="ruby-identifier">returnChar</span>(<span class="ruby-identifier">level</span>)
|
|
1514
|
-
333: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">true</span>
|
|
1515
|
-
334: <span class="ruby-keyword kw">nil</span>
|
|
1516
|
-
335: <span class="ruby-keyword kw">end</span>
|
|
1517
|
-
336: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'['</span>
|
|
1518
|
-
337: <span class="ruby-identifier">level</span> = <span class="ruby-identifier">readSequenceMax</span>(<span class="ruby-value str">'['</span>, <span class="ruby-value">2</span>)
|
|
1519
|
-
338: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
|
1520
|
-
339: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:href</span>
|
|
1521
|
-
340: [ <span class="ruby-value str">'HREF'</span> , <span class="ruby-value str">'['</span> ]
|
|
1522
|
-
341: <span class="ruby-keyword kw">else</span>
|
|
1523
|
-
342: <span class="ruby-ivar">@mode</span> = <span class="ruby-value">:ref</span>
|
|
1524
|
-
343: [ <span class="ruby-value str">'REF'</span>, <span class="ruby-value str">'[['</span> ]
|
|
1525
|
-
344: <span class="ruby-keyword kw">end</span>
|
|
1526
|
-
345: <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">peek</span> <span class="ruby-operator">==</span> <span class="ruby-value str">']'</span>
|
|
1527
|
-
346: <span class="ruby-identifier">nextChar</span>
|
|
1528
|
-
347: [ <span class="ruby-value str">'REFEND'</span>, <span class="ruby-value str">']]'</span> ]
|
|
1529
|
-
348: <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>
|
|
1530
|
-
349: <span class="ruby-identifier">nextTokenNewline</span>
|
|
1531
|
-
350: <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-ivar">@ignoreInlineMarkup</span>
|
|
1532
|
-
351: <span class="ruby-identifier">nextTokenOpenAngle</span>
|
|
1533
|
-
352: <span class="ruby-keyword kw">else</span>
|
|
1534
|
-
353: <span class="ruby-identifier">nextTokenWord</span>(<span class="ruby-identifier">c</span>)
|
|
1535
|
-
354: <span class="ruby-keyword kw">end</span>
|
|
1536
|
-
355: <span class="ruby-keyword kw">end</span></pre>
|
|
1133
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 165</span>
|
|
1134
|
+
165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pre</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1135
|
+
166: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>] ]
|
|
1136
|
+
167: <span class="ruby-keyword kw">end</span></pre>
|
|
1537
1137
|
</div>
|
|
1538
1138
|
|
|
1539
1139
|
</div>
|
|
@@ -1544,97 +1144,31 @@ character.
|
|
|
1544
1144
|
</div>
|
|
1545
1145
|
|
|
1546
1146
|
|
|
1547
|
-
<div id="
|
|
1548
|
-
<a name="method-i-
|
|
1147
|
+
<div id="query-method" class="method-detail ">
|
|
1148
|
+
<a name="method-i-query"></a>
|
|
1549
1149
|
|
|
1550
1150
|
<div class="method-heading">
|
|
1551
1151
|
|
|
1552
|
-
<span class="method-name">
|
|
1553
|
-
class="method-args">(
|
|
1152
|
+
<span class="method-name">query</span><span
|
|
1153
|
+
class="method-args">(type, match)</span>
|
|
1554
1154
|
<span class="method-click-advice">click to toggle source</span>
|
|
1555
1155
|
|
|
1556
1156
|
</div>
|
|
1557
1157
|
|
|
1558
1158
|
<div class="method-description">
|
|
1559
1159
|
|
|
1560
|
-
<p>
|
|
1561
|
-
<em>c</em> does not match any start of a control sequence, so we read
|
|
1562
|
-
characters until we find the end of the word.
|
|
1563
|
-
</p>
|
|
1564
1160
|
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
<div class="method-source-code"
|
|
1568
|
-
id="next-oken-ord-source">
|
|
1569
|
-
<pre>
|
|
1570
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 435</span>
|
|
1571
|
-
435: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nextTokenWord</span>(<span class="ruby-identifier">c</span>)
|
|
1572
|
-
436: <span class="ruby-comment cmt"># Reset this flag again.</span>
|
|
1573
|
-
437: <span class="ruby-ivar">@ignoreInlineMarkup</span> = <span class="ruby-keyword kw">false</span>
|
|
1574
|
-
438: <span class="ruby-identifier">str</span> = <span class="ruby-value str">''</span>
|
|
1575
|
-
439: <span class="ruby-identifier">str</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1576
|
-
440: <span class="ruby-comment cmt"># Now we can collect characters of a word until we hit a whitespace.</span>
|
|
1577
|
-
441: <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>)
|
|
1578
|
-
442: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@mode</span>
|
|
1579
|
-
443: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:wiki</span>
|
|
1580
|
-
444: <span class="ruby-comment cmt"># Or at least two ' characters in a row.</span>
|
|
1581
|
-
445: <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>
|
|
1582
|
-
446: <span class="ruby-comment cmt"># Or a ] or <</span>
|
|
1583
|
-
447: <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>)
|
|
1584
|
-
448: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:href</span>
|
|
1585
|
-
449: <span class="ruby-comment cmt"># Look for - of the end mark -> end ']'</span>
|
|
1586
|
-
450: <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>)
|
|
1587
|
-
451: <span class="ruby-keyword kw">else</span>
|
|
1588
|
-
452: <span class="ruby-comment cmt"># Make sure we find the </nowiki> tag even within a word.</span>
|
|
1589
|
-
453: <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>
|
|
1590
|
-
454: <span class="ruby-keyword kw">end</span>
|
|
1591
|
-
455: <span class="ruby-identifier">str</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1592
|
-
456: <span class="ruby-keyword kw">end</span>
|
|
1593
|
-
457: <span class="ruby-comment cmt"># Return the character that indicated the word end.</span>
|
|
1594
|
-
458: <span class="ruby-identifier">returnChar</span>
|
|
1595
|
-
459: [ <span class="ruby-value str">'WORD'</span>, <span class="ruby-identifier">str</span> ]
|
|
1596
|
-
460: <span class="ruby-keyword kw">end</span></pre>
|
|
1597
|
-
</div>
|
|
1598
|
-
|
|
1599
|
-
</div>
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
</div>
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
<div id="peek-method" class="method-detail ">
|
|
1608
|
-
<a name="method-i-peek"></a>
|
|
1609
|
-
|
|
1610
|
-
<div class="method-heading">
|
|
1611
|
-
|
|
1612
|
-
<span class="method-name">peek</span><span
|
|
1613
|
-
class="method-args">(lookAhead = 1)</span>
|
|
1614
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1615
|
-
|
|
1616
|
-
</div>
|
|
1617
|
-
|
|
1618
|
-
<div class="method-description">
|
|
1619
|
-
|
|
1620
|
-
<p>
|
|
1621
|
-
Return a character further up the text without moving the cursor.
|
|
1622
|
-
<em>lookAhead</em> is the number of characters to peek ahead. A value of 0
|
|
1623
|
-
would return the last character provided by nextChar().
|
|
1624
|
-
</p>
|
|
1625
1161
|
|
|
1626
1162
|
|
|
1627
1163
|
|
|
1628
1164
|
<div class="method-source-code"
|
|
1629
|
-
id="
|
|
1165
|
+
id="query-source">
|
|
1630
1166
|
<pre>
|
|
1631
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
514: <span class="ruby-value str">''</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@pos</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">lookAhead</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
|
|
1637
|
-
515: <span class="ruby-keyword kw">end</span></pre>
|
|
1167
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 181</span>
|
|
1168
|
+
181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1169
|
+
182: <span class="ruby-comment cmt"># Remove <- and ->.</span>
|
|
1170
|
+
183: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>] ]
|
|
1171
|
+
184: <span class="ruby-keyword kw">end</span></pre>
|
|
1638
1172
|
</div>
|
|
1639
1173
|
|
|
1640
1174
|
</div>
|
|
@@ -1645,35 +1179,32 @@ would return the last character provided by nextChar().
|
|
|
1645
1179
|
</div>
|
|
1646
1180
|
|
|
1647
1181
|
|
|
1648
|
-
<div id="
|
|
1649
|
-
<a name="method-i-
|
|
1182
|
+
<div id="quotes-method" class="method-detail ">
|
|
1183
|
+
<a name="method-i-quotes"></a>
|
|
1650
1184
|
|
|
1651
1185
|
<div class="method-heading">
|
|
1652
1186
|
|
|
1653
|
-
<span class="method-name">
|
|
1654
|
-
class="method-args">(
|
|
1187
|
+
<span class="method-name">quotes</span><span
|
|
1188
|
+
class="method-args">(type, match)</span>
|
|
1655
1189
|
<span class="method-click-advice">click to toggle source</span>
|
|
1656
1190
|
|
|
1657
1191
|
</div>
|
|
1658
1192
|
|
|
1659
1193
|
<div class="method-description">
|
|
1660
1194
|
|
|
1661
|
-
|
|
1662
|
-
Return true if the next characters match exactly the character sequence in
|
|
1663
|
-
word.
|
|
1664
|
-
</p>
|
|
1195
|
+
|
|
1665
1196
|
|
|
1666
1197
|
|
|
1667
1198
|
|
|
1668
1199
|
<div class="method-source-code"
|
|
1669
|
-
id="
|
|
1200
|
+
id="quotes-source">
|
|
1670
1201
|
<pre>
|
|
1671
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1202
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 135</span>
|
|
1203
|
+
135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">quotes</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1204
|
+
136: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
1205
|
+
137: <span class="ruby-identifier">types</span> = [ <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'ITALIC'</span>, <span class="ruby-value str">'BOLD'</span> , <span class="ruby-value str">'CODE'</span>, <span class="ruby-value str">'BOLDITALIC'</span> ]
|
|
1206
|
+
138: [ <span class="ruby-identifier">types</span>[<span class="ruby-identifier">match</span>.<span class="ruby-identifier">length</span>], <span class="ruby-identifier">match</span> ]
|
|
1207
|
+
139: <span class="ruby-keyword kw">end</span></pre>
|
|
1677
1208
|
</div>
|
|
1678
1209
|
|
|
1679
1210
|
</div>
|
|
@@ -1684,13 +1215,13 @@ word.
|
|
|
1684
1215
|
</div>
|
|
1685
1216
|
|
|
1686
1217
|
|
|
1687
|
-
<div id="
|
|
1688
|
-
<a name="method-i-
|
|
1218
|
+
<div id="ref-nd-method" class="method-detail ">
|
|
1219
|
+
<a name="method-i-refEnd"></a>
|
|
1689
1220
|
|
|
1690
1221
|
<div class="method-heading">
|
|
1691
1222
|
|
|
1692
|
-
<span class="method-name">
|
|
1693
|
-
class="method-args">(
|
|
1223
|
+
<span class="method-name">refEnd</span><span
|
|
1224
|
+
class="method-args">(type, match)</span>
|
|
1694
1225
|
<span class="method-click-advice">click to toggle source</span>
|
|
1695
1226
|
|
|
1696
1227
|
</div>
|
|
@@ -1702,18 +1233,13 @@ word.
|
|
|
1702
1233
|
|
|
1703
1234
|
|
|
1704
1235
|
<div class="method-source-code"
|
|
1705
|
-
id="
|
|
1236
|
+
id="ref-nd-source">
|
|
1706
1237
|
<pre>
|
|
1707
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
577: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1713
|
-
578: <span class="ruby-keyword kw">end</span>
|
|
1714
|
-
579: <span class="ruby-identifier">c</span> = <span class="ruby-identifier">nextChar</span>
|
|
1715
|
-
580: <span class="ruby-keyword kw">end</span>
|
|
1716
|
-
581: <span class="ruby-keyword kw">end</span></pre>
|
|
1238
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 205</span>
|
|
1239
|
+
205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">refEnd</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1240
|
+
206: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
1241
|
+
207: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
1242
|
+
208: <span class="ruby-keyword kw">end</span></pre>
|
|
1717
1243
|
</div>
|
|
1718
1244
|
|
|
1719
1245
|
</div>
|
|
@@ -1724,50 +1250,31 @@ word.
|
|
|
1724
1250
|
</div>
|
|
1725
1251
|
|
|
1726
1252
|
|
|
1727
|
-
<div id="
|
|
1728
|
-
<a name="method-i-
|
|
1253
|
+
<div id="ref-tart-method" class="method-detail ">
|
|
1254
|
+
<a name="method-i-refStart"></a>
|
|
1729
1255
|
|
|
1730
1256
|
<div class="method-heading">
|
|
1731
1257
|
|
|
1732
|
-
<span class="method-name">
|
|
1733
|
-
class="method-args">()</span>
|
|
1258
|
+
<span class="method-name">refStart</span><span
|
|
1259
|
+
class="method-args">(type, match)</span>
|
|
1734
1260
|
<span class="method-click-advice">click to toggle source</span>
|
|
1735
1261
|
|
|
1736
1262
|
</div>
|
|
1737
1263
|
|
|
1738
1264
|
<div class="method-description">
|
|
1739
1265
|
|
|
1740
|
-
|
|
1741
|
-
Read a block of pre-formatted text. All lines must start with a space
|
|
1742
|
-
character.
|
|
1743
|
-
</p>
|
|
1266
|
+
|
|
1744
1267
|
|
|
1745
1268
|
|
|
1746
1269
|
|
|
1747
1270
|
<div class="method-source-code"
|
|
1748
|
-
id="
|
|
1271
|
+
id="ref-tart-source">
|
|
1749
1272
|
<pre>
|
|
1750
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
556: <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-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"\n"</span>
|
|
1756
|
-
557: <span class="ruby-comment cmt"># Append a found characters.</span>
|
|
1757
|
-
558: <span class="ruby-identifier">tok</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1758
|
-
559: <span class="ruby-keyword kw">end</span>
|
|
1759
|
-
560: <span class="ruby-comment cmt"># Append the newline.</span>
|
|
1760
|
-
561: <span class="ruby-identifier">tok</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1761
|
-
562: <span class="ruby-comment cmt"># If the next line does not start with a space, we've reached the end of</span>
|
|
1762
|
-
563: <span class="ruby-comment cmt"># the code block.</span>
|
|
1763
|
-
564: <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-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">' '</span>
|
|
1764
|
-
565: <span class="ruby-keyword kw">break</span>
|
|
1765
|
-
566: <span class="ruby-keyword kw">end</span>
|
|
1766
|
-
567: <span class="ruby-keyword kw">end</span>
|
|
1767
|
-
568: <span class="ruby-identifier">returnChar</span>
|
|
1768
|
-
569: <span class="ruby-ivar">@beginOfLine</span> = <span class="ruby-keyword kw">true</span>
|
|
1769
|
-
570: <span class="ruby-identifier">tok</span>
|
|
1770
|
-
571: <span class="ruby-keyword kw">end</span></pre>
|
|
1273
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 200</span>
|
|
1274
|
+
200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">refStart</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1275
|
+
201: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:ref</span>
|
|
1276
|
+
202: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
1277
|
+
203: <span class="ruby-keyword kw">end</span></pre>
|
|
1771
1278
|
</div>
|
|
1772
1279
|
|
|
1773
1280
|
</div>
|
|
@@ -1778,13 +1285,13 @@ character.
|
|
|
1778
1285
|
</div>
|
|
1779
1286
|
|
|
1780
1287
|
|
|
1781
|
-
<div id="
|
|
1782
|
-
<a name="method-i-
|
|
1288
|
+
<div id="space-method" class="method-detail ">
|
|
1289
|
+
<a name="method-i-space"></a>
|
|
1783
1290
|
|
|
1784
1291
|
<div class="method-heading">
|
|
1785
1292
|
|
|
1786
|
-
<span class="method-name">
|
|
1787
|
-
class="method-args">(
|
|
1293
|
+
<span class="method-name">space</span><span
|
|
1294
|
+
class="method-args">(type, match)</span>
|
|
1788
1295
|
<span class="method-click-advice">click to toggle source</span>
|
|
1789
1296
|
|
|
1790
1297
|
</div>
|
|
@@ -1796,20 +1303,18 @@ character.
|
|
|
1796
1303
|
|
|
1797
1304
|
|
|
1798
1305
|
<div class="method-source-code"
|
|
1799
|
-
id="
|
|
1306
|
+
id="space-source">
|
|
1800
1307
|
<pre>
|
|
1801
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
596: <span class="ruby-keyword kw">return</span> [ <span class="ruby-identifier">tokenType</span>, <span class="ruby-identifier">token</span> ]
|
|
1812
|
-
597: <span class="ruby-keyword kw">end</span></pre>
|
|
1308
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 96</span>
|
|
1309
|
+
96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">space</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1310
|
+
97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">"\n"</span>)
|
|
1311
|
+
98: <span class="ruby-comment cmt"># If the match contains a linebreak we switch to :bol mode.</span>
|
|
1312
|
+
99: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:bol</span>
|
|
1313
|
+
100: <span class="ruby-comment cmt"># And return an empty string.</span>
|
|
1314
|
+
101: <span class="ruby-identifier">match</span> = <span class="ruby-value str">''</span>
|
|
1315
|
+
102: <span class="ruby-keyword kw">end</span>
|
|
1316
|
+
103: [<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span> ]
|
|
1317
|
+
104: <span class="ruby-keyword kw">end</span></pre>
|
|
1813
1318
|
</div>
|
|
1814
1319
|
|
|
1815
1320
|
</div>
|
|
@@ -1820,84 +1325,32 @@ character.
|
|
|
1820
1325
|
</div>
|
|
1821
1326
|
|
|
1822
1327
|
|
|
1823
|
-
<div id="
|
|
1824
|
-
<a name="method-i-
|
|
1328
|
+
<div id="sq-tring-method" class="method-detail ">
|
|
1329
|
+
<a name="method-i-sqString"></a>
|
|
1825
1330
|
|
|
1826
1331
|
<div class="method-heading">
|
|
1827
1332
|
|
|
1828
|
-
<span class="method-name">
|
|
1829
|
-
class="method-args">(
|
|
1333
|
+
<span class="method-name">sqString</span><span
|
|
1334
|
+
class="method-args">(type, match)</span>
|
|
1830
1335
|
<span class="method-click-advice">click to toggle source</span>
|
|
1831
1336
|
|
|
1832
1337
|
</div>
|
|
1833
1338
|
|
|
1834
1339
|
<div class="method-description">
|
|
1835
1340
|
|
|
1836
|
-
<p>
|
|
1837
|
-
Read a sequence of characters that are all contained in the <em>chars</em>
|
|
1838
|
-
Array. If a character is found that is not in <em>chars</em> the method
|
|
1839
|
-
returns the so far found sequence of chars as <a
|
|
1840
|
-
href="../String.html">String</a>.
|
|
1841
|
-
</p>
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
1341
|
|
|
1845
|
-
<div class="method-source-code"
|
|
1846
|
-
id="read-equence-source">
|
|
1847
|
-
<pre>
|
|
1848
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 528</span>
|
|
1849
|
-
528: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">readSequence</span>(<span class="ruby-identifier">chars</span>)
|
|
1850
|
-
529: <span class="ruby-identifier">sequence</span> = <span class="ruby-value str">''</span>
|
|
1851
|
-
530: <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-identifier">chars</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">c</span>)
|
|
1852
|
-
531: <span class="ruby-identifier">sequence</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1853
|
-
532: <span class="ruby-keyword kw">end</span>
|
|
1854
|
-
533: <span class="ruby-comment cmt"># Push back the character that did no longer match.</span>
|
|
1855
|
-
534: <span class="ruby-identifier">returnChar</span>
|
|
1856
|
-
535: <span class="ruby-identifier">sequence</span>
|
|
1857
|
-
536: <span class="ruby-keyword kw">end</span></pre>
|
|
1858
|
-
</div>
|
|
1859
|
-
|
|
1860
|
-
</div>
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
</div>
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
<div id="read-equence-ax-method" class="method-detail ">
|
|
1869
|
-
<a name="method-i-readSequenceMax"></a>
|
|
1870
|
-
|
|
1871
|
-
<div class="method-heading">
|
|
1872
|
-
|
|
1873
|
-
<span class="method-name">readSequenceMax</span><span
|
|
1874
|
-
class="method-args">(c, max = 3)</span>
|
|
1875
|
-
<span class="method-click-advice">click to toggle source</span>
|
|
1876
|
-
|
|
1877
|
-
</div>
|
|
1878
|
-
|
|
1879
|
-
<div class="method-description">
|
|
1880
|
-
|
|
1881
|
-
<p>
|
|
1882
|
-
Read a sequence of <em>c</em> characters until a different character is
|
|
1883
|
-
found or <em>max</em> count has been reached.
|
|
1884
|
-
</p>
|
|
1885
1342
|
|
|
1886
1343
|
|
|
1887
1344
|
|
|
1888
1345
|
<div class="method-source-code"
|
|
1889
|
-
id="
|
|
1346
|
+
id="sq-tring-source">
|
|
1890
1347
|
<pre>
|
|
1891
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
545: <span class="ruby-comment cmt"># Return the non matching character.</span>
|
|
1898
|
-
546: <span class="ruby-identifier">returnChar</span>
|
|
1899
|
-
547: <span class="ruby-identifier">i</span>
|
|
1900
|
-
548: <span class="ruby-keyword kw">end</span></pre>
|
|
1348
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 175</span>
|
|
1349
|
+
175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sqString</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1350
|
+
176: <span class="ruby-comment cmt"># Remove first and last character and remove backslashes from quoted</span>
|
|
1351
|
+
177: <span class="ruby-comment cmt"># single quotes.</span>
|
|
1352
|
+
178: [ <span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\'/</span>, <span class="ruby-value str">"'"</span>) ]
|
|
1353
|
+
179: <span class="ruby-keyword kw">end</span></pre>
|
|
1901
1354
|
</div>
|
|
1902
1355
|
|
|
1903
1356
|
</div>
|
|
@@ -1908,13 +1361,13 @@ found or <em>max</em> count has been reached.
|
|
|
1908
1361
|
</div>
|
|
1909
1362
|
|
|
1910
1363
|
|
|
1911
|
-
<div id="
|
|
1912
|
-
<a name="method-i-
|
|
1364
|
+
<div id="title-nd-method" class="method-detail ">
|
|
1365
|
+
<a name="method-i-titleEnd"></a>
|
|
1913
1366
|
|
|
1914
1367
|
<div class="method-heading">
|
|
1915
1368
|
|
|
1916
|
-
<span class="method-name">
|
|
1917
|
-
class="method-args">(
|
|
1369
|
+
<span class="method-name">titleEnd</span><span
|
|
1370
|
+
class="method-args">(type, match)</span>
|
|
1918
1371
|
<span class="method-click-advice">click to toggle source</span>
|
|
1919
1372
|
|
|
1920
1373
|
</div>
|
|
@@ -1926,24 +1379,12 @@ found or <em>max</em> count has been reached.
|
|
|
1926
1379
|
|
|
1927
1380
|
|
|
1928
1381
|
<div class="method-source-code"
|
|
1929
|
-
id="
|
|
1382
|
+
id="title-nd-source">
|
|
1930
1383
|
<pre>
|
|
1931
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
602: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"\\"</span>
|
|
1936
|
-
603: <span class="ruby-comment cmt"># Terminators can be used as regular characters when prefixed by a \.</span>
|
|
1937
|
-
604: <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-identifier">c</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">terminator</span>
|
|
1938
|
-
605: <span class="ruby-comment cmt"># \ followed by non-terminator. Just add both.</span>
|
|
1939
|
-
606: <span class="ruby-identifier">token</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\\"</span>
|
|
1940
|
-
607: <span class="ruby-keyword kw">end</span>
|
|
1941
|
-
608: <span class="ruby-keyword kw">end</span>
|
|
1942
|
-
609: <span class="ruby-identifier">token</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>
|
|
1943
|
-
610: <span class="ruby-keyword kw">end</span>
|
|
1944
|
-
611:
|
|
1945
|
-
612: [ <span class="ruby-value str">'STRING'</span>, <span class="ruby-identifier">token</span> ]
|
|
1946
|
-
613: <span class="ruby-keyword kw">end</span></pre>
|
|
1384
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 121</span>
|
|
1385
|
+
121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">titleEnd</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1386
|
+
122: [ <span class="ruby-node">"TITLE#{match.length - 1}END"</span>, <span class="ruby-identifier">match</span> ]
|
|
1387
|
+
123: <span class="ruby-keyword kw">end</span></pre>
|
|
1947
1388
|
</div>
|
|
1948
1389
|
|
|
1949
1390
|
</div>
|
|
@@ -1954,50 +1395,31 @@ found or <em>max</em> count has been reached.
|
|
|
1954
1395
|
</div>
|
|
1955
1396
|
|
|
1956
1397
|
|
|
1957
|
-
<div id="
|
|
1958
|
-
<a name="method-i-
|
|
1398
|
+
<div id="title-tart-method" class="method-detail ">
|
|
1399
|
+
<a name="method-i-titleStart"></a>
|
|
1959
1400
|
|
|
1960
1401
|
<div class="method-heading">
|
|
1961
1402
|
|
|
1962
|
-
<span class="method-name">
|
|
1963
|
-
class="method-args">(
|
|
1403
|
+
<span class="method-name">titleStart</span><span
|
|
1404
|
+
class="method-args">(type, match)</span>
|
|
1964
1405
|
<span class="method-click-advice">click to toggle source</span>
|
|
1965
1406
|
|
|
1966
1407
|
</div>
|
|
1967
1408
|
|
|
1968
1409
|
<div class="method-description">
|
|
1969
1410
|
|
|
1970
|
-
|
|
1971
|
-
Return one or more characters. <em>n</em> is the number of characters to
|
|
1972
|
-
move back the cursor.
|
|
1973
|
-
</p>
|
|
1411
|
+
|
|
1974
1412
|
|
|
1975
1413
|
|
|
1976
1414
|
|
|
1977
1415
|
<div class="method-source-code"
|
|
1978
|
-
id="
|
|
1416
|
+
id="title-tart-source">
|
|
1979
1417
|
<pre>
|
|
1980
|
-
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
490: <span class="ruby-identifier">n</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
1986
|
-
491: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@pos</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\n\</span>
|
|
1987
|
-
492: <span class="ruby-identifier">crossedNewline</span> = <span class="ruby-keyword kw">true</span>
|
|
1988
|
-
493: <span class="ruby-ivar">@lineNo</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
|
|
1989
|
-
494: <span class="ruby-keyword kw">end</span>
|
|
1990
|
-
495: <span class="ruby-keyword kw">end</span>
|
|
1991
|
-
496: <span class="ruby-ivar">@pos</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">n</span>
|
|
1992
|
-
497: <span class="ruby-keyword kw">end</span>
|
|
1993
|
-
498:
|
|
1994
|
-
499: <span class="ruby-comment cmt"># If we have crossed a newline during rewind, we have to find the start of</span>
|
|
1995
|
-
500: <span class="ruby-comment cmt"># the current line again.</span>
|
|
1996
|
-
501: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">crossedNewline</span>
|
|
1997
|
-
502: <span class="ruby-ivar">@lineStart</span> = <span class="ruby-ivar">@pos</span>
|
|
1998
|
-
503: <span class="ruby-ivar">@lineStart</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@lineStart</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@text</span>[<span class="ruby-ivar">@lineStart</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">\n\</span>
|
|
1999
|
-
504: <span class="ruby-keyword kw">end</span>
|
|
2000
|
-
505: <span class="ruby-keyword kw">end</span></pre>
|
|
1418
|
+
<span class="ruby-comment cmt"># File lib/RichTextScanner.rb, line 116</span>
|
|
1419
|
+
116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">titleStart</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">match</span>)
|
|
1420
|
+
117: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-value">:inline</span>
|
|
1421
|
+
118: [ <span class="ruby-node">"TITLE#{match.length - 1}"</span>, <span class="ruby-identifier">match</span> ]
|
|
1422
|
+
119: <span class="ruby-keyword kw">end</span></pre>
|
|
2001
1423
|
</div>
|
|
2002
1424
|
|
|
2003
1425
|
</div>
|