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::ENUM> Enum;
 44typedef KeywordT<Token::EXTERN> Extern;
 45typedef KeywordT<Token::FLOAT> Float;
 46typedef KeywordT<Token::FOR> For;
 47typedef KeywordT<Token::FRIEND> Friend;
 48typedef KeywordT<Token::GOTO> Goto;
 49typedef KeywordT<Token::INLINE> Inline;
 50typedef KeywordT<Token::IF> If;
 51typedef KeywordT<Token::INT> Int;
 52typedef KeywordT<Token::LONG> Long;
 53typedef KeywordT<Token::MUTABLE> Mutable;
 54typedef KeywordT<Token::NAMESPACE> Namespace;
 55typedef KeywordT<Token::NEW> New;
 56typedef KeywordT<Token::OPERATOR> Operator;
 57typedef KeywordT<Token::PRIVATE> Private;
 58typedef KeywordT<Token::PROTECTED> Protected;
 59typedef KeywordT<Token::PUBLIC> Public;
 60typedef KeywordT<Token::REGISTER> Register;
 61typedef KeywordT<Token::RETURN> Return;
 62typedef KeywordT<Token::SHORT> Short;
 63typedef KeywordT<Token::SIGNED> Signed;
 64typedef KeywordT<Token::STATIC> Static;
 65typedef KeywordT<Token::STRUCT> Struct;
 66typedef KeywordT<Token::SWITCH> Switch;
 67typedef KeywordT<Token::TEMPLATE> Template;
 68typedef KeywordT<Token::THIS> This;
 69typedef KeywordT<Token::THROW> Throw;
 70typedef KeywordT<Token::TRY> Try;
 71typedef KeywordT<Token::TYPEDEF> Typedef;
 72typedef KeywordT<Token::TYPENAME> Typename;
 73typedef KeywordT<Token::TYPEOF> Typeof;
 74typedef KeywordT<Token::UNION> Union;
 75typedef KeywordT<Token::UNSIGNED> Unsigned;
 76typedef KeywordT<Token::USING> Using;
 77typedef KeywordT<Token::VIRTUAL> Virtual;
 78typedef KeywordT<Token::VOID> Void;
 79typedef KeywordT<Token::VOLATILE> Volatile;
 80typedef KeywordT<Token::WCHAR> WChar;
 81typedef KeywordT<Token::WHILE> While;
 82}
 83
 84class Brace;
 85class Block;
 86class ClassBody;
 87class Typedef;
 88class TemplateDecl;
 89class TemplateInstantiation;
 90class ExternTemplate;
 91class MetaclassDecl;
 92class LinkageSpec;
 93class NamespaceSpec;
 94class NamespaceAlias;
 95class UsingDirective;
 96class Declaration;
 97class FunctionDefinition;
 98class ParameterDeclaration;
 99class UsingDeclaration;
100class Declarator;
101class Name;
102class FstyleCastExpr;
103class ClassSpec;
104class EnumSpec;
105class TypeParameter;
106class AccessSpec;
107class AccessDecl;
108class UserAccessSpec;
109class IfStatement;
110class SwitchStatement;
111class WhileStatement;
112class DoStatement;
113class ForStatement;
114class TryStatement;
115class BreakStatement;
116class ContinueStatement;
117class ReturnStatement;
118class GotoStatement;
119class CaseStatement;
120class DefaultStatement;
121class LabelStatement;
122class ExprStatement;
123class Expression;
124class AssignExpr;
125class CondExpr;
126class InfixExpr;
127class PmExpr;
128class CastExpr;
129class UnaryExpr;
130class ThrowExpr;
131class SizeofExpr;
132class OffsetofExpr;
133class TypeidExpr;
134class TypeofExpr;
135class NewExpr;
136class DeleteExpr;
137class ArrayExpr;
138class FuncallExpr;
139class PostfixExpr;
140class DotMemberExpr;
141class ArrowMemberExpr;
142class ParenExpr;
143
144}
145}
146
147#endif