38 lines
1 KiB
C
38 lines
1 KiB
C
|
|
#ifndef STRINGLITERALRULES_H
|
|||
|
|
#define STRINGLITERALRULES_H
|
|||
|
|
|
|||
|
|
#include "StringEscapeRule.h"
|
|||
|
|
#include <vector>
|
|||
|
|
|
|||
|
|
class QTextStream;
|
|||
|
|
|
|||
|
|
class StringLiteralRules {
|
|||
|
|
public:
|
|||
|
|
/** What should be put in front of the string to make it a string literal
|
|||
|
|
*
|
|||
|
|
* For instance a plain char string in C this would just be a double quote "
|
|||
|
|
* But for a C++11 utf8 string literal it would be u8"
|
|||
|
|
*/
|
|||
|
|
QString m_stringStart;
|
|||
|
|
/** Similar to stringStart
|
|||
|
|
*/
|
|||
|
|
QString m_stringEnd;
|
|||
|
|
|
|||
|
|
/** If true the assumption is that the newlines
|
|||
|
|
* in the source string are not escaped so no line breaking is done.
|
|||
|
|
* However we should still get a multiline string if the source was.
|
|||
|
|
*
|
|||
|
|
* When false the assumption is that we can split the string using stringEnd,
|
|||
|
|
* stringStart and the concatOperator. There is a preference to split on whitespace.
|
|||
|
|
*/
|
|||
|
|
bool m_supportsMultiLine;
|
|||
|
|
QString m_concatOperator;
|
|||
|
|
|
|||
|
|
std::vector<StringEscapeRule> m_escapeRules;
|
|||
|
|
|
|||
|
|
void OutputString(QTextStream &stream, QString string_literal);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif // STRINGLITERALRULES_H
|