MCPcopy Create free account
hub / github.com/argotorg/solidity / translatePositionToLineColumn

Method translatePositionToLineColumn

liblangutil/CharStream.cpp:102–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100}
101
102LineColumn CharStream::translatePositionToLineColumn(int _position) const
103{
104 using size_type = std::string::size_type;
105 using diff_type = std::string::difference_type;
106 size_type searchPosition = std::min<size_type>(m_source.size(), size_type(_position));
107 int lineNumber = static_cast<int>(count(m_source.begin(), m_source.begin() + diff_type(searchPosition), '\n'));
108 size_type lineStart;
109 if (searchPosition == 0)
110 lineStart = 0;
111 else
112 {
113 lineStart = m_source.rfind('\n', searchPosition - 1);
114 lineStart = lineStart == std::string::npos ? 0 : lineStart + 1;
115 }
116 return LineColumn{lineNumber, static_cast<int>(searchPosition - lineStart)};
117}
118
119std::string_view CharStream::text(SourceLocation const& _location) const
120{

Callers 3

extractMethod · 0.80
toRangeMethod · 0.80
encodeMethod · 0.80

Calls 3

countFunction · 0.85
sizeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected