While playing around with the bounding characters for the #` form, I
encountered an unexpected feature, which may or may not be a bug. If
the left bounding character (e.g. the { in #`{ occurs unbalanced in
the commented text, the compiler apparently treats it as code,
searches for the right bounder, and generates an error if it can't
find one. e.g.
1 #! /home/guru/bin/raku
2
3 # comment_test
4
5 # Input
6 # Purpose of program - test multi-line comments
7
8 #`(
9 put " () fails";
10 )
11
12 #` {
13 put "\{ fails";
14 }
15
16 put "Done";
17
18 # End comment_test Last changed: 2020-12-22 19:40:07
produces
===SORRY!=== Error while compiling /home/guru/bin/comment_test
Unexpected closing bracket
at /home/guru/bin/comment_test:14
------> <BOL>⏏}
Removing the escape \ on line 13 generates a different but related error.
Is this a limitation that should be mentioned in the description of
the form, or the compiler mistakienly working on something it's just
been told to ignore?