This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/markdown
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 00b3f43499c8c96807573bc2e2048ca95f44670e
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jan 16 02:09:14 2022 +0200

    More work on rules
---
 .../apache/royale/markdown/rules/RulesManager.as   | 244 ++++++++++++++++++++-
 .../royale/markdown/rules/block/BlockQuote.as      |  11 +-
 .../org/apache/royale/markdown/rules/block/Code.as |  10 +-
 .../apache/royale/markdown/rules/block/Deflist.as  |  11 +-
 .../apache/royale/markdown/rules/block/Fences.as   |  11 +-
 .../apache/royale/markdown/rules/block/Footnote.as |  11 +-
 .../apache/royale/markdown/rules/block/Heading.as  |  11 +-
 .../org/apache/royale/markdown/rules/block/Hr.as   |  11 +-
 .../royale/markdown/rules/block/Htmlblock.as       |  11 +-
 .../apache/royale/markdown/rules/block/Lheading.as |  11 +-
 .../org/apache/royale/markdown/rules/block/List.as |  11 +-
 .../royale/markdown/rules/block/Paragraph.as       |  11 +-
 .../apache/royale/markdown/rules/block/Table.as    |  11 +-
 .../org/apache/royale/markdown/rules/core/Abbr.as  |  10 +-
 .../org/apache/royale/markdown/rules/core/Abbr2.as |  11 +-
 .../org/apache/royale/markdown/rules/core/Block.as |  10 +-
 .../royale/markdown/rules/core/Footnote_tail.as    |  11 +-
 .../apache/royale/markdown/rules/core/Inline.as    |  12 +-
 .../royale/markdown/rules/core/References.as       |  11 +-
 .../royale/markdown/rules/core/Replacements.as     |  11 +-
 .../royale/markdown/rules/core/Smartquotes.as      |  11 +-
 .../royale/markdown/rules/inline/Autolink.as       |  11 +-
 .../royale/markdown/rules/inline/Backticks.as      |  11 +-
 .../org/apache/royale/markdown/rules/inline/Del.as |  11 +-
 .../royale/markdown/rules/inline/Emphasis.as       |  11 +-
 .../apache/royale/markdown/rules/inline/Entity.as  |  11 +-
 .../apache/royale/markdown/rules/inline/Escape.as  |  11 +-
 .../royale/markdown/rules/inline/FootnoteRef.as    |  11 +-
 .../apache/royale/markdown/rules/inline/Htmltag.as |  11 +-
 .../royale/markdown/rules/inline/InlineFootnote.as |  11 +-
 .../org/apache/royale/markdown/rules/inline/Ins.as |  11 +-
 .../apache/royale/markdown/rules/inline/Links.as   |  11 +-
 .../apache/royale/markdown/rules/inline/Mark.as    |  11 +-
 .../apache/royale/markdown/rules/inline/Newline.as |  11 +-
 .../org/apache/royale/markdown/rules/inline/Sub.as |  11 +-
 .../org/apache/royale/markdown/rules/inline/Sup.as |  11 +-
 .../apache/royale/markdown/rules/inline/Text.as    |  11 +-
 37 files changed, 594 insertions(+), 44 deletions(-)

diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/RulesManager.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/RulesManager.as
index 4432369..55641ea 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/RulesManager.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/RulesManager.as
@@ -18,6 +18,8 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.markdown
 {
+       import org.apache.royale.utils.array.arraysMatch;
+
        public class RulesManager
        {
                /**
@@ -33,6 +35,14 @@ package org.apache.royale.markdown
                                
'heading','lheading','htmlblock','table','deflist','paragraph'];
                        var inlineRules:Array = 
['text','newline','escape','backticks','del','ins','mark','emphasis',
                                
'sub','sup','links','footnote_inline','footnote_ref','autolink','htmltag','entity'];
+                       
+                       if(!checkCore(coreRules) || !checkBlock(blockRules) || 
!checkInline(inlineRules))
+                       {
+                               enabledCoreRules = coreRules.slice();
+                               enabledBlockRules = blockRules.slice();
+                               enabledInlineRules = inlineRules.slice();
+                               initialized = false;
+                       }
 
                }
 
@@ -50,6 +60,14 @@ package org.apache.royale.markdown
                        var inlineRules:Array = 
['text','newline','escape','backticks','del','emphasis',
                        'links','footnote_ref','autolink','htmltag','entity'];
 
+                       if(!checkCore(coreRules) || !checkBlock(blockRules) || 
!checkInline(inlineRules))
+                       {
+                               enabledCoreRules = coreRules.slice();
+                               enabledBlockRules = blockRules.slice();
+                               enabledInlineRules = inlineRules.slice();
+                               initialized = false;
+                       }
+
                }
                /**
                 * Sets rules to commonmark compatibility
@@ -61,15 +79,60 @@ package org.apache.royale.markdown
                        var coreRules:Array = 
['block','references','inline','abbr2'];
                        var blockRules:Array = 
['code','fences','blockquote','hr','list','heading','htmlblock','paragraph'];
                        var inlineRules:Array = 
['text','newline','escape','backticks','emphasis','links','autolink','htmltag','entity'];
+
+                       if(!checkCore(coreRules) || !checkBlock(blockRules) || 
!checkInline(inlineRules))
+                       {
+                               enabledCoreRules = coreRules.slice();
+                               enabledBlockRules = blockRules.slice();
+                               enabledInlineRules = inlineRules.slice();
+                               initialized = false;
+                       }
+
                }
                
+               private static function checkCore(toCheck:Array):Boolean
+               {
+                       return arraysMatch(toCheck,enabledCoreRules);
+               }
+               private static function checkBlock(toCheck:Array):Boolean
+               {
+                       return arraysMatch(toCheck,enabledBlockRules);
+               }
+               private static function checkInline(toCheck:Array):Boolean
+               {
+                       return arraysMatch(toCheck,enabledInlineRules);
+               }
+
+               public static function disableRule(name:String):void
+               {
+                       if(enabledCoreRules.indexOf(name) != -1)
+                       {
+                               
enabledCoreRules.splice(enabledCoreRules.indexOf(name),1);
+                               initialized = false;
+                       }
+                       else if(enabledBlockRules.indexOf(name) != -1)
+                       {
+                               
enabledBlockRules.splice(enabledBlockRules.indexOf(name),1);
+                               initialized = false;
+                       }
+                       else if(enabledInlineRules.indexOf(name) != -1)
+                       {
+                               
enabledInlineRules.splice(enabledInlineRules.indexOf(name),1);
+                               initialized = false;
+                       }
+               }
+
                private static var enabledCoreRules:Array;
                private static var enabledBlockRules:Array;
                private static var enabledInlineRules:Array;
 
-               private static var coreRules:Array;
-               private static var blockRules:Array;
-               private static var inlineRules:Array;
+               private static var coreRules:Vector.<IRule>;
+               private static var blockRules:Vector.<IRule>;
+               private static var inlineRules:Vector.<IRule>;
+
+               private static var paragraphRules:Vector.<IRule>;
+               private static var blockquoteRules:Vector.<IRule>;
+               private static var listRules:Vector.<IRule>;
                
 /**
  * 
@@ -96,7 +159,7 @@ Block
   [ 'table',      table,      [ 'paragraph' ] ], defaults
   [ 'deflist',    deflist,    [ 'paragraph' ] ],
   [ 'paragraph',  paragraph ] commonmark
-
+//TODO figure out a cleaner way to get the sub-rules
 Inline
   [ 'text',            text ], commonmark
   [ 'newline',         newline ], commonmark
@@ -122,18 +185,183 @@ Inline
                private static function initialize():void
                {
                        initialized = true;
+                       coreRules = new Vector.<IRule>();
+                       for each(var rule:String in enabledCoreRules)
+                       {
+                               switch(rule)
+                               {
+                                       case 'block':
+                                               coreRules.push(Block.get());
+                                               break;
+                                       case 'abbr':
+                                               coreRules.push(Abbr.get());
+                                               break;
+                                       case 'references':
+                                               
coreRules.push(References.get());
+                                               break;
+                                       case 'inline':
+                                               coreRules.push(Inline.get());
+                                               break;
+                                       case 'footnote_tail':
+                                               
coreRules.push(Footnote_tail.get());
+                                               break;
+                                       case 'abbr2':
+                                               coreRules.push(Abbr2.get());
+                                               break;
+                                       case 'replacements':
+                                               
coreRules.push(Replacements.get());
+                                               break;
+                                       case 'smartquotes':
+                                               
coreRules.push(Smartquotes.get());
+                                               break;
+                                       default:
+                                               break;
+                               }
+                       }
+
+                       blockRules = new Vector.<IRule>();
+                       paragraphRules = new Vector.<IRule>();
+                       blockquoteRules = new Vector.<IRule>();
+                       listRules = new Vector.<IRule>();
+
+                       for each(rule in enabledBlockRules)
+                       {
+                               switch(rule)
+                               {
+
+                                       case 'code':
+                                               blockRules.push(Code.get());
+                                               break;
+                                       case 'fences':
+                                               blockRules.push(Fences.get());
+                                               
paragraphRules.push(Fences.get());
+                                               
blockquoteRules.push(Fences.get());
+                                               listRules.push(Fences.get());
+                                               break;
+                                       case 'blockquote':
+                                               
blockRules.push(BlockQuote.get());
+                                               
paragraphRules.push(BlockQuote.get());
+                                               
blockquoteRules.push(BlockQuote.get());
+                                               
listRules.push(BlockQuote.get());
+                                               break;
+                                       case 'hr':
+                                               blockRules.push(Hr.get());
+                                               paragraphRules.push(Hr.get());
+                                               blockquoteRules.push(Hr.get());
+                                               listRules.push(Hr.get());
+                                               break;
+                                       case 'list':
+                                               blockRules.push(List.get());
+                                               paragraphRules.push(List.get());
+                                               
blockquoteRules.push(List.get());
+                                               break;
+                                       case 'footnote':
+                                               blockRules.push(Footnote.get());
+                                               
paragraphRules.push(Footnote.get());
+                                               break;
+                                       case 'heading':
+                                               blockRules.push(Heading.get());
+                                               
paragraphRules.push(Heading.get());
+                                               
blockquoteRules.push(Heading.get());
+                                               break;
+                                       case 'lheading':
+                                               blockRules.push(Lheading.get());
+                                               break;
+                                       case 'htmlblock':
+                                               
blockRules.push(Htmlblock.get());
+                                               
paragraphRules.push(Htmlblock.get());
+                                               
blockquoteRules.push(Htmlblock.get());
+                                               break;
+                                       case 'table':
+                                               blockRules.push(Table.get());
+                                               
paragraphRules.push(Table.get());
+                                               break;
+                                       case 'deflist':
+                                               blockRules.push(Deflist.get());
+                                               
paragraphRules.push(Deflist.get());
+                                               break;
+                                       case 'paragraph':
+                                               
blockRules.push(Paragraph.get());
+                                               break;
+                                       default:
+                                               break;
+
+                               }
+                       }
+
+                       inlineRules = new Vector.<IRule>();
+
+                       for each(rule in enabledBlockRules)
+                       {
+                               switch(rule)
+                               {
+                                       case 'text':
+                                               inlineRules.push(Text.get());
+                                               break;
+                                       case 'newline':
+                                               inlineRules.push(Newline.get());
+                                               break;
+                                       case 'escape':
+                                               inlineRules.push(Escape.get());
+                                               break;
+                                       case 'backticks':
+                                               
inlineRules.push(Backticks.get());
+                                               break;
+                                       case 'del':
+                                               inlineRules.push(Del.get());
+                                               break;
+                                       case 'ins':
+                                               inlineRules.push(Ins.get());
+                                               break;
+                                       case 'mark':
+                                               inlineRules.push(Mark.get());
+                                               break;
+                                       case 'emphasis':
+                                               
inlineRules.push(Emphasis.get());
+                                               break;
+                                       case 'sub':
+                                               inlineRules.push(Sub.get());
+                                               break;
+                                       case 'sup':
+                                               inlineRules.push(Sup.get());
+                                               break;
+                                       case 'links':
+                                               inlineRules.push(Links.get());
+                                               break;
+                                       case 'footnote_inline':
+                                               
inlineRules.push(InlineFootnote.get());
+                                               break;
+                                       case 'footnote_ref':
+                                               
inlineRules.push(FootnoteRef.get());
+                                               break;
+                                       case 'autolink':
+                                               
inlineRules.push(Autolink.get());
+                                               break;
+                                       case 'htmltag':
+                                               inlineRules.push(Htmltag.get());
+                                               break;
+                                       case 'entity':
+                                               inlineRules.push(Entity.get());
+                                               break;
+                                       default:
+                                               break;
+
+                               }
+                       }
                }
-               private static function getCoreRules():Array
+               private static function getCoreRules():Vector.<IRule>
                {
-                       //TODO build the rules from the settings
-                       return null;
+                       if(!coreRules)
+                               initialize();
+
+                       return coreRules;
                }
                public static function runCoreRules(state:CoreState):void
                {
                        if(!initialized)
                                initialize();
                        
-                       var rules:Array = getCoreRules();
+                       var rules:Vector.<IRule> = getCoreRules();
                        for each(var rule:IRule in rules)
                        {
                                rule.parse(state);
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/BlockQuote.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/BlockQuote.as
index 6322385..c497158 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/BlockQuote.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/BlockQuote.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class BlockQuote extends Rule
        {
-               public function BlockQuote()
+               private function BlockQuote()
                {
                        
                }
 
+               private static var _instance:BlockQuote;
+               public static function get():BlockQuote
+               {
+                       if(!_instance)
+                               _instance = new BlockQuote();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Code.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Code.as
index 8571796..eed649b 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Code.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Code.as
@@ -20,10 +20,18 @@ package org.apache.royale.markdown
 {
        public class Code extends Rule
        {
-               public function Code()
+               private function Code()
                {
                        
                }
+               private static var _instance:Code;
+               public static function get():Code
+               {
+                       if(!_instance)
+                               _instance = new Code();
+                       
+                       return _instance;
+               }
 
                /**
                 * parses the rule
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Deflist.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Deflist.as
index f4feeef..8482377 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Deflist.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Deflist.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Deflist extends Rule
        {
-               public function Deflist()
+               private function Deflist()
                {
                        
                }
 
+               private static var _instance:Deflist;
+               public static function get():Deflist
+               {
+                       if(!_instance)
+                               _instance = new Deflist();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Fences.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Fences.as
index 1804b54..efa7d4b 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Fences.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Fences.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Fences extends Rule
        {
-               public function Fences()
+               private function Fences()
                {
                        
                }
 
+               private static var _instance:Fences;
+               public static function get():Fences
+               {
+                       if(!_instance)
+                               _instance = new Fences();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Footnote.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Footnote.as
index 902f39f..1535cbc 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Footnote.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Footnote.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Footnote extends Rule
        {
-               public function Footnote()
+               private function Footnote()
                {
                        
                }
 
+               private static var _instance:Footnote;
+               public static function get():Footnote
+               {
+                       if(!_instance)
+                               _instance = new Footnote();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Heading.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Heading.as
index 1e0b149..82b5778 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Heading.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Heading.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Heading extends Rule
        {
-               public function Heading()
+               private function Heading()
                {
                        
                }
 
+               private static var _instance:Heading;
+               public static function get():Heading
+               {
+                       if(!_instance)
+                               _instance = new Heading();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Hr.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Hr.as
index c4d5e7f..d0abf96 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Hr.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Hr.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Hr extends Rule
        {
-               public function Hr()
+               private function Hr()
                {
                        
                }
 
+               private static var _instance:Hr;
+               public static function get():Hr
+               {
+                       if(!_instance)
+                               _instance = new Hr();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Htmlblock.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Htmlblock.as
index f1e3e83..f943e55 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Htmlblock.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Htmlblock.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Htmlblock extends Rule
        {
-               public function Htmlblock()
+               private function Htmlblock()
                {
                        
                }
 
+               private static var _instance:Htmlblock;
+               public static function get():Htmlblock
+               {
+                       if(!_instance)
+                               _instance = new Htmlblock();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Lheading.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Lheading.as
index 01a350d..9035060 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Lheading.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Lheading.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Lheading extends Rule
        {
-               public function Lheading()
+               private function Lheading()
                {
                        
                }
 
+               private static var _instance:Lheading;
+               public static function get():Lheading
+               {
+                       if(!_instance)
+                               _instance = new Lheading();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/List.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/List.as
index b8124eb..2c8a09d 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/List.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/List.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class List extends Rule
        {
-               public function List()
+               private function List()
                {
                        
                }
 
+               private static var _instance:List;
+               public static function get():List
+               {
+                       if(!_instance)
+                               _instance = new List();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Paragraph.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Paragraph.as
index 8d11241..9c7da82 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Paragraph.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Paragraph.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Paragraph extends Rule
        {
-               public function Paragraph()
+               private function Paragraph()
                {
                        
                }
 
+               private static var _instance:Paragraph;
+               public static function get():Paragraph
+               {
+                       if(!_instance)
+                               _instance = new Paragraph();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Table.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Table.as
index 44286aa..c8034e7 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Table.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/block/Table.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Table extends Rule
        {
-               public function Table()
+               private function Table()
                {
                        
                }
 
+               private static var _instance:Table;
+               public static function get():Table
+               {
+                       if(!_instance)
+                               _instance = new Table();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr.as
index f8ab6c2..dd20d73 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr.as
@@ -20,10 +20,18 @@ package org.apache.royale.markdown
 {
        public class Abbr extends Rule
        {
-               public function Abbr()
+               private function Abbr()
                {
                        
                }
+               private static var _instance:Abbr;
+               public static function get():Abbr
+               {
+                       if(!_instance)
+                               _instance = new Abbr();
+                       
+                       return _instance;
+               }
 
                /**
                 * parses the rule
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr2.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr2.as
index a4ed27c..5ecdbe0 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr2.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Abbr2.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Abbr2 extends Rule
        {
-               public function Abbr2()
+               private function Abbr2()
                {
                        
                }
 
+               private static var _instance:Abbr2;
+               public static function get():Abbr2
+               {
+                       if(!_instance)
+                               _instance = new Abbr2();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Block.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Block.as
index 6758001..24fcbec 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Block.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Block.as
@@ -20,10 +20,18 @@ package org.apache.royale.markdown
 {
        public class Block extends Rule
        {
-               public function Block()
+               private function Block()
                {
                        
                }
+               private static var _instance:Block;
+               public static function get():Block
+               {
+                       if(!_instance)
+                               _instance = new Block();
+                       
+                       return _instance;
+               }
 
                /**
                 * parses the rule
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Footnote_tail.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Footnote_tail.as
index b4740b4..a5d9aee 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Footnote_tail.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Footnote_tail.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Footnote_tail extends Rule
        {
-               public function Footnote_tail()
+               private function Footnote_tail()
                {
                        
                }
 
+               private static var _instance:Footnote_tail;
+               public static function get():Footnote_tail
+               {
+                       if(!_instance)
+                               _instance = new Footnote_tail();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Inline.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Inline.as
index 95d0461..d08fe95 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Inline.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Inline.as
@@ -20,11 +20,21 @@ package org.apache.royale.markdown
 {
        public class Inline extends Rule
        {
-               public function Inline()
+               private function Inline()
                {
                        
                }
 
+               private static var _instance:Inline;
+               public static function get():Inline
+               {
+                       if(!_instance)
+                               _instance = new Inline();
+                       
+                       return _instance;
+               }
+
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/References.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/References.as
index 87dc3bf..e957ac4 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/References.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/References.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class References extends Rule
        {
-               public function References()
+               private function References()
                {
                        
                }
 
+               private static var _instance:References;
+               public static function get():References
+               {
+                       if(!_instance)
+                               _instance = new References();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Replacements.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Replacements.as
index d30c708..a295fd6 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Replacements.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Replacements.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Replacements extends Rule
        {
-               public function Replacements()
+               private function Replacements()
                {
                        
                }
 
+               private static var _instance:Replacements;
+               public static function get():Replacements
+               {
+                       if(!_instance)
+                               _instance = new Replacements();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Smartquotes.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Smartquotes.as
index 8516405..aff0796 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Smartquotes.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/core/Smartquotes.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Smartquotes extends Rule
        {
-               public function Smartquotes()
+               private function Smartquotes()
                {
                        
                }
 
+               private static var _instance:Smartquotes;
+               public static function get():Smartquotes
+               {
+                       if(!_instance)
+                               _instance = new Smartquotes();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Autolink.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Autolink.as
index 77a8089..b2853d8 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Autolink.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Autolink.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Autolink extends Rule
        {
-               public function Autolink()
+               private function Autolink()
                {
                        
                }
 
+               private static var _instance:Autolink;
+               public static function get():Autolink
+               {
+                       if(!_instance)
+                               _instance = new Autolink();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Backticks.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Backticks.as
index 4fc09f8..83615e7 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Backticks.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Backticks.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Backticks extends Rule
        {
-               public function Backticks()
+               private function Backticks()
                {
                        
                }
 
+               private static var _instance:Backticks;
+               public static function get():Backticks
+               {
+                       if(!_instance)
+                               _instance = new Backticks();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Del.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Del.as
index 4805f1f..5af84d0 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Del.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Del.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Del extends Rule
        {
-               public function Del()
+               private function Del()
                {
                        
                }
 
+               private static var _instance:Del;
+               public static function get():Del
+               {
+                       if(!_instance)
+                               _instance = new Del();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Emphasis.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Emphasis.as
index f5d79de..5fba8e1 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Emphasis.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Emphasis.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Emphasis extends Rule
        {
-               public function Emphasis()
+               private function Emphasis()
                {
                        
                }
 
+               private static var _instance:Emphasis;
+               public static function get():Emphasis
+               {
+                       if(!_instance)
+                               _instance = new Emphasis();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Entity.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Entity.as
index 185dcfe..1908a8b 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Entity.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Entity.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Entity extends Rule
        {
-               public function Entity()
+               private function Entity()
                {
                        
                }
 
+               private static var _instance:Entity;
+               public static function get():Entity
+               {
+                       if(!_instance)
+                               _instance = new Entity();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Escape.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Escape.as
index 8584db5..5071cab 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Escape.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Escape.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Escape extends Rule
        {
-               public function Escape()
+               private function Escape()
                {
                        
                }
 
+               private static var _instance:Escape;
+               public static function get():Escape
+               {
+                       if(!_instance)
+                               _instance = new Escape();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/FootnoteRef.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/FootnoteRef.as
index b3ecef1..04b9a3d 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/FootnoteRef.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/FootnoteRef.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class FootnoteRef extends Rule
        {
-               public function FootnoteRef()
+               private function FootnoteRef()
                {
                        
                }
 
+               private static var _instance:FootnoteRef;
+               public static function get():FootnoteRef
+               {
+                       if(!_instance)
+                               _instance = new FootnoteRef();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Htmltag.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Htmltag.as
index d4415a1..73a9699 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Htmltag.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Htmltag.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Htmltag extends Rule
        {
-               public function Htmltag()
+               private function Htmltag()
                {
                        
                }
 
+               private static var _instance:Htmltag;
+               public static function get():Htmltag
+               {
+                       if(!_instance)
+                               _instance = new Htmltag();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/InlineFootnote.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/InlineFootnote.as
index e5f3716..28cc84b 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/InlineFootnote.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/InlineFootnote.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class InlineFootnote extends Rule
        {
-               public function InlineFootnote()
+               private function InlineFootnote()
                {
                        
                }
 
+               private static var _instance:InlineFootnote;
+               public static function get():InlineFootnote
+               {
+                       if(!_instance)
+                               _instance = new InlineFootnote();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Ins.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Ins.as
index 9e01f82..0e783c2 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Ins.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Ins.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Ins extends Rule
        {
-               public function Ins()
+               private function Ins()
                {
                        
                }
 
+               private static var _instance:Ins;
+               public static function get():Ins
+               {
+                       if(!_instance)
+                               _instance = new Ins();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Links.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Links.as
index 1d734b4..d876ab6 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Links.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Links.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Links extends Rule
        {
-               public function Links()
+               private function Links()
                {
                        
                }
 
+               private static var _instance:Links;
+               public static function get():Links
+               {
+                       if(!_instance)
+                               _instance = new Links();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Mark.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Mark.as
index 811062e..27a856b 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Mark.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Mark.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Mark extends Rule
        {
-               public function Mark()
+               private function Mark()
                {
                        
                }
 
+               private static var _instance:Mark;
+               public static function get():Mark
+               {
+                       if(!_instance)
+                               _instance = new Mark();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Newline.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Newline.as
index 285b61e..7216084 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Newline.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Newline.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Newline extends Rule
        {
-               public function Newline()
+               private function Newline()
                {
                        
                }
 
+               private static var _instance:Newline;
+               public static function get():Newline
+               {
+                       if(!_instance)
+                               _instance = new Newline();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sub.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sub.as
index c3998ca..13c919a 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sub.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sub.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Sub extends Rule
        {
-               public function Sub()
+               private function Sub()
                {
                        
                }
 
+               private static var _instance:Sub;
+               public static function get():Sub
+               {
+                       if(!_instance)
+                               _instance = new Sub();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sup.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sup.as
index 076dcb0..a5e1ea7 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sup.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Sup.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Sup extends Rule
        {
-               public function Sup()
+               private function Sup()
                {
                        
                }
 
+               private static var _instance:Sup;
+               public static function get():Sup
+               {
+                       if(!_instance)
+                               _instance = new Sup();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0
diff --git 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Text.as
 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Text.as
index 33a1672..9f9c50f 100644
--- 
a/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Text.as
+++ 
b/frameworks/projects/Markdown/src/main/royale/org/apache/royale/markdown/rules/inline/Text.as
@@ -20,11 +20,20 @@ package org.apache.royale.markdown
 {
        public class Text extends Rule
        {
-               public function Text()
+               private function Text()
                {
                        
                }
 
+               private static var _instance:Text;
+               public static function get():Text
+               {
+                       if(!_instance)
+                               _instance = new Text();
+                       
+                       return _instance;
+               }
+
                /**
                 * parses the rule
                 * @langversion 3.0

Reply via email to