| 1697 | } |
| 1698 | |
| 1699 | void Token::astStringVerboseRecursive(std::string& ret, const nonneg int indent1, const nonneg int indent2) const |
| 1700 | { |
| 1701 | if (isExpandedMacro()) |
| 1702 | ret += '$'; |
| 1703 | ret += mStr; |
| 1704 | if (mImpl->mValueType) |
| 1705 | ret += " \'" + mImpl->mValueType->str() + '\''; |
| 1706 | if (function()) { |
| 1707 | std::ostringstream ostr; |
| 1708 | ostr << std::hex << function(); |
| 1709 | ret += " f:" + ostr.str(); |
| 1710 | } |
| 1711 | ret += '\n'; |
| 1712 | |
| 1713 | if (mImpl->mAstOperand1) { |
| 1714 | int i1 = indent1, i2 = indent2 + 2; |
| 1715 | if (indent1 == indent2 && !mImpl->mAstOperand2) |
| 1716 | i1 += 2; |
| 1717 | indent(ret, indent1, indent2); |
| 1718 | ret += mImpl->mAstOperand2 ? "|-" : "`-"; |
| 1719 | mImpl->mAstOperand1->astStringVerboseRecursive(ret, i1, i2); |
| 1720 | } |
| 1721 | if (mImpl->mAstOperand2) { |
| 1722 | int i1 = indent1, i2 = indent2 + 2; |
| 1723 | if (indent1 == indent2) |
| 1724 | i1 += 2; |
| 1725 | indent(ret, indent1, indent2); |
| 1726 | ret += "`-"; |
| 1727 | mImpl->mAstOperand2->astStringVerboseRecursive(ret, i1, i2); |
| 1728 | } |
| 1729 | } |
| 1730 | |
| 1731 | std::string Token::astStringVerbose() const |
| 1732 | { |
nothing calls this directly
no test coverage detected