Exemple #1
0
void PSIVisitor::visit_comp_pkg_body(const std::vector<IBaseItem *> &items) {
	std::vector<IBaseItem *>::const_iterator it=items.begin();

	for (; it!=items.end(); it++) {
		switch ((*it)->getType()) {
			case IBaseItem::TypeAction:
				visit_action(static_cast<IAction *>(*it));
				break;

			case IBaseItem::TypeStruct:
				visit_struct(static_cast<IStruct *>(*it));
				break;
		}
	}
}
Exemple #2
0
void PSIVisitor::visit_package(IPackage *pkg) {
	std::vector<IBaseItem *>::const_iterator it=pkg->getItems().begin();

	for (; it!=pkg->getItems().end(); it++) {
		IBaseItem *i = *it;

		switch (i->getType()) {
			case IBaseItem::TypeAction:
				// TODO:
				break;

			case IBaseItem::TypeStruct:
				visit_struct(static_cast<IStruct *>(i));
				break;
		}
	}
}
Exemple #3
0
void PSIVisitor::visit_package(IPackage *pkg) {
	std::vector<IBaseItem *>::const_iterator it=pkg->getItems().begin();

	for (int32_t i=0; i<pkg->getItems().size(); i++) {
		IBaseItem *it = pkg->getItems().at(i);

		push_scope(it);
		m_removed = false;
		switch (it->getType()) {
			case IBaseItem::TypeAction:
				// TODO:
				break;

			case IBaseItem::TypeStruct:
				visit_struct(dynamic_cast<IStruct *>(it));
				break;

			case IBaseItem::TypeExtend:
				visit_extend(dynamic_cast<IExtend *>(it));
				break;

			case IBaseItem::TypeImportFunc:
				visit_import_func(dynamic_cast<IImportFunc *>(it));
				break;

			default:
				fprintf(stdout, "Error: Unhandled package item: %d\n", it->getType());
		}
		pop_scope();

		if (m_removed) {
			dynamic_cast<PackageImpl *>(pkg)->remove(it);
			delete it;
		}
	}

	m_removed = false;
}
Exemple #4
0
void PSIVisitor::visit_comp_pkg_body(const std::vector<IBaseItem *> &items) {
	std::vector<IBaseItem *>::const_iterator it=items.begin();

	for (; it!=items.end(); it++) {
		fprintf(stdout, " -- item %p %d\n", *it, (*it)->getType());
		fflush(stdout);

		push_scope(*it);
		switch ((*it)->getType()) {
			case IBaseItem::TypeAction:
				fprintf(stdout, "---> visit_action\n");
				fflush(stdout);
				visit_action(dynamic_cast<IAction *>(*it));
				fprintf(stdout, "<--- visit_action\n");
				fflush(stdout);
				break;

			case IBaseItem::TypeStruct:
				visit_struct(dynamic_cast<IStruct *>(*it));
				break;
		}
		pop_scope();
	}
}