mirror of
https://github.com/boostorg/quickbook.git
synced 2026-01-23 05:42:30 +00:00
We're currently using the spirit escaped character parser. This is a strict C parser and causes parse errors for code that we probably should accept, such as any hexadecimal encoded characters with a value greater than the maximum value of the current platform's 'char'. This is \x7F on some platforms so it rejects '\x80' upwards. As well as rejecting characters that might be valid, it also means that quickbook will act differently on different platforms. In python strings, '\xaaa' is equivalent to '\xaa' + 'a', but the spirit parser interprets this as a character with value '0xaaa'. So we probably should accept these. I also think we should be liberal about what we accept. IMO it isn't our job to enforce correct C++/python, just to create a reasonable rendering of our input. So rather than write a parser which understands the various types of escapes, I just wrote one that ignores any character following a backslash. Refs #2860. [SVN r51949]
22 lines
246 B
Plaintext
22 lines
246 B
Plaintext
[article Code Block 3]
|
|
|
|
[section Python code block]
|
|
|
|
[python]
|
|
``
|
|
print "\xfabln\xeck"
|
|
``
|
|
|
|
[endsect]
|
|
|
|
[section C++ code block]
|
|
|
|
This isn't valid C++ but I think we should accept it;
|
|
|
|
[cpp]
|
|
``
|
|
std::cout<<"\xfabln\xeck"<<"\n";
|
|
``
|
|
|
|
[endsect]
|