diff options
| author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-17 19:48:15 +0100 | 
|---|---|---|
| committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-17 19:48:15 +0100 | 
| commit | 1456bbf7ab68da3ec3a1eb507a1c15b88e6c782f (patch) | |
| tree | 5b6009da4be0068a638f48dbeb185c01d6c35f87 | |
| parent | bf5f5e97d7bb40fd8da4b45dde9aa1bb23105af4 (diff) | |
added some debug information to document handler.
| -rw-r--r-- | src/core/parser/stack/DocumentHandler.cpp | 45 | ||||
| -rw-r--r-- | src/core/parser/stack/DocumentHandler.hpp | 2 | 
2 files changed, 47 insertions, 0 deletions
| diff --git a/src/core/parser/stack/DocumentHandler.cpp b/src/core/parser/stack/DocumentHandler.cpp index 49bf26b..4038a42 100644 --- a/src/core/parser/stack/DocumentHandler.cpp +++ b/src/core/parser/stack/DocumentHandler.cpp @@ -82,6 +82,9 @@ void DocumentChildHandler::createPath(const NodeVector<Node> &path,  		Rooted<DocumentField> field{new DocumentField(  		    manager(), scope().getLeaf(),  		    parent->getDescriptor()->getFieldDescriptorIndex(), true)}; +		// TODO: REMOVE +		logger().debug(std::string("push transparent field createPath() "), +		               location());  		scope().push(field);  		// add the transparent/implicit structure element.  		Rooted<StructuredEntity> transparent = @@ -90,6 +93,10 @@ void DocumentChildHandler::createPath(const NodeVector<Node> &path,  		                                        path[p - 1]->getName(), "");  		transparent->setLocation(location());  		transparent->setTransparent(true); +		// TODO: REMOVE +		logger().debug(std::string("push transparent createPath() ") + +		                   transparent->getDescriptor()->getName(), +		               location());  		scope().push(transparent);  		parent = static_cast<DocumentEntity *>(transparent.get());  	} @@ -97,6 +104,9 @@ void DocumentChildHandler::createPath(const NodeVector<Node> &path,  	Rooted<DocumentField> field{new DocumentField(  	    manager(), scope().getLeaf(),  	    parent->getDescriptor()->getFieldDescriptorIndex(), true)}; +	// TODO: REMOVE +	logger().debug(std::string("push transparent field createPath() "), +					location());  	scope().push(field);  } @@ -109,6 +119,10 @@ void DocumentChildHandler::createPath(const size_t &firstFieldIdx,  	    path[0].cast<StructuredClass>(), firstFieldIdx);  	transparent->setLocation(location());  	transparent->setTransparent(true); +	// TODO: REMOVE +	logger().debug(std::string("push transparent createPath() ") + +	                   transparent->getDescriptor()->getName(), +	               location());  	scope().push(transparent);  	parent = static_cast<DocumentEntity *>(transparent.get()); @@ -173,6 +187,9 @@ bool DocumentChildHandler::start(Variant::mapType &args)  					Rooted<DocumentField> field{new DocumentField(  					    manager(), parentNode, newFieldIdx, false)};  					field->setLocation(location()); +					// TODO: REMOVE +					logger().debug(std::string("push explicit field start() "), +		               location());  					scope().push(field);  					isExplicitField = true;  					return true; @@ -200,8 +217,12 @@ bool DocumentChildHandler::start(Variant::mapType &args)  					// if we have transparent elements above us in the structure  					// tree we try to unwind them before we give up.  					// pop the implicit field. +					//TODO: REMOVE +					logger().debug("pop start() rollback",  location());  					scope().pop();  					// pop the implicit element. +					//TODO: REMOVE +					logger().debug("pop start() rollback",  location());  					scope().pop();  					continue;  				} @@ -218,10 +239,16 @@ bool DocumentChildHandler::start(Variant::mapType &args)  				    parent->getDescriptor()->getFieldDescriptorIndex();  			}  			// create the entity for the new element at last. +			//TODO: REMOVE +			strct_name = strct->getName();  			entity = parent->createChildStructuredEntity(strct, lastFieldIdx,  			                                             args, nameAttr);  		}  		entity->setLocation(location()); +		// TODO: REMOVE +		logger().debug( +		    std::string("push start() ") + entity->getDescriptor()->getName(), +		    location());  		scope().push(entity);  		return true;  	} @@ -235,6 +262,8 @@ void DocumentChildHandler::end()  		return;  	}  	// pop the "main" element. +	// TODO: REMOVE +	logger().debug("pop end()", location());  	scope().pop();  } @@ -268,6 +297,10 @@ bool DocumentChildHandler::fieldStart(bool &isDefault, size_t fieldIdx)  	Rooted<DocumentField> field{  	    new DocumentField(manager(), parentNode, fieldIdx, false)};  	field->setLocation(location()); +	// TODO: REMOVE +	logger().debug( +	    std::string("push fieldStart() ") + fields[fieldIdx]->getName(), +	    location());  	scope().push(field);  	return true;  } @@ -277,13 +310,25 @@ void DocumentChildHandler::fieldEnd()  	assert(scope().getLeaf()->isa(&RttiTypes::DocumentField));  	// pop the field from the stack. +	// TODO: REMOVE +	logger().debug("pop fieldEnd() ", location());  	scope().pop();  	// pop all remaining transparent elements.  	while (scope().getLeaf()->isa(&RttiTypes::StructuredEntity) &&  	       scope().getLeaf().cast<StructuredEntity>()->isTransparent()) { +		// TODO: REMOVE +		logger().debug(std::string("pop transparent fieldEnd() ") + +		                   scope() +		                       .getLeaf() +		                       .cast<StructuredEntity>() +		                       ->getDescriptor() +		                       ->getName(), +		               location());  		// pop the transparent element.  		scope().pop(); +		// TODO: REMOVE +		logger().debug("pop transparent fieldEnd() ", location());  		// pop the transparent field.  		scope().pop();  	} diff --git a/src/core/parser/stack/DocumentHandler.hpp b/src/core/parser/stack/DocumentHandler.hpp index 5953e3a..862081c 100644 --- a/src/core/parser/stack/DocumentHandler.hpp +++ b/src/core/parser/stack/DocumentHandler.hpp @@ -93,6 +93,8 @@ public:  class DocumentChildHandler : public Handler {  private:  	bool isExplicitField = false; +	//TODO: REMOVE +	std::string strct_name;  	/**  	 * Code shared by both the start(), fieldStart() and the data() method. | 
