Skip to content

Commit

Permalink
Parse/ignore listDef, bindDef and choiceDef
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Nov 18, 2017
1 parent aae9e9a commit b31cd14
Showing 1 changed file with 33 additions and 6 deletions.
39 changes: 33 additions & 6 deletions plugins/dm.gui/gui/GuiWindowDef.cpp
Expand Up @@ -16,6 +16,28 @@
namespace gui
{

namespace
{

void skipBlock(parser::DefTokeniser& tokeniser)
{
tokeniser.assertNextToken("{");

std::size_t level = 1;

while (tokeniser.hasMoreTokens())
{
std::string token = tokeniser.nextToken();

if (token == "{") level++;
if (token == "}") level--;

if (level == 0) return;
}
}

}

GuiWindowDef::GuiWindowDef(IGui& owner) :
_owner(owner),
_renderableText(*this),
Expand Down Expand Up @@ -367,12 +389,17 @@ void GuiWindowDef::constructFromTokens(parser::DefTokeniser& tokeniser)
else if (token == "listdef")
{
tokeniser.nextToken(); // listdef name
tokeniser.assertNextToken("{");

while (tokeniser.hasMoreTokens())
{
if (tokeniser.nextToken() == "}") break;
}
skipBlock(tokeniser);
}
else if (token == "choicedef")
{
tokeniser.nextToken(); // listdef name
skipBlock(tokeniser);
}
else if (token == "binddef")
{
tokeniser.nextToken(); // listdef name
skipBlock(tokeniser);
}
else if (token == "}")
{
Expand Down

0 comments on commit b31cd14

Please sign in to comment.