diff --git a/src/core/peg.c b/src/core/peg.c index 9a10b733..a1e4f0d0 100644 --- a/src/core/peg.c +++ b/src/core/peg.c @@ -1419,6 +1419,11 @@ static uint32_t peg_compile1(Builder *b, Janet peg) { emit_bytes(b, RULE_LITERAL, len, str); break; } + case JANET_BUFFER: { + const JanetBuffer *buf = janet_unwrap_buffer(peg); + emit_bytes(b, RULE_LITERAL, buf->count, buf->data); + break; + } case JANET_TABLE: { /* Build grammar table */ JanetTable *new_grammar = janet_table_clone(janet_unwrap_table(peg)); diff --git a/test/suite-peg.janet b/test/suite-peg.janet index 7f7a83d6..2472374b 100644 --- a/test/suite-peg.janet +++ b/test/suite-peg.janet @@ -783,5 +783,11 @@ "abc123,,,," @["" "" "" "" ""]) +# Issue #1549 - allow buffers as peg literals +(test "issue 1549" + ''@"abc123" + "abc123" + @["abc123"]) + (end-suite)