本文整理汇总了C++中Debug类的典型用法代码示例。如果您正苦于以下问题:C++ Debug类的具体用法?C++ Debug怎么用?C++ Debug使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Debug类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Debug
XMLParser::XMLParser(string path)
{
// Debug-Objekt erstellen, so dass Dateiname und eventuelle Fehlermeldung gleiche Nummer haben
Debug dbg = Debug() ;
dbg.message("Parse XML-File: " + path) ;
filepath = path ;
file.open(filepath.c_str(), ios_base::in) ;
// überprüfen, ob die Datei existiert
if (!file) {
dbg.message("Datei '" + path + "' nicht gefunden") ;
} else {
string filecontent ;
char character ;
while(!file.eof()) {
file.get(character) ;
filecontent += character ;
}
// Mainnodes herausfinden und gesamte Datei in Nodes aufsplitten
splitMainNodes(filecontent) ;
}
file.close() ;
}
示例2: main
int main(int argc, char *argv[])
{
Debug dbg ;
if (2 == argc)
{
dbg.SetExePathName(argv[1]) ;
}
else
{
char szFileName[256] = "" ;
OPENFILENAME file = {0} ;
file.lpstrFile = szFileName ;
file.lStructSize = sizeof(OPENFILENAME) ;
file.nMaxFile = 256 ;
file.lpstrFilter = "Executables\0*.exe\0All Files\0*.*\0\0" ;
file.nFilterIndex = 1 ;
if(::GetOpenFileName(&file))
{
dbg.SetExePathName(szFileName) ;
}
}
dbg.StartDebug() ;
system("pause") ;
return 0 ;
}
示例3: main
int main() {
constexpr Debug io_sub(false, true, false);
if (io_sub.any())
std::cerr << "print appropriate error messages" << std::endl;
constexpr Debug prod(false);
if (prod.any())
std::cerr << "print an error message" << std::endl;
}
示例4: main
int main()
{
constexpr Debug io_sub(false, true ,false);
if(io_sub.any()){
cerr << "printf appropriate error messages" << endl;
}
constexpr Debug prod(false);
if(prod.any()){
cerr << "printf an error message" << endl;
}
return 0;
}
示例5: test_sales_data
static int test_sales_data()
{
// Sales_data data(cin);
// print(cout, data);
X2 x2(5);
x2.print();
X2 x2_default;
x2_default.print();
constexpr Debug d;
constexpr int c_i = d.any();
return 0;
}
示例6: Initialize
bool CGame::Initialize()
{
Debug *dbg = Debug::GetInstance();
if(SDL_Init(SDL_INIT_EVERYTHING) == -1)
{
dbg->Print("SDL_Init Failed /n");
return false;
}
if(m_FullScreen == true)
{
mainScreen = SDL_SetVideoMode(SCREEN_W,SCREEN_H,SCREEN_BPP,SDL_SWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF);
}
else if(m_FullScreen == false)
{
mainScreen = SDL_SetVideoMode(SCREEN_W,SCREEN_H,SCREEN_BPP,SDL_SWSURFACE);
}
if(mainScreen == NULL)
{
dbg->Print("Could not Initialize Screen!");
return false;
}
if(TTF_Init() == -1)
{
dbg->Print("TTF_Init Failed");
return false;
}
if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY,MIX_DEFAULT_FORMAT,MIX_DEFAULT_CHANNELS,4096) == -1)
{
dbg->Print("SDL_Mixer failed/n");
return false;
}
SDL_WM_SetCaption("Alana's Valentine's Day Gift", NULL);
return true;
}
示例7: CORRADE_VERIFY
void DebugTest::flags() {
std::ostringstream out;
Debug::setOutput(&out);
{
/* Don't allow to set/reset the reserved flag */
Debug debug;
debug.setFlag(static_cast<Debug::Flag>(0x01), false);
CORRADE_VERIFY(debug.flag(static_cast<Debug::Flag>(0x01)));
} {
Debug debug;
debug.setFlag(Debug::SpaceAfterEachValue, false);
debug << "a" << "b" << "c";
}
CORRADE_COMPARE(out.str(), "abc\n");
out.str("");
{
Debug debug;
debug.setFlag(Debug::NewLineAtTheEnd, false);
debug << "a" << "b" << "c";
}
CORRADE_COMPARE(out.str(), "a b c");
}
示例8: main
int main()
{
Scales_data item;
std::string null_book = "9-999-99999-9";
item.combine(null_book);
print(std::cout, item) << std::endl;
constexpr Debug io_sub(false, true, false);
if (io_sub.any())
std::cerr << "print appropriate error messages" << std::endl;
constexpr Debug prob(false);
if (prob.any())
std::cerr << "print an error messages" << std::endl;
// Scales_data total(std::cin);
std::string null_book("abc");
// Scales_data item = null_book; // explicit Scales_data(std::string) cause error
Scales_data item;
item.combine(Scales_data(null_book));
item.combine(static_cast<Scales_data>(std::cin));
Screen myScreen(5, 3, '$');
const Screen blank(5, 3, '0');
myScreen.move(1, 3).set('#').display(std::cout);
blank.display(std::cout);
std::cout << std::endl;
Window_mgr my_windows({myScreen, blank});
my_windows.display();
my_windows.clear(0);
my_windows.display();
Screen::pos ht(24), wd(80);
Screen scr(ht, wd, ' ');
Screen *p = &scr;
char c = scr.get();
c = p->get();
std::cout << c << std::endl;
}
示例9: switch
void Nuria::Debug::qtMessageHandler (QtMsgType type, const QMessageLogContext &context,
const QString &message) {
Type t = DebugMsg;
// Translate QtMsgType to a Debug::Type value
switch (type) {
case QtDebugMsg:
t = DebugMsg;
break;
case QtWarningMsg:
t = WarnMsg;
break;
case QtCriticalMsg:
case QtFatalMsg:
t = CriticalMsg;
break;
}
// Output.
Debug out (t, context.category, context.file, context.line, context.function, 0);
out.setBuffer (message);
}
示例10: LidarInpaintingHSVTextureVerification
void LidarInpaintingHSVTextureVerification(TImage* const originalImage, Mask* const mask,
const unsigned int patchHalfWidth, const unsigned int numberOfKNN,
float slightBlurVariance = 1.0f, unsigned int searchRadius = 1000,
float localRegionSizeMultiplier = 3.0f, float maxAllowedUsedPixelsRatio = 0.5f)
{
itk::ImageRegion<2> fullRegion = originalImage->GetLargestPossibleRegion();
// Extract the RGB image
typedef itk::Image<itk::CovariantVector<float, 3>, 2> RGBImageType;
std::vector<unsigned int> firstThreeChannels = {0,1,2};
RGBImageType::Pointer rgbImage = RGBImageType::New();
ITKHelpers::ExtractChannels(originalImage, firstThreeChannels, rgbImage.GetPointer());
// Create the HSV image
typedef itk::Image<itk::CovariantVector<float, 3>, 2> HSVImageType;
HSVImageType::Pointer hsvImage = HSVImageType::New();
ITKVTKHelpers::ConvertRGBtoHSV(rgbImage.GetPointer(), hsvImage.GetPointer());
ITKHelpers::WriteImage(hsvImage.GetPointer(), "HSVImage.mha");
// Stack the HSV image with the original rest of the channels
typedef itk::Image<itk::CovariantVector<float, 5>, 2> HSVDxDyImageType;
HSVDxDyImageType::Pointer hsvDxDyImage = HSVDxDyImageType::New();
ITKHelpers::DeepCopy(originalImage, hsvDxDyImage.GetPointer());
ITKHelpers::ReplaceChannels(hsvDxDyImage.GetPointer(), firstThreeChannels, hsvImage.GetPointer());
// Blur the image for gradient computation stability (Criminisi's data term)
RGBImageType::Pointer blurredRGBImage = RGBImageType::New();
float blurVariance = 2.0f;
MaskOperations::MaskedBlur(rgbImage.GetPointer(), mask, blurVariance, blurredRGBImage.GetPointer());
ITKHelpers::WriteRGBImage(blurredRGBImage.GetPointer(), "BlurredRGBImage.png");
// Blur the image slightly so that the SSD comparisons are not so noisy
typename HSVDxDyImageType::Pointer slightlyBlurredHSVDxDyImage = TImage::New();
MaskOperations::MaskedBlur(hsvDxDyImage.GetPointer(), mask, slightBlurVariance, slightlyBlurredHSVDxDyImage.GetPointer());
ITKHelpers::WriteImage(slightlyBlurredHSVDxDyImage.GetPointer(), "SlightlyBlurredHSVDxDyImage.mha");
// Create the graph
typedef ImagePatchPixelDescriptor<TImage> ImagePatchPixelDescriptorType;
typedef boost::grid_graph<2> VertexListGraphType;
// We can't make this a signed type (size_t versus int) because we allow negative
boost::array<std::size_t, 2> graphSideLengths = { { fullRegion.GetSize()[0],
fullRegion.GetSize()[1] } };
VertexListGraphType graph(graphSideLengths);
typedef boost::graph_traits<VertexListGraphType>::vertex_descriptor VertexDescriptorType;
typedef boost::graph_traits<VertexListGraphType>::vertex_iterator VertexIteratorType;
// Get the index map
typedef boost::property_map<VertexListGraphType, boost::vertex_index_t>::const_type IndexMapType;
IndexMapType indexMap(get(boost::vertex_index, graph));
// Create the descriptor map. This is where the data for each pixel is stored.
typedef boost::vector_property_map<ImagePatchPixelDescriptorType, IndexMapType> ImagePatchDescriptorMapType;
ImagePatchDescriptorMapType imagePatchDescriptorMap(num_vertices(graph), indexMap);
// Create the patch inpainter.
typedef PatchInpainter<TImage> OriginalImageInpainterType;
OriginalImageInpainterType originalImagePatchInpainter(patchHalfWidth, originalImage, mask);
originalImagePatchInpainter.SetDebugImages(true);
originalImagePatchInpainter.SetImageName("RGB");
// Create an inpainter for the HSV image.
typedef PatchInpainter<HSVImageType> HSVImageInpainterType;
HSVImageInpainterType hsvImagePatchInpainter(patchHalfWidth, hsvImage, mask);
// Create an inpainter for the RGB image.
typedef PatchInpainter<RGBImageType> RGBImageInpainterType;
RGBImageInpainterType rgbImagePatchInpainter(patchHalfWidth, rgbImage, mask);
// Create an inpainter for the blurred image.
typedef PatchInpainter<RGBImageType> BlurredImageInpainterType;
BlurredImageInpainterType blurredRGBImagePatchInpainter(patchHalfWidth, blurredRGBImage, mask);
// Create an inpainter for the slightly blurred image.
typedef PatchInpainter<TImage> SlightlyBlurredHSVDxDyImageImageInpainterType;
SlightlyBlurredHSVDxDyImageImageInpainterType slightlyBlurredHSVDxDyImageImagePatchInpainter(patchHalfWidth, slightlyBlurredHSVDxDyImage, mask);
// Create a composite inpainter. (Note: the mask is inpainted in InpaintingVisitor::FinishVertex)
CompositePatchInpainter inpainter;
inpainter.AddInpainter(&originalImagePatchInpainter);
inpainter.AddInpainter(&hsvImagePatchInpainter);
inpainter.AddInpainter(&blurredRGBImagePatchInpainter);
inpainter.AddInpainter(&slightlyBlurredHSVDxDyImageImagePatchInpainter);
inpainter.AddInpainter(&rgbImagePatchInpainter);
// Create the priority function
typedef PriorityCriminisi<RGBImageType> PriorityType;
PriorityType priorityFunction(blurredRGBImage, mask, patchHalfWidth);
// priorityFunction.SetDebugLevel(1);
// Queue
typedef IndirectPriorityQueue<VertexListGraphType> BoundaryNodeQueueType;
BoundaryNodeQueueType boundaryNodeQueue(graph);
// Create the descriptor visitor (used for SSD comparisons).
//.........这里部分代码省略.........
示例11: debug_ast
//.........这里部分代码省略.........
<< std::endl;
debug_ast(block->left(), ind + " left) ");
debug_ast(block->right(), ind + " right) ");
} else if (dynamic_cast<Supports_Negation*>(node)) {
Supports_Negation* block = dynamic_cast<Supports_Negation*>(node);
std::cerr << ind << "Supports_Negation " << block;
std::cerr << " (" << pstate_source_position(node) << ")"
<< std::endl;
debug_ast(block->condition(), ind + " condition) ");
} else if (dynamic_cast<Supports_Declaration*>(node)) {
Supports_Declaration* block = dynamic_cast<Supports_Declaration*>(node);
std::cerr << ind << "Supports_Declaration " << block;
std::cerr << " (" << pstate_source_position(node) << ")"
<< std::endl;
debug_ast(block->feature(), ind + " feature) ");
debug_ast(block->value(), ind + " value) ");
} else if (dynamic_cast<Block*>(node)) {
Block* root_block = dynamic_cast<Block*>(node);
std::cerr << ind << "Block " << root_block;
std::cerr << " (" << pstate_source_position(node) << ")";
if (root_block->is_root()) std::cerr << " [root]";
std::cerr << " " << root_block->tabs() << std::endl;
if (root_block->block()) for(auto i : root_block->block()->elements()) { debug_ast(i, ind + " ", env); }
} else if (dynamic_cast<Warning*>(node)) {
Warning* block = dynamic_cast<Warning*>(node);
std::cerr << ind << "Warning " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
} else if (dynamic_cast<Error*>(node)) {
Error* block = dynamic_cast<Error*>(node);
std::cerr << ind << "Error " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
} else if (dynamic_cast<Debug*>(node)) {
Debug* block = dynamic_cast<Debug*>(node);
std::cerr << ind << "Debug " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
} else if (dynamic_cast<Comment*>(node)) {
Comment* block = dynamic_cast<Comment*>(node);
std::cerr << ind << "Comment " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() <<
" <" << prettyprint(block->pstate().token.ws_before()) << ">" << std::endl;
debug_ast(block->text(), ind + "// ", env);
} else if (dynamic_cast<If*>(node)) {
If* block = dynamic_cast<If*>(node);
std::cerr << ind << "If " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
debug_ast(block->predicate(), ind + " = ");
debug_ast(block->block(), ind + " <>");
debug_ast(block->alternative(), ind + " ><");
} else if (dynamic_cast<Return*>(node)) {
Return* block = dynamic_cast<Return*>(node);
std::cerr << ind << "Return " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
} else if (dynamic_cast<Extension*>(node)) {
Extension* block = dynamic_cast<Extension*>(node);
std::cerr << ind << "Extension " << block;
std::cerr << " (" << pstate_source_position(node) << ")";
std::cerr << " " << block->tabs() << std::endl;
debug_ast(block->selector(), ind + "-> ", env);
} else if (dynamic_cast<Content*>(node)) {
Content* block = dynamic_cast<Content*>(node);
示例12: reader_thread
static void* reader_thread(void * /*arg*/)
{
uint8_t tmp[16]; /* actually 6 should be enough */
int count;
int len;
uint16_t packlen;
uint8_t* buf;
dmx = new cDemux();
#if defined (PLATFORM_COOLSTREAM)
dmx->Open(DMX_PES_CHANNEL);
#else
dmx->Open(DMX_PES_CHANNEL, 64*1024, live_fe);
#endif
while (reader_running)
{
//dmx->Open(DMX_PES_CHANNEL, 64*1024, live_fe?live_fe->fenumber:0);
if(dvbsub_stopped /*dvbsub_paused*/)
{
sub_debug.print(Debug::VERBOSE, "%s stopped\n", __FUNCTION__);
dmx->Stop();
pthread_mutex_lock(&packetMutex);
pthread_cond_broadcast(&packetCond);
pthread_mutex_unlock(&packetMutex);
pthread_mutex_lock(&readerMutex );
int ret = pthread_cond_wait(&readerCond, &readerMutex);
pthread_mutex_unlock(&readerMutex);
if (ret)
{
sub_debug.print(Debug::VERBOSE, "pthread_cond_timedwait fails with %d\n", ret);
}
if(!reader_running)
break;
dvbsub_stopped = 0;
sub_debug.print(Debug::VERBOSE, "%s (re)started with pid 0x%x\n", __FUNCTION__, dvbsub_pid);
}
if(pid_change_req)
{
pid_change_req = 0;
clear_queue();
dmx->Stop();
//
#if defined (PLATFORM_COOLSTREAM)
dmx->Open(DMX_PES_CHANNEL);
#else
dmx->Open(DMX_PES_CHANNEL, 64*1024, live_fe/*?live_fe->fenumber:0*/);
#endif
//
dmx->pesFilter(dvbsub_pid);
dmx->Start();
sub_debug.print(Debug::VERBOSE, "%s changed to pid 0x%x\n", __FUNCTION__, dvbsub_pid);
}
len = 0;
count = 0;
len = dmx->Read(tmp, 6, 1000);
//printf("\n[dvbsub] len: %d\n", len);
if(len <= 0)
continue;
if(memcmp(tmp, "\x00\x00\x01\xbd", 4))
{
sub_debug.print(Debug::VERBOSE, "[subtitles] bad start code: %02x%02x%02x%02x\n", tmp[0], tmp[1], tmp[2], tmp[3]);
continue;
}
count = 6;
packlen = getbits(tmp, 4*8, 16) + 6;
buf = (uint8_t*) malloc(packlen);
memcpy(buf, tmp, 6);
/* read rest of the packet */
while((count < packlen) /* && !dvbsub_paused*/)
{
len = dmx->Read(buf+count, packlen-count, 1000);
if (len < 0) {
continue;
} else {
count += len;
}
}
#if 0
for(int i = 6; i < packlen - 4; i++) {
if(!memcmp(&buf[i], "\x00\x00\x01\xbd", 4)) {
int plen = getbits(&buf[i], 4*8, 16) + 6;
printf("[subtitles] PES header at %d ?!\n", i);
printf("[subtitles] start code: %02x%02x%02x%02x len %d\n", buf[i+0], buf[i+1], buf[i+2], buf[i+3], plen);
free(buf);
//.........这里部分代码省略.........
示例13: main
//.........这里部分代码省略.........
pcl::PointCloud<pcl::PointXYZRGB>::Ptr source_cloud_color(new pcl::PointCloud<pcl::PointXYZRGB>);
if (file_is_pcd)
{
if (pcl::io::loadPCDFile(argv[filenames[0]], *source_cloud_color) < 0)
{
std::cout << "Error loading colored point cloud " << argv[filenames[0]] << std::endl << std::endl;
show_usage(argv[0]);
return -1;
}
}
else
{
if (pcl::io::loadPLYFile(argv[filenames[0]], *source_cloud_color) < 0)
{
std::cout << "Error loading colored point cloud " << argv[filenames[0]] << std::endl << std::endl;
show_usage(argv[0]);
return -1;
}
}
//-- Print arguments to user
std::cout << "Selected arguments: " << std::endl
<< "\tRANSAC threshold: " << ransac_threshold << std::endl
<< "\tColor point threshold: " << hsv_s_threshold << std::endl
<< "\tColor region threshold: " << hsv_v_threshold << std::endl;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
//--------------------------------------------------------------------------------------------------------
//-- Program does actual work from here
//--------------------------------------------------------------------------------------------------------
Debug debug;
debug.setAutoShow(false);
debug.setEnabled(false);
debug.setEnabled(true);
debug.plotPointCloud<pcl::PointXYZRGB>(source_cloud_color, Debug::COLOR_ORIGINAL);
debug.show("Original with color");
//-- Downsample the dataset prior to plane detection (using a leaf size of 1cm)
//-----------------------------------------------------------------------------------
pcl::VoxelGrid<pcl::PointXYZ> voxel_grid;
voxel_grid.setInputCloud(source_cloud);
voxel_grid.setLeafSize(0.01f, 0.01f, 0.01f);
voxel_grid.filter(*cloud_filtered);
std::cout << "Initially PointCloud has: " << source_cloud->points.size () << " data points." << std::endl;
std::cout << "PointCloud after filtering has: " << cloud_filtered->points.size () << " data points." << std::endl;
//-- Detect all possible planes
//-----------------------------------------------------------------------------------
std::vector<pcl::ModelCoefficientsPtr> all_planes;
pcl::SACSegmentation<pcl::PointXYZ> ransac_segmentation;
ransac_segmentation.setOptimizeCoefficients(true);
ransac_segmentation.setModelType(pcl::SACMODEL_PLANE);
ransac_segmentation.setMethodType(pcl::SAC_RANSAC);
ransac_segmentation.setDistanceThreshold(ransac_threshold);
pcl::PointIndices::Ptr inliers(new pcl::PointIndices);
pcl::ModelCoefficients::Ptr current_plane(new pcl::ModelCoefficients);
int i=0, nr_points = (int) cloud_filtered->points.size();
while (cloud_filtered->points.size() > 0.3 * nr_points)
{
示例14: debug_ast
//.........这里部分代码省略.........
<< endl;
debug_ast(block->feature(), ind + " f) ");
debug_ast(block->value(), ind + " v) ");
} else if (dynamic_cast<Media_Query*>(node)) {
Media_Query* block = dynamic_cast<Media_Query*>(node);
cerr << ind << "Media_Query " << block
<< (block->is_negated() ? " [is_negated]": " -")
<< (block->is_restricted() ? " [is_restricted]": " -")
<< endl;
debug_ast(block->media_type(), ind + " ");
for(auto i : block->elements()) { debug_ast(i, ind + " ", env); }
} else if (dynamic_cast<Media_Block*>(node)) {
Media_Block* block = dynamic_cast<Media_Block*>(node);
cerr << ind << "Media_Block " << block << " " << block->tabs() << endl;
debug_ast(block->media_queries(), ind + " [email protected] ");
debug_ast(block->selector(), ind + " [email protected] ");
if (block->block()) for(auto i : block->block()->elements()) { debug_ast(i, ind + " ", env); }
} else if (dynamic_cast<Feature_Block*>(node)) {
Feature_Block* block = dynamic_cast<Feature_Block*>(node);
cerr << ind << "Feature_Block " << block << " " << block->tabs() << endl;
if (block->block()) for(auto i : block->block()->elements()) { debug_ast(i, ind + " ", env); }
} else if (dynamic_cast<Block*>(node)) {
Block* root_block = dynamic_cast<Block*>(node);
cerr << ind << "Block " << root_block << " " << root_block->tabs() << endl;
if (root_block->block()) for(auto i : root_block->block()->elements()) { debug_ast(i, ind + " ", env); }
} else if (dynamic_cast<Warning*>(node)) {
Warning* block = dynamic_cast<Warning*>(node);
cerr << ind << "Warning " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Error*>(node)) {
Error* block = dynamic_cast<Error*>(node);
cerr << ind << "Error " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Debug*>(node)) {
Debug* block = dynamic_cast<Debug*>(node);
cerr << ind << "Debug " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Comment*>(node)) {
Comment* block = dynamic_cast<Comment*>(node);
cerr << ind << "Comment " << block << " " << block->tabs() <<
" <" << prettyprint(block->pstate().token.ws_before()) << ">" << endl;
debug_ast(block->text(), ind + "// ", env);
} else if (dynamic_cast<If*>(node)) {
If* block = dynamic_cast<If*>(node);
cerr << ind << "If " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Return*>(node)) {
Return* block = dynamic_cast<Return*>(node);
cerr << ind << "Return " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Extension*>(node)) {
Extension* block = dynamic_cast<Extension*>(node);
cerr << ind << "Extension " << block << " " << block->tabs() << endl;
debug_ast(block->selector(), ind + "-> ", env);
} else if (dynamic_cast<Content*>(node)) {
Content* block = dynamic_cast<Content*>(node);
cerr << ind << "Content " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Import_Stub*>(node)) {
Import_Stub* block = dynamic_cast<Import_Stub*>(node);
cerr << ind << "Import_Stub " << block << " " << block->tabs() << endl;
} else if (dynamic_cast<Import*>(node)) {
Import* block = dynamic_cast<Import*>(node);
cerr << ind << "Import " << block << " " << block->tabs() << endl;
// vector<string> files_;
for (auto imp : block->urls()) debug_ast(imp, "@ ", env);
} else if (dynamic_cast<Assignment*>(node)) {
Assignment* block = dynamic_cast<Assignment*>(node);
cerr << ind << "Assignment " << block << " <<" << block->variable() << ">> " << block->tabs() << endl;
debug_ast(block->value(), ind + "=", env);
示例15: WXUNUSED
void AppMenuBar::OnDebug(wxCommandEvent& WXUNUSED(event)) {
Debug *debug = new Debug(wxT("debug"));
debug->nop();
}