📄 driver.cpp
字号:
// file : Example/Introspection/Traversal/driver.cpp
// author : Boris Kolpackov <boris@kolpackov.net>
// copyright : Copyright (c) 2002-2003 Boris Kolpackov
// license : http://kolpackov.net/license.html
/* FUZZ: disable check_for_improper_main_declaration */
#include <iostream>
#include "SyntaxTree.hpp"
#include "Traversal.hpp"
int
main ()
{
using namespace SyntaxTree;
/*
Create a syntax tree that looks something like this:
scope
{
interface declaration;
scope
{
interface definition
{
decalartion;
};
};
};
*/
Scope s1;
InterfaceDecl i1;
s1.content_.push_back (&i1);
Scope s2;
s1.content_.push_back (&s2);
InterfaceDef i2;
s2.content_.push_back (&i2);
Declaration d1;
i2.content_.push_back (&d1);
SyntaxTree::Node* root = &s1;
// Now different ways of traversing this tree:
{
std::cout << "test #1" << std::endl;
struct Generator : Traversal::Declaration, Traversal::Scope
{
};
Generator g;
g.dispatch (root);
std::cout << std::endl;
}
{
std::cout << "test #2" << std::endl;
struct Generator : Traversal::Scope, Traversal::InterfaceDecl
{
};
Generator g;
g.dispatch (root);
std::cout << std::endl;
}
{
std::cout << "test #3" << std::endl;
struct Generator : Traversal::Scope, Traversal::InterfaceDef
{
};
Generator g;
g.dispatch (root);
std::cout << std::endl;
}
}
//$Id: driver.cpp 80826 2008-03-04 14:51:23Z wotte $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -