OUTPUT file.ext PARENT mytemplate.tpl CONTENT_BEGIN [ CONTENT_END ] MARKER markername [ Cras vitae est lorem, nec laoreet justo. Morbi lacus nulla, viverra ut tempor vel, sagittis in dolor. Vestibulum ut dui enim. Proin ligula felis, posuere in adipiscing sit amet, pharetra ut tellus. Integer dignissim tincidunt nibh sed molestie. Sed dignissim mattis lacinia. Etiam dictum nibh eget mauris porta interdum. Pellentesque et lacus et elit sollicitudin faucibus. In luctus fringilla mi, auctor varius ligula dapibus at. ] MARKER markername [ Cras vitae est lorem, nec laoreet justo. Morbi lacus nulla, viverra ut tempor vel, sagittis in dolor. Vestibulum ut dui enim. Proin ligula felis, posuere in adipiscing sit amet, pharetra ut tellus. Integer dignissim tincidunt nibh sed molestie. Sed dignissim mattis lacinia. Etiam dictum nibh eget mauris porta interdum. Pellentesque et lacus et elit sollicitudin faucibus. In luctus fringilla mi, auctor varius ligula dapibus at. ] MARKER markername [ Cras vitae est lorem, nec laoreet justo. Morbi lacus nulla, viverra ut tempor vel, sagittis in dolor. Vestibulum ut dui enim. Proin ligula felis, posuere in adipiscing sit amet, pharetra ut tellus. Integer dignissim tincidunt nibh sed molestie. Sed dignissim mattis lacinia. Etiam dictum nibh eget mauris porta interdum. Pellentesque et lacus et elit sollicitudin faucibus. In luctus fringilla mi, auctor varius ligula dapibus at. ] --------------------------------------------------------- My attempted grammar for the file above: 0 TOKEN = SECTION | COMMAND | WORD 1 SECTION = MARKER_CMD CONTENT_BEGIN_CMD CONTENT CONTENT_END_CMD 2 CONTENT = WORD+ 3 COMMAND = CONTENT_BEGIN_CMD | CONTENT_END_CMD | MARKER_CMD | OUTPUT_CMD | PARENT_CMD 4 CONTENT_BEGIN_CMD = CONTENT_BEGIN 5 CONTENT_END_CMD = CONTENT_END 6 MARKER_CMD = MARKER WORD 7 OUTPUT_CMD = OUTPUT WORD 8 PARENT_CMD = PARENT WORD 9 CONTENT_BEGIN = "CONTENT_BEGIN" 10 CONTENT_END = "CONTENT_END" 11 MARKER = "MARKER" 12 OUTPUT = "OUTPUT" 13 PARENT = "PARENT" 14 WORD =