File: Synopsis/PTree/NodesFwd.hh
  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