예제 #1
0
//печать элемента анимации
void dump (const Symbol& symbol, int level)
{
  print_space (level++);
  printf      ("Symbol '%s'\n", symbol.Name ());

  dump (symbol.Timeline (), level);
}
예제 #2
0
void Expression::SubstituteNames(StringMap const &substitutions)
{
	Symbol *symbolHead = SymbolHead();
	if(symbolHead)
	{
		StringMap::const_iterator found = substitutions.find(symbolHead->Name());
		if(found != substitutions.end())
			symbolHead->Name(found->second);
	}
	else
	{
		if(head)
			head->SubstituteNames(substitutions);
		for(ExprVector::const_iterator leaf = leaves.begin(); leaf != leaves.end(); ++leaf)
			(*leaf)->SubstituteNames(substitutions);
	}
}
예제 #3
0
string Expression::SymbolName()
{
	if(head)
	{
		Symbol *symbolHead = dynamic_cast<Symbol*>(head);
		if(symbolHead)
			return symbolHead->Name();
	}
	return "";
}