Как я могу заставить Парслета сказать персонажу, который не удался?

У меня есть следующее в Parslet.

'] at line 1 char 27.
|        |- Expected "\n", but got "\\" at line 1 char 27.
|        `- Expected "\r\n", but got "\\n" at line 1 char 27.

Я немного сбит с толку, так как в исходной строке нет двух косых черт. Чтобы помочь мне отладить, есть ли способ вывести конкретный символ и, желательно, порядковый номер? Или я должен вернуться к исходной строке?

1 ответ

Решение

Похоже, что вы пытаетесь обработать конец строки как "\n" или "\r\n", но ваша входная строка буквально содержит '\' и литерал 'n', что означает, что экранирование в вашей входной строке не правильно,

Это, вероятно, использование "вместо"

например.

irb(main):001:0> "\\n".length
=> 2
irb(main):002:0> "\n".length
=> 1
irb(main):003:0> '\n'.length
=> 2
Другие вопросы по тегам