@@ -439,6 +439,10 @@ module.exports = grammar(add_inline_rules({
439439// This is by far the most ugly part of this code and should be cleaned up.
440440function add_inline_rules ( grammar ) {
441441 let conflicts = [ ] ;
442+ function add_conflict ( rules ) {
443+ console . log ( "Adding conflict" , rules ) ;
444+ conflicts . push ( rules ) ;
445+ }
442446 for ( let link of [ true , false ] ) {
443447 let suffix_link = link ? "" : "_no_link" ;
444448 for ( let delimiter of [ false , "star" , "underscore" , "tilde" ] ) {
@@ -467,15 +471,15 @@ function add_inline_rules(grammar) {
467471 } ;
468472 grammar . rules [ "_inline" + suffix ] = $ => repeat1 ( $ [ "_inline_element" + suffix ] ) ;
469473 if ( delimiter !== "star" ) {
470- conflicts . push ( [ '_emphasis_star' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
471- conflicts . push ( [ '_emphasis_star' + suffix_link , '_strong_emphasis_star' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
474+ add_conflict ( [ '_emphasis_star' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
475+ add_conflict ( [ '_emphasis_star' + suffix_link , '_strong_emphasis_star' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
472476 }
473- if ( delimiter == 'star' || delimiter == 'underscore' ) {
474- conflicts . push ( [ '_strong_emphasis_' + delimiter + suffix_link , '_inline_element_no_' + delimiter ] ) ;
477+ if ( ( delimiter == 'star' || delimiter == 'underscore' ) && ( suffix_link !== '_no_link' ) ) {
478+ add_conflict ( [ '_strong_emphasis_' + delimiter + suffix_link , '_inline_element_no_' + delimiter ] ) ;
475479 }
476480 if ( delimiter !== "underscore" ) {
477- conflicts . push ( [ '_emphasis_underscore' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
478- conflicts . push ( [ '_emphasis_underscore' + suffix_link , '_strong_emphasis_underscore' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
481+ add_conflict ( [ '_emphasis_underscore' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
482+ add_conflict ( [ '_emphasis_underscore' + suffix_link , '_strong_emphasis_underscore' + suffix_link , '_inline_element' + suffix_delimiter + suffix_link ] ) ;
479483 }
480484 }
481485
@@ -498,5 +502,6 @@ function add_inline_rules(grammar) {
498502 return cs ;
499503 }
500504
505+
501506 return grammar ;
502507}
0 commit comments