1// 2// Copyright (C) 2005 Stefan Seefeld 3// All rights reserved. 4// Licensed to the public under the terms of the GNU LGPL (>= 2), 5// see the file COPYING for details. 6// 7#ifndef Synopsis_PTree_NodesFwd_hh_ 8#define Synopsis_PTree_NodesFwd_hh_ 9 10#include <Synopsis/Token.hh> 11 12namespace Synopsis 13{ 14namespace PTree 15{ 16 17class Node; 18class Atom; 19class List; 20class Literal; 21class CommentedAtom; 22class DupAtom; 23class Identifier; 24class Keyword; 25template <Token::Type> class KeywordT; 26 27namespace Kwd 28{ 29typedef KeywordT<Token::AUTO> Auto; 30typedef KeywordT<Token::BOOLEAN> Bool; 31typedef KeywordT<Token::BREAK> Break; 32typedef KeywordT<Token::CASE> Case; 33typedef KeywordT<Token::CATCH> Catch; 34typedef KeywordT<Token::CHAR> Char; 35typedef KeywordT<Token::CLASS> Class; 36typedef KeywordT<Token::CONTINUE> Continue; 37typedef KeywordT<Token::CONST> Const; 38typedef KeywordT<Token::DEFAULT> Default; 39typedef KeywordT<Token::DELETE> Delete; 40typedef KeywordT<Token::DOUBLE> Double; 41typedef KeywordT<Token::DO> Do; 42typedef KeywordT<Token::ELSE> Else; 43typedef KeywordT<Token::EXTERN> Extern; 44typedef KeywordT<Token::FLOAT> Float; 45typedef KeywordT<Token::FOR> For; 46typedef KeywordT<Token::FRIEND> Friend; 47typedef KeywordT<Token::GOTO> Goto; 48typedef KeywordT<Token::INLINE> Inline; 49typedef KeywordT<Token::IF> If; 50typedef KeywordT<Token::INT> Int; 51typedef KeywordT<Token::LONG> Long; 52typedef KeywordT<Token::MUTABLE> Mutable; 53typedef KeywordT<Token::NAMESPACE> Namespace; 54typedef KeywordT<Token::NEW> New; 55typedef KeywordT<Token::OPERATOR> Operator; 56typedef KeywordT<Token::PRIVATE> Private; 57typedef KeywordT<Token::PROTECTED> Protected; 58typedef KeywordT<Token::PUBLIC> Public; 59typedef KeywordT<Token::REGISTER> Register; 60typedef KeywordT<Token::RETURN> Return; 61typedef KeywordT<Token::SHORT> Short; 62typedef KeywordT<Token::SIGNED> Signed; 63typedef KeywordT<Token::STATIC> Static; 64typedef KeywordT<Token::STRUCT> Struct; 65typedef KeywordT<Token::SWITCH> Switch; 66typedef KeywordT<Token::TEMPLATE> Template; 67typedef KeywordT<Token::THIS> This; 68typedef KeywordT<Token::THROW> Throw; 69typedef KeywordT<Token::TRY> Try; 70typedef KeywordT<Token::TYPEDEF> Typedef; 71typedef KeywordT<Token::TYPENAME> Typename; 72typedef KeywordT<Token::UNION> Union; 73typedef KeywordT<Token::UNSIGNED> Unsigned; 74typedef KeywordT<Token::USING> Using; 75typedef KeywordT<Token::VIRTUAL> Virtual; 76typedef KeywordT<Token::VOID> Void; 77typedef KeywordT<Token::VOLATILE> Volatile; 78typedef KeywordT<Token::WCHAR> WChar; 79typedef KeywordT<Token::WHILE> While; 80} 81 82class Brace; 83class Block; 84class ClassBody; 85class Typedef; 86class TemplateDecl; 87class TemplateInstantiation; 88class ExternTemplate; 89class MetaclassDecl; 90class LinkageSpec; 91class NamespaceSpec; 92class NamespaceAlias; 93class UsingDirective; 94class Declaration; 95class FunctionDefinition; 96class ParameterDeclaration; 97class UsingDeclaration; 98class Declarator; 99class Name; 100class FstyleCastExpr; 101class ClassSpec; 102class EnumSpec; 103class TypeParameter; 104class AccessSpec; 105class AccessDecl; 106class UserAccessSpec; 107class IfStatement; 108class SwitchStatement; 109class WhileStatement; 110class DoStatement; 111class ForStatement; 112class TryStatement; 113class BreakStatement; 114class ContinueStatement; 115class ReturnStatement; 116class GotoStatement; 117class CaseStatement; 118class DefaultStatement; 119class LabelStatement; 120class ExprStatement; 121class Expression; 122class AssignExpr; 123class CondExpr; 124class InfixExpr; 125class PmExpr; 126class CastExpr; 127class UnaryExpr; 128class ThrowExpr; 129class SizeofExpr; 130class OffsetofExpr; 131class TypeidExpr; 132class TypeofExpr; 133class NewExpr; 134class DeleteExpr; 135class ArrayExpr; 136class FuncallExpr; 137class PostfixExpr; 138class DotMemberExpr; 139class ArrowMemberExpr; 140class ParenExpr; 141 142} 143} 144 145#endif
synopsis (version 0.10)