aboutsummaryrefslogtreecommitdiff
path: root/common/xmlparser.cpp
diff options
context:
space:
mode:
authorJordi Vilalta Prat2008-12-22 11:22:15 +0000
committerJordi Vilalta Prat2008-12-22 11:22:15 +0000
commitb1999a2a16b83aa031df2ce1cb266b7fea8847da (patch)
treea042bbc975ead7e8b38243d0d25822d70e72fe69 /common/xmlparser.cpp
parent2ec51ef3585d9450ddf21cff9212c0bc7f0b6a3f (diff)
downloadscummvm-rg350-b1999a2a16b83aa031df2ce1cb266b7fea8847da.tar.gz
scummvm-rg350-b1999a2a16b83aa031df2ce1cb266b7fea8847da.tar.bz2
scummvm-rg350-b1999a2a16b83aa031df2ce1cb266b7fea8847da.zip
Fixed indentation and removed whitespaces at the end of line
svn-id: r35481
Diffstat (limited to 'common/xmlparser.cpp')
-rw-r--r--common/xmlparser.cpp76
1 files changed, 38 insertions, 38 deletions
diff --git a/common/xmlparser.cpp b/common/xmlparser.cpp
index 3671feec2d..516f4bfcdf 100644
--- a/common/xmlparser.cpp
+++ b/common/xmlparser.cpp
@@ -36,21 +36,21 @@ using namespace Graphics;
bool XMLParser::parserError(const char *errorString, ...) {
_state = kParserError;
-
+
const int startPosition = _stream->pos();
int currentPosition = startPosition;
int lineCount = 1;
char c = 0;
-
+
_stream->seek(0, SEEK_SET);
-
+
while (currentPosition--) {
c = _stream->readByte();
-
+
if (c == '\n' || c == '\r')
lineCount++;
}
-
+
assert(_stream->pos() == startPosition);
currentPosition = startPosition;
@@ -75,9 +75,9 @@ bool XMLParser::parserError(const char *errorString, ...) {
if (c == '>')
keyClosing = currentPosition;
}
-
+
fprintf(stderr, "\n File <%s>, line %d:\n", _fileName.c_str(), lineCount);
-
+
currentPosition = (keyClosing - keyOpening);
_stream->seek(keyOpening, SEEK_SET);
@@ -98,16 +98,16 @@ bool XMLParser::parserError(const char *errorString, ...) {
bool XMLParser::parseXMLHeader(ParserNode *node) {
assert(node->header);
-
+
if (_activeKey.size() != 1)
return parserError("XML Header is expected in the global scope.");
-
+
if (!node->values.contains("version"))
return parserError("Missing XML version in XML header.");
-
+
if (node->values["version"] != "1.0")
return parserError("Unsupported XML version.");
-
+
return true;
}
@@ -116,30 +116,30 @@ bool XMLParser::parseActiveKey(bool closed) {
assert(_activeKey.empty() == false);
ParserNode *key = _activeKey.top();
-
+
if (key->name == "xml" && key->header == true) {
assert(closed);
return parseXMLHeader(key) && closeKey();
}
-
+
XMLKeyLayout *layout = (_activeKey.size() == 1) ? _XMLkeys : getParentNode(key)->layout;
-
+
if (layout->children.contains(key->name)) {
key->layout = layout->children[key->name];
-
+
Common::StringMap localMap = key->values;
int keyCount = localMap.size();
-
+
for (Common::List<XMLKeyLayout::XMLKeyProperty>::const_iterator i = key->layout->properties.begin(); i != key->layout->properties.end(); ++i) {
if (i->required && !localMap.contains(i->name))
return parserError("Missing required property '%s' inside key '%s'", i->name.c_str(), key->name.c_str());
else if (localMap.contains(i->name))
keyCount--;
}
-
+
if (keyCount > 0)
return parserError("Unhandled property inside key '%s'.", key->name.c_str());
-
+
} else {
return parserError("Unexpected key in the active scope ('%s').", key->name.c_str());
}
@@ -157,10 +157,10 @@ bool XMLParser::parseActiveKey(bool closed) {
// We set it manually in that case.
if (_state != kParserError)
parserError("Unhandled exception when parsing '%s' key.", key->name.c_str());
-
+
return false;
}
-
+
if (closed)
return closeKey();
@@ -201,17 +201,17 @@ bool XMLParser::parseKeyValue(Common::String keyName) {
bool XMLParser::closeKey() {
bool ignore = false;
bool result = true;
-
+
for (int i = _activeKey.size() - 1; i >= 0; --i) {
if (_activeKey[i]->ignore)
ignore = true;
}
-
+
if (ignore == false)
result = closedKeyCallback(_activeKey.top());
-
+
freeNode(_activeKey.pop());
-
+
return result;
}
@@ -219,7 +219,7 @@ bool XMLParser::parse() {
if (_stream == 0)
return parserError("XML stream not ready for reading.");
-
+
if (_XMLkeys == 0)
buildLayout();
@@ -236,7 +236,7 @@ bool XMLParser::parse() {
_activeKey.clear();
_char = _stream->readByte();
-
+
while (_char && _state != kParserError) {
if (skipSpaces())
continue;
@@ -262,7 +262,7 @@ bool XMLParser::parse() {
parserError("Expecting XML header.");
break;
}
-
+
_char = _stream->readByte();
activeHeader = true;
} else if (_char == '/') {
@@ -303,7 +303,7 @@ bool XMLParser::parse() {
case kParserNeedPropertyName:
if (activeClosure) {
if (!closeKey()) {
- parserError("Missing data when closing key '%s'.", _activeKey.top()->name.c_str());
+ parserError("Missing data when closing key '%s'.", _activeKey.top()->name.c_str());
break;
}
@@ -311,13 +311,13 @@ bool XMLParser::parse() {
if (_char != '>')
parserError("Invalid syntax in key closure.");
- else
+ else
_state = kParserNeedKey;
_char = _stream->readByte();
break;
}
-
+
selfClosure = false;
if (_char == '/' || (_char == '?' && activeHeader)) {
@@ -332,33 +332,33 @@ bool XMLParser::parse() {
_char = _stream->readByte();
_state = kParserNeedKey;
}
-
+
activeHeader = false;
break;
}
-
+
if (selfClosure)
parserError("Expecting key closure after '/' symbol.");
- else if (!parseToken())
+ else if (!parseToken())
parserError("Error when parsing key value.");
- else
+ else
_state = kParserNeedPropertyOperator;
break;
case kParserNeedPropertyOperator:
- if (_char != '=')
+ if (_char != '=')
parserError("Syntax error after key name.");
- else
+ else
_state = kParserNeedPropertyValue;
_char = _stream->readByte();
break;
case kParserNeedPropertyValue:
- if (!parseKeyValue(_token))
+ if (!parseKeyValue(_token))
parserError("Invalid key value.");
- else
+ else
_state = kParserNeedPropertyName;
break;