Kaydet (Commit) 4300656d authored tarafından Noel Grandin's avatar Noel Grandin

convert XmlReader::State to scoped enum

Change-Id: I8020843ad238ac3487f7f2781693ca619db5e1b3
üst 9cd59f77
...@@ -127,9 +127,7 @@ private: ...@@ -127,9 +127,7 @@ private:
typedef std::vector< AttributeData > Attributes; typedef std::vector< AttributeData > Attributes;
enum State { enum class State { Content, StartTag, EndTag, EmptyElementTag, Done };
STATE_CONTENT, STATE_START_TAG, STATE_END_TAG, STATE_EMPTY_ELEMENT_TAG,
STATE_DONE };
SAL_DLLPRIVATE inline char read() { return pos_ == end_ ? '\0' : *pos_++; } SAL_DLLPRIVATE inline char read() { return pos_ == end_ ? '\0' : *pos_++; }
......
...@@ -64,7 +64,7 @@ XmlReader::XmlReader(char const *sStr, size_t nLength) ...@@ -64,7 +64,7 @@ XmlReader::XmlReader(char const *sStr, size_t nLength)
namespaces_.push_back(NamespaceData(Span("xml"), NAMESPACE_XML)); namespaces_.push_back(NamespaceData(Span("xml"), NAMESPACE_XML));
pos_ = sStr; pos_ = sStr;
end_ = pos_ + nLength; end_ = pos_ + nLength;
state_ = STATE_CONTENT; state_ = State::Content;
firstAttribute_ = true; firstAttribute_ = true;
} }
...@@ -104,7 +104,7 @@ XmlReader::XmlReader(OUString const & fileUrl) ...@@ -104,7 +104,7 @@ XmlReader::XmlReader(OUString const & fileUrl)
namespaces_.push_back(NamespaceData(Span("xml"), NAMESPACE_XML)); namespaces_.push_back(NamespaceData(Span("xml"), NAMESPACE_XML));
pos_ = static_cast< char * >(fileAddress_); pos_ = static_cast< char * >(fileAddress_);
end_ = pos_ + fileSize_; end_ = pos_ + fileSize_;
state_ = STATE_CONTENT; state_ = State::Content;
firstAttribute_ = true; firstAttribute_ = true;
} }
...@@ -142,7 +142,7 @@ int XmlReader::registerNamespaceIri(Span const & iri) { ...@@ -142,7 +142,7 @@ int XmlReader::registerNamespaceIri(Span const & iri) {
XmlReader::Result XmlReader::nextItem(Text reportText, Span * data, int * nsId) XmlReader::Result XmlReader::nextItem(Text reportText, Span * data, int * nsId)
{ {
switch (state_) { switch (state_) {
case STATE_CONTENT: case State::Content:
switch (reportText) { switch (reportText) {
case Text::NONE: case Text::NONE:
return handleSkippedText(data, nsId); return handleSkippedText(data, nsId);
...@@ -151,14 +151,14 @@ XmlReader::Result XmlReader::nextItem(Text reportText, Span * data, int * nsId) ...@@ -151,14 +151,14 @@ XmlReader::Result XmlReader::nextItem(Text reportText, Span * data, int * nsId)
case Text::Normalized: case Text::Normalized:
return handleNormalizedText(data); return handleNormalizedText(data);
} }
case STATE_START_TAG: case State::StartTag:
return handleStartTag(nsId, data); return handleStartTag(nsId, data);
case STATE_END_TAG: case State::EndTag:
return handleEndTag(); return handleEndTag();
case STATE_EMPTY_ELEMENT_TAG: case State::EmptyElementTag:
handleElementEnd(); handleElementEnd();
return Result::End; return Result::End;
default: // STATE_DONE default: // State::Done
return Result::Done; return Result::Done;
} }
} }
...@@ -676,10 +676,10 @@ XmlReader::Result XmlReader::handleStartTag(int * nsId, Span * localName) { ...@@ -676,10 +676,10 @@ XmlReader::Result XmlReader::handleStartTag(int * nsId, Span * localName) {
} }
firstAttribute_ = true; firstAttribute_ = true;
if (peek() == '/') { if (peek() == '/') {
state_ = STATE_EMPTY_ELEMENT_TAG; state_ = State::EmptyElementTag;
++pos_; ++pos_;
} else { } else {
state_ = STATE_CONTENT; state_ = State::Content;
} }
if (peek() != '>') { if (peek() != '>') {
throw css::uno::RuntimeException( throw css::uno::RuntimeException(
...@@ -727,7 +727,7 @@ void XmlReader::handleElementEnd() { ...@@ -727,7 +727,7 @@ void XmlReader::handleElementEnd() {
assert(!elements_.empty()); assert(!elements_.empty());
namespaces_.resize(elements_.top().inheritedNamespaces); namespaces_.resize(elements_.top().inheritedNamespaces);
elements_.pop(); elements_.pop();
state_ = elements_.empty() ? STATE_DONE : STATE_CONTENT; state_ = elements_.empty() ? State::Done : State::Content;
} }
XmlReader::Result XmlReader::handleSkippedText(Span * data, int * nsId) { XmlReader::Result XmlReader::handleSkippedText(Span * data, int * nsId) {
...@@ -797,7 +797,7 @@ XmlReader::Result XmlReader::handleRawText(Span * text) { ...@@ -797,7 +797,7 @@ XmlReader::Result XmlReader::handleRawText(Span * text) {
case '/': case '/':
*text = pad_.get(); *text = pad_.get();
++pos_; ++pos_;
state_ = STATE_END_TAG; state_ = State::EndTag;
return Result::Text; return Result::Text;
case '?': case '?':
++pos_; ++pos_;
...@@ -806,7 +806,7 @@ XmlReader::Result XmlReader::handleRawText(Span * text) { ...@@ -806,7 +806,7 @@ XmlReader::Result XmlReader::handleRawText(Span * text) {
break; break;
default: default:
*text = pad_.get(); *text = pad_.get();
state_ = STATE_START_TAG; state_ = State::StartTag;
return Result::Text; return Result::Text;
} }
break; break;
...@@ -914,7 +914,7 @@ XmlReader::Result XmlReader::handleNormalizedText(Span * text) { ...@@ -914,7 +914,7 @@ XmlReader::Result XmlReader::handleNormalizedText(Span * text) {
++pos_; ++pos_;
pad_.add(flowBegin, flowEnd - flowBegin); pad_.add(flowBegin, flowEnd - flowBegin);
*text = pad_.get(); *text = pad_.get();
state_ = STATE_END_TAG; state_ = State::EndTag;
return Result::Text; return Result::Text;
case '?': case '?':
++pos_; ++pos_;
...@@ -924,7 +924,7 @@ XmlReader::Result XmlReader::handleNormalizedText(Span * text) { ...@@ -924,7 +924,7 @@ XmlReader::Result XmlReader::handleNormalizedText(Span * text) {
default: default:
pad_.add(flowBegin, flowEnd - flowBegin); pad_.add(flowBegin, flowEnd - flowBegin);
*text = pad_.get(); *text = pad_.get();
state_ = STATE_START_TAG; state_ = State::StartTag;
return Result::Text; return Result::Text;
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment