diff --git a/lib/libesp32/berry/src/be_lexer.c b/lib/libesp32/berry/src/be_lexer.c index 7b3f05726..904ab0769 100644 --- a/lib/libesp32/berry/src/be_lexer.c +++ b/lib/libesp32/berry/src/be_lexer.c @@ -394,7 +394,9 @@ static int skip_delimiter(blexer *lexer) { int c = lgetc(lexer); int delimeter_present = 0; while (1) { - if (c == '\r' || c == '\n') { + if (c == '#') { + skip_comment(lexer); + } else if (c == '\r' || c == '\n') { skip_newline(lexer); } else if (c == ' ' || c == '\t' || c == '\f' || c == '\v') { next(lexer); diff --git a/lib/libesp32/berry/tests/string.be b/lib/libesp32/berry/tests/string.be index aeb0d0ad5..e7d91e8dd 100644 --- a/lib/libesp32/berry/tests/string.be +++ b/lib/libesp32/berry/tests/string.be @@ -88,3 +88,25 @@ assert(string.replace("hellollo", "aa", "xx") == "hellollo") assert(string.replace("hello", "ll", "") == "heo") assert(string.replace("hello", "", "xx") == "hello") assert(string.replace("hello", "", "") == "hello") + +# multi-line strings +var s = "a" "b""c" +assert(s == 'abc') + +s = 'a'"b"'''c' +assert(s == 'abc') + +s = "a" +'b' + "" + "c" +assert(s == 'abc') + +s = "a" #- b -# "b" #--# "c" +assert(s == 'abc') + +s = "a"# + # "z" + "b" # zz + "c" +assert(s == 'abc')