grammar Bristlecode rule root (tag / text)* end rule text (!tag .)+ end rule tag bold / italic end ############################## # bold ############################## rule bold bold_open ((!bold_close .)+ ) bold_close end rule bold_open '[b]' / '[B]' end rule bold_close '[/b]' / '[/B]' end ############################## # italic ############################## rule italic italic_open ((!italic_close .)+ ) italic_close end rule italic_open '[i]' / '[I]' end rule italic_close '[/i]' / '[/I]' end end