Hi,
I have a small embedded mini-language that allows me to include HTML and CSS files inline inside the code.
The layout is something like this:
------ 8< ----- @@ filename.html <div>....</div>
@@ styles.css ... css stuff ...
@@ other.html ... more html...
------ 8< -----
I'm using something like this:
{ name = 'embedded.html'; begin = '^(@@)\s+(.+[.]html?)\s*$'; end = '^@@'; captures = { 1 = { name = 'embedded.marker'; }; 2 = { name = 'embedded.filename'; }; }; patterns = ( { include = 'text.html'; } ); }, { name = 'embedded.css'; begin = '^(@@)\s+(.+[.]css)\s*$'; end = '^@@'; captures = { 1 = { name = 'embedded.marker'; }; 2 = { name = 'embedded.filename'; }; }; patterns = ( { include = 'text.css'; } ); },
But the problem is that the "end" rule captures the @@ pair to it cannot be matched by the next block "begin".
If I add an extra @@ just before the second file, it all works fine.
Is there any trick to get around this?
Thanks,