Changeset 24


Ignore:
Timestamp:
Jun 3, 2014, 2:30:37 AM (7 years ago)
Author:
vadim.godunko
Message:

Add passing of markup text, markup offset and text offset into
constructor of block parser.

Location:
trunk/forge/source/wiki
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/forge/source/wiki/forge-wiki-block_parsers.ads

    r20 r24  
    4646   pragma Preelaborate;
    4747
    48    type Constructor_Parameters is null record;
     48   type Constructor_Parameters is record
     49      Markup        : League.Strings.Universal_String;
     50      Markup_Offset : Natural;
     51      Text_Offset   : Positive;
     52   end record;
    4953
    5054   type Abstract_Block_Parser is abstract tagged limited null record;
  • trunk/forge/source/wiki/forge-wiki-parsers.adb

    r23 r24  
    5959
    6060   function Create_Block_Parser
    61     (Tag : Ada.Tags.Tag) return not null Block_Parser_Access;
     61    (Tag           : Ada.Tags.Tag;
     62     Markup        : League.Strings.Universal_String;
     63     Markup_Offset : Natural;
     64     Text_Offset   : Positive) return not null Block_Parser_Access;
    6265   --  Constructor to create block parser.
    6366
     
    8689
    8790   function Create_Block_Parser
    88     (Tag : Ada.Tags.Tag) return not null Block_Parser_Access
     91    (Tag           : Ada.Tags.Tag;
     92     Markup        : League.Strings.Universal_String;
     93     Markup_Offset : Natural;
     94     Text_Offset   : Positive) return not null Block_Parser_Access
    8995   is
    9096      function Create is
     
    94100              Forge.Wiki.Block_Parsers.Create);
    95101
    96       Parameters : aliased Forge.Wiki.Block_Parsers.Constructor_Parameters;
     102      Parameters : aliased Forge.Wiki.Block_Parsers.Constructor_Parameters
     103        := (Markup, Markup_Offset, Text_Offset);
    97104
    98105   begin
     
    186193
    187194               if Self.Block_State = null then
    188                   Self.Block_State := Create_Block_Parser (Item.Parser_Tag);
     195                  Self.Block_State :=
     196                    Create_Block_Parser
     197                     (Item.Parser_Tag,
     198                      (if Item.Markup_Group = 0
     199                         then League.Strings.Empty_Universal_String
     200                         else Match.Capture (Item.Markup_Group)),
     201                      (if Item.Markup_Group = 0
     202                         then 0 else Match.First_Index (Item.Markup_Group)),
     203                      Offset);
    189204                  Self.Block_State.Start_Block;
    190205                  Self.Block_State.Line (Lines (Line).Tail_From (Offset));
Note: See TracChangeset for help on using the changeset viewer.