⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 driver.cpp

📁 最新的版本ACE-5.6.8,刚从外文网上搬下,与大家分享.
💻 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 + -