void TermAST::Printtm(std::map<std::string, int> &ctx, std::vector<std::string> env) { std::cout << "<"<<getValueID()<<">"; if (ID == AbsTermID) { env.push_back(pickfresh(ctx, env, Name)); std::cout << "lambda "<<env[env.size() - 1]<<" . "; Term->Printtm(ctx, env); } else if (ID == AppTermID) { for (int i = 0; i < Terms.size(); i++) { if(Terms.at(i)->getValueID() != VarID) { std::cout << "("; Terms.at(i)->Printtm(ctx, env); std::cout << ")"; } else { Terms.at(i)->Printtm(ctx, env); if(i != Terms.size()-1) { std::cout <<" "; } } } } else if (ID == VarID) { if (DIndex < env.size()) { std::cout << "{"<<env[env.size()-1-DIndex]<<", "<<DIndex<<"}"; } else { int index = DIndex - env.size(); for (auto itr : ctx) { if (itr.second == index) { std::cout <<"{"<< itr.first<<", "<<DIndex << "}"; } } } } else { std::cout << "some error in TermAST::print()" << std::endl; } }
bool CSSPrimitiveValue::colorIsDerivedFromElement() const { int valueID = getValueID(); switch (valueID) { case CSSValueWebkitText: case CSSValueWebkitLink: case CSSValueWebkitActivelink: case CSSValueCurrentcolor: return true; default: return false; } }