Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Ptree Class Reference

#include <ptree-core.h>

Inheritance diagram for Ptree:

Inheritance graph
[legend]
Collaboration diagram for Ptree:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual bool IsLeaf ()=0
bool Eq (char)
bool Eq (char *)
bool Eq (const char *, int)
bool Eq (Ptree *p)
void Display ()
void Display2 (ostream &)
virtual void Print (ostream &, int, int)=0
int Write (ostream &)
virtual int Write (ostream &, int)=0
void PrintIndent (ostream &, int)
char * ToString ()
virtual void WritePS (ProgramString &)=0
char * GetPosition ()
int GetLength ()
Ptree * Car ()
Ptree * Cdr ()
Ptree * Cadr ()
Ptree * Cddr ()
Ptree * Ca_ar ()
void SetCar (Ptree *p)
void SetCdr (Ptree *p)
char * LeftMost ()
char * RightMost ()
virtual int What ()
bool IsA (int)
bool IsA (int, int)
bool IsA (int, int, int)
virtual Ptree * Translate (Walker *)
virtual void Typeof (Walker *, TypeInfo &)
virtual char * GetEncodedType ()
virtual char * GetEncodedName ()
Ptree * Last ()
Ptree * First ()
Ptree * Rest ()
Ptree * Second ()
Ptree * Third ()
Ptree * Nth (int n)
int Length ()
Ptree * ListTail (int n)
bool Reify (unsigned int &)
bool Reify (char *&)

Static Public Methods

bool Eq (Ptree *, char)
bool Eq (Ptree *, char *)
bool Eq (Ptree *, char *, int)
bool Eq (Ptree *, Ptree *)
bool Equiv (Ptree *, Ptree *)
bool Equal (Ptree *, Ptree *)
Ptree * Last (Ptree *)
Ptree * First (Ptree *)
Ptree * Rest (Ptree *)
Ptree * Second (Ptree *)
Ptree * Third (Ptree *)
Ptree * Nth (Ptree *, int)
int Length (Ptree *)
Ptree * ListTail (Ptree *, int)
Ptree * Cons (Ptree *, Ptree *)
Ptree * List ()
Ptree * List (Ptree *)
Ptree * List (Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * List (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * CopyList (Ptree *)
Ptree * Append (Ptree *, Ptree *)
Ptree * ReplaceAll (Ptree *, Ptree *, Ptree *)
Ptree * Subst (Ptree *, Ptree *, Ptree *)
Ptree * Subst (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * Subst (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * ShallowSubst (Ptree *, Ptree *, Ptree *)
Ptree * ShallowSubst (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * ShallowSubst (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * ShallowSubst (Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *, Ptree *)
Ptree * SubstSublist (Ptree *, Ptree *, Ptree *)
Ptree * Snoc (Ptree *, Ptree *)
Ptree * Nconc (Ptree *, Ptree *)
Ptree * Nconc (Ptree *, Ptree *, Ptree *)
bool Match (Ptree *, char *,...)
Ptree * Make (const char *pat,...)
Ptree * MakeStatement (const char *pat,...)
Ptree * GenSym ()
Ptree * qMake (char *)
Ptree * qMakeStatement (char *)
char * IntegerToString (sint, int &)

Static Public Attributes

bool show_encoded = 0

Protected Attributes

union {
   struct {
      Ptree *   child
      Ptree *   next
   }   nonleaf
   struct {
      char *   position
      int   length
   }   leaf
} data

Static Private Methods

char * MatchPat (Ptree *, char *)
char * MatchList (Ptree *, char *)
char * MatchWord (Ptree *, char *)

Friends

class NonLeaf

Member Function Documentation

Ptree * Ptree::Append (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 497 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and SetCdr().

Referenced by Template_spec::add_code(), Annotator::add_output_list(), Class::AppendBaseClass(), CopyList(), and ClassWalker::MakeMemberDeclarator().

Ptree * Ptree::Ca_ar (    ) 
 

Definition at line 164 of file ptree-core.cc.

References Car(), IsLeaf(), and nil.

Referenced by Parser::ErrorMessage(), and Parser::WarningMessage().

Ptree* Ptree::Cadr (    )  [inline]
 

Definition at line 55 of file ptree-core.h.

References Car().

Referenced by Member::Arguments(), Walker::GetArgDeclList(), PtreeUsing::isNamespace(), Walker::TranslateArgDeclList2(), Walker::TranslateDefault(), Walker::TranslateLabel(), Walker::TranslateNew(), Walker::TranslateNewDeclarator(), Walker::TranslateNewDeclarator2(), and PtreeBrace::Write().

Ptree* Ptree::Car (    )  [inline]
 

Definition at line 53 of file ptree-core.h.

Referenced by Template_thing::add_args_from_ptree(), Expr_annotator::add_parms_from_arglist(), Append(), PtreeHead::Append(), MemberList::AppendBaseClass(), MemberList::AppendThisClass(), Member::Arguments(), Ca_ar(), Cadr(), MemberList::CheckHeader(), ClassWalker::CheckMemberEquiv(), ClassWalker::ConstructClass(), convert_decl_to_expr(), Encoding::CvQualify(), Template_visitor::declare_name(), Simple_declaration_reader::declare_variable(), Expr_annotator::do_fstyle_cast(), do_function(), Equal(), Equiv(), find_leaf(), Walker::FindDeclarator(), First(), flatten_ptree(), TypeInfo::FullTypeName(), Init_reader::get(), Init_reader::get_nondestructive(), Symbol_name::get_operator_name(), Walker::GetArgDeclList(), Member::GetUserArgumentModifiers(), Symbol_name::init_name(), Class::InitializeInstance(), Init_reader::is_compound(), Class::IsImmediateSubclassOf(), Member::IsInlineFuncImpl(), Member::IsPureVirtual(), Class::IsSubclassOf(), LeftMost(), Symbol_name::lookup_symbol_in_scope(), Walker::LookupBaseMetaclass(), Walker::LookupMetaclass(), MemberList::Make(), ClassWalker::MakeMemberDeclarator(), MatchList(), Member::MemberInitializers(), Program::MinimumSubst2(), PtreeIter::Next(), Nth(), Class::NthBaseClass(), Class::NthBaseClassName(), Walker::NthDeclarator(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), Declaration_reader::parse_declarator_list(), parse_enum(), parse_specifiers(), parse_template_arg_list(), PtreeIter::Pop(), PtreeBrace::Print(), print_annotated_tree(), process_base_classes(), process_initializers(), Type_reader::read_type(), Walker::RecordBaseclassEnv(), ClassWalker::RecordMemberDeclaration(), ClassWalker::RecordMembers(), Environment::RecordTypedefName(), Ptree_visitor< Returntype >::recurse(), ReplaceAll(), Parser::rIntegralDeclaration(), Parser::rOtherDeclaration(), Second(), ShallowSubst(), Walker::StripCvFromIntegralType(), Subst(), SubstSublist(), Symbol_name::Symbol_name(), Third(), PtreeIter::This(), Walker::TranslateArgDeclList2(), Walker::TranslateArguments(), Walker::TranslateArray(), ClassWalker::TranslateArray(), Walker::TranslateArrowMember(), ClassWalker::TranslateArrowMember(), Walker::TranslateAssignInitializer(), ClassWalker::TranslateAssignInitializer(), Walker::TranslateBlock(), ClassWalker::TranslateBlock(), Walker::TranslateBrace(), Walker::TranslateCase(), Walker::TranslateClassBody(), ClassBodyWalker::TranslateClassBody(), Walker::TranslateClassSpec(), ClassWalker::TranslateClassSpec(), Walker::TranslateDeclarator(), Walker::TranslateDeclarators(), Walker::TranslateDefault(), Walker::TranslateDelete(), ClassWalker::TranslateDelete(), Walker::TranslateDo(), Walker::TranslateDotMember(), ClassWalker::TranslateDotMember(), Walker::TranslateFor(), Walker::TranslateFstyleCast(), Walker::TranslateFuncall(), ClassWalker::TranslateFuncall(), Walker::TranslateIf(), Class::TranslateInitializer(), Walker::TranslateLabel(), Walker::TranslateNew(), Walker::TranslateNew2(), ClassWalker::TranslateNew2(), Walker::TranslateNew3(), Walker::TranslateNewDeclarator(), Walker::TranslateNewDeclarator2(), Walker::TranslateParen(), Walker::TranslatePostfix(), ClassWalker::TranslatePostfix(), Walker::TranslateReturn(), ClassWalker::TranslateStorageSpecifiers2(), Walker::TranslateSwitch(), Walker::TranslateTemplateClass(), Walker::TranslateTemplateInstantiation(), Walker::TranslateTry(), ClassWalker::TranslateUnary(), Walker::TranslateWhile(), Walker::TypeofArray(), Walker::TypeofArrowMember(), Walker::TypeofDotMember(), Walker::TypeofFuncall(), Walker::TypeofNew(), Walker::TypeofPostfix(), Annotator::visit_block(), Annotator::visit_brace(), Translate_visitor::visit_funcall(), Translate_visitor::visit_function(), Translate_visitor::visit_name_declaration(), Template_visitor::visit_name_declaration(), Annotator::visit_name_declaration(), Expr_annotator::visit_new(), Annotator::visit_nonleaf(), Annotator::visit_stmt_or_block(), Annotator::visit_templatedecl(), Template_visitor::visit_type_declaration(), Annotator::visit_type_declaration(), Walker::WhichDeclarator(), PtreeBrace::Write(), NonLeaf::Write(), and NonLeaf::WritePS().

Ptree* Ptree::Cddr (    )  [inline]
 

Definition at line 56 of file ptree-core.h.

References Cdr().

Referenced by Member::Arguments(), Walker::TranslateArgDeclList2(), and Walker::TranslateTry().

Ptree* Ptree::Cdr (    )  [inline]
 

Definition at line 54 of file ptree-core.h.

Referenced by Template_thing::add_args_from_ptree(), Expr_annotator::add_parms_from_arglist(), Append(), MemberList::AppendBaseClass(), MemberList::AppendThisClass(), Member::Arguments(), Cddr(), MemberList::CheckHeader(), ClassWalker::CheckMemberEquiv(), convert_decl_to_expr(), Encoding::CvQualify(), Template_visitor::declare_name(), do_function(), Equal(), Equiv(), find_leaf(), Walker::FindDeclarator(), flatten_ptree(), Init_reader::get(), Walker::GetArgDeclList(), Class::InitializeInstance(), Class::IsImmediateSubclassOf(), Member::IsInlineFuncImpl(), Class::IsSubclassOf(), Last(), LeftMost(), Length(), ListTail(), Walker::LookupBaseMetaclass(), MemberList::Make(), ClassWalker::MakeMemberDeclarator(), MatchList(), Program::MinimumSubst2(), PtreeIter::Next(), Nth(), Class::NthBaseClass(), Class::NthBaseClassName(), Walker::NthDeclarator(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), Declaration_reader::parse_declarator_list(), parse_enum(), parse_specifiers(), parse_template_arg_list(), PtreeIter::Pop(), PtreeBrace::Print(), print_annotated_tree(), process_base_classes(), process_initializers(), Type_reader::read_type(), Walker::RecordBaseclassEnv(), ClassWalker::RecordMemberDeclaration(), ClassWalker::RecordMembers(), Ptree_visitor< Returntype >::recurse(), ReplaceAll(), Rest(), Second(), ShallowSubst(), Subst(), SubstSublist(), Symbol_name::Symbol_name(), Third(), Walker::TranslateArgDeclList2(), Walker::TranslateArguments(), Walker::TranslateArray(), ClassWalker::TranslateArray(), Walker::TranslateArrowMember(), ClassWalker::TranslateArrowMember(), Walker::TranslateBlock(), ClassWalker::TranslateBlock(), Walker::TranslateBrace(), Walker::TranslateCase(), Walker::TranslateCast(), Walker::TranslateClassBody(), ClassBodyWalker::TranslateClassBody(), Walker::TranslateClassSpec(), ClassWalker::TranslateClassSpec(), Walker::TranslateDeclaration(), Walker::TranslateDeclarator(), Walker::TranslateDeclarators(), Walker::TranslateDelete(), ClassWalker::TranslateDelete(), Walker::TranslateDo(), Walker::TranslateDotMember(), ClassWalker::TranslateDotMember(), Walker::TranslateExprStatement(), Walker::TranslateFor(), Walker::TranslateFstyleCast(), Walker::TranslateFuncall(), ClassWalker::TranslateFuncall(), Walker::TranslateIf(), Walker::TranslateNew(), Walker::TranslateNew2(), ClassWalker::TranslateNew2(), Walker::TranslateNewDeclarator(), Walker::TranslateNewDeclarator2(), Walker::TranslatePostfix(), ClassWalker::TranslatePostfix(), Walker::TranslateReturn(), Walker::TranslateSizeof(), ClassWalker::TranslateStorageSpecifiers2(), Walker::TranslateSwitch(), Walker::TranslateTemplateClass(), Walker::TranslateTemplateInstantiation(), Walker::TranslateTry(), Walker::TranslateWhile(), Walker::TypeofNew(), Annotator::visit_block(), Annotator::visit_brace(), Expr_annotator::visit_delete(), Annotator::visit_exprstatement(), Translate_visitor::visit_name_declaration(), Template_visitor::visit_name_declaration(), Expr_annotator::visit_new(), Annotator::visit_nonleaf(), Annotator::visit_stmt_or_block(), Walker::WhichDeclarator(), PtreeBrace::Write(), NonLeaf::Write(), and NonLeaf::WritePS().

Ptree * Ptree::Cons (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 437 of file ptree-core.cc.

References NonLeaf.

Referenced by PtreeArray::All(), Append(), Class::AppendBaseClass(), Member::Arguments(), ClassWalker::ConstructClass(), ClassWalker::ConstructMember(), convert_comma_expr_to_list(), TypeInfo::GetQualifiedName2(), Encoding::MakePtree(), Parser::rCastOperatorName(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), Parser::rPostfixExpr(), Parser::rPrimaryExpr(), Parser::rTempArgDeclaration(), Parser::rTypeSpecifier(), ShallowSubst(), Snoc(), Subst(), SubstSublist(), Walker::TranslateArgDeclList2(), ClassWalker::TranslateClassSpec(), Class::TranslateNew(), ClassWalker::TranslateStorageSpecifiers2(), and Walker::TranslateTry().

Ptree * Ptree::CopyList (  Ptree *    )  [static]
 

Definition at line 490 of file ptree-core.cc.

References Append(), and nil.

void Ptree::Display (    ) 
 

Definition at line 79 of file ptree-core.cc.

References Display2().

Referenced by convert_decl_to_expr().

void Ptree::Display2 (  ostream &    ) 
 

Definition at line 84 of file ptree-core.cc.

References nil, and Print().

Referenced by bogus_ptree_error(), Display(), Source::dump(), Init_reader::dump(), and ParseOpencxx().

bool Ptree::Eq (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 281 of file ptree-core.cc.

References FALSE, GetLength(), GetPosition(), IsLeaf(), nil, and TRUE.

bool Ptree::Eq (  Ptree *   ,
char *   ,
int   
)  [static]
 

Definition at line 276 of file ptree-core.cc.

References Eq().

bool Ptree::Eq (  Ptree *   ,
char *   
)  [static]
 

Definition at line 271 of file ptree-core.cc.

References Eq().

bool Ptree::Eq (  Ptree *   ,
char   
)  [static]
 

Definition at line 266 of file ptree-core.cc.

References Eq().

bool Ptree::Eq (  Ptree *    p )  [inline]
 

Definition at line 38 of file ptree-core.h.

bool Ptree::Eq (  const char *   ,
int   
) 
 

Definition at line 146 of file ptree-core.cc.

References FALSE, GetLength(), GetPosition(), IsLeaf(), nil, and TRUE.

bool Ptree::Eq (  char *    ) 
 

Definition at line 128 of file ptree-core.cc.

References FALSE, GetLength(), GetPosition(), IsLeaf(), and nil.

bool Ptree::Eq (  char    ) 
 

Definition at line 120 of file ptree-core.cc.

References FALSE, GetLength(), GetPosition(), IsLeaf(), and nil.

Referenced by Template_thing::add_args_from_ptree(), opcxx_ListOfMetaclass::AlreadyRecorded(), MemberList::Append(), convert_decl_to_expr(), Template_visitor::declare_name(), Simple_declaration_reader::declare_variable(), do_function(), Eq(), Equal(), Equiv(), expect_ptree(), Symbol_name::get_operator_name(), Walker::GetArgDeclList(), Walker::GetClassTemplateSpec(), Symbol_name::init_name(), Symbol_name::is_qualified_name(), Metaclass::IsBuiltinMetaclass(), Member::IsConstructor(), Class::IsImmediateSubclassOf(), Member::IsPureVirtual(), Class::IsSubclassOf(), Environment::LookupClasskeyword(), ClassWalker::LookupClientData(), Environment::LookupMetaclass(), Environment::LookupNamespace0(), ClassWalker::MakeMemberDeclarator(), Member::MemberInitializers(), opcxx_ListOfMetaclass::New(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), parse_specifier(), Expr_annotator::process_binary_operator(), Init_handler::process_initializer(), Expr_annotator::process_unary_operator(), Metaclass::ProduceInitFile(), Type_reader::read_type(), ReplaceAll(), Parser::rTemplateDecl(), Symbol_name::Symbol_name(), ClassWalker::TranslateAssign(), Walker::TranslateDeclarators(), ClassWalker::TranslateFuncall(), Class::TranslateInitializer(), QuoteClass::TranslateMemberCall(), Class::TranslateMemberCall(), Class::TranslateMemberRead(), Class::TranslateMemberWrite(), Walker::TranslateNew(), Class::TranslateNew(), ClassWalker::TranslateNew2(), Walker::TranslateNew3(), Walker::TranslateNewDeclarator(), Walker::TranslateNewDeclarator2(), ClassWalker::TranslatePostfix(), Class::TranslatePostfixOnMember(), Walker::TranslateSizeof(), ClassWalker::TranslateUnary(), Class::TranslateUnaryOnMember(), ClassWalker::TranslateUserStatement(), Walker::TypeofNew(), Walker::TypeofUnary(), Expr_annotator::visit_assign(), Expr_annotator::visit_cast(), Expr_annotator::visit_delete(), Expr_annotator::visit_funcall(), Expr_annotator::visit_name(), Template_visitor::visit_name_declaration(), Annotator::visit_name_declaration(), Expr_annotator::visit_new(), Expr_annotator::visit_pm(), Expr_annotator::visit_postfix(), Template_visitor::visit_type_declaration(), Annotator::visit_type_declaration(), Expr_annotator::visit_unary(), and Walker::WhichDeclarator().

bool Ptree::Equal (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 329 of file ptree-core.cc.

References Car(), Cdr(), Eq(), FALSE, IsLeaf(), nil, and TRUE.

bool Ptree::Equiv (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 308 of file ptree-core.cc.

References Car(), Cdr(), Eq(), FALSE, IsLeaf(), nil, and TRUE.

Referenced by ClassWalker::CheckEquiv(), ClassWalker::CheckMemberEquiv(), and ClassWalker::TranslateUnary().

Ptree * Ptree::First (  Ptree *    )  [static]
 

Definition at line 353 of file ptree-core.cc.

References Car(), and nil.

Ptree* Ptree::First (    )  [inline]
 

Definition at line 76 of file ptree-core.h.

Referenced by ClassWalker::ConstructMember(), convert_comma_expr_to_list(), Template_visitor::declare_class(), Template_visitor::declare_name(), do_function(), TypeInfo::FullTypeName(), Expr_annotator::get_cast_expr(), Expr_annotator::get_cast_type(), Symbol_name::init_name(), Symbol_name::is_qualified_name(), make_comma_expr(), Init_handler::make_constructor_call(), Annotated_funcall_maker::make_funcall(), Walker::MakeTemplateInstantiationMetaobject(), parse_class(), Declaration_reader::parse_declarator_internal(), parse_enum(), process_base_classes(), Init_handler::process_initializer(), process_initializers(), Enum_symbol::process_value(), Parser::rTemplateDecl(), Member::SetName(), Class::StripClassQualifier(), Walker::TranslateArgDeclList2(), Walker::TranslateAssign(), ClassWalker::TranslateAssign(), Walker::TranslateBlock(), ClassWalker::TranslateBlock(), Walker::TranslateBrace(), Walker::TranslateCast(), Walker::TranslateClassBody(), ClassBodyWalker::TranslateClassBody(), Walker::TranslateComma(), Walker::TranslateCond(), Walker::TranslateDeclaration(), Walker::TranslateExprStatement(), ClassWalker::TranslateFuncall(), ClassWalker::TranslateFunctionBody(), Walker::TranslateFunctionImplementation(), ClassWalker::TranslateFunctionImplementation(), ClassBodyWalker::TranslateFunctionImplementation(), Walker::TranslateInfix(), ClassWalker::TranslateInfix(), Walker::TranslateLinkageSpec(), QuoteClass::TranslateMemberCall(), Walker::TranslateNamespaceSpec(), Walker::TranslatePm(), ClassWalker::TranslatePostfix(), Walker::TranslateSizeof(), ClassWalker::TranslateStaticUserStatement(), ClassWalker::TranslateTemplateFunction(), Walker::TranslateTemplateInstantiation(), Walker::TranslateThrow(), Walker::TranslateTypedef(), ClassBodyWalker::TranslateTypedef(), Walker::TranslateUnary(), ClassWalker::TranslateUnary(), ClassWalker::TranslateUserStatement(), Walker::TypeofAssign(), Walker::TypeofInfix(), Walker::TypeofUnary(), Expr_annotator::visit_array(), Expr_annotator::visit_arrowmember(), Translate_visitor::visit_assign(), Expr_annotator::visit_assign(), Annotator::visit_block(), Annotator::visit_brace(), Annotator::visit_break(), Annotator::visit_case(), Expr_annotator::visit_cast(), Expr_annotator::visit_comma(), Expr_annotator::visit_cond(), Annotator::visit_continue(), Ptree_program_visitor< Returntype >::visit_declaration(), Annotator::visit_default(), Expr_annotator::visit_delete(), Annotator::visit_do(), Expr_annotator::visit_dotmember(), Translate_visitor::visit_exprstatement(), Annotator::visit_exprstatement(), Annotator::visit_for(), Expr_annotator::visit_fstylecastexpr(), Expr_annotator::visit_funcall(), Translate_visitor::visit_function(), Annotator::visit_goto(), Annotator::visit_if(), Translate_visitor::visit_infix(), Expr_annotator::visit_infix(), Annotator::visit_label(), Annotator::visit_linkagespec(), Translate_visitor::visit_name_declaration(), Annotator::visit_namespacespec(), Expr_annotator::visit_new(), Expr_annotator::visit_paren(), Expr_annotator::visit_pm(), Translate_visitor::visit_postfix(), Expr_annotator::visit_postfix(), Annotator::visit_return(), Expr_annotator::visit_sizeof(), Annotator::visit_switch(), Expr_annotator::visit_throw(), Expr_annotator::visit_unary(), and Annotator::visit_while().

Ptree * Ptree::GenSym (    )  [static]
 

Definition at line 218 of file pattern.cc.

References IntegerToString(), and uint.

Referenced by Metaclass::TranslateClass().

char * Ptree::GetEncodedName (    )  [virtual]
 

Reimplemented in PtreeUsing, PtreeDeclarator, PtreeName, PtreeClassSpec, and PtreeEnumSpec.

Definition at line 258 of file ptree-core.cc.

References nil.

Referenced by MemberList::Append(), ClassWalker::ConstructClass(), Environment::DontRecordDeclarator(), Member::IsConstructor(), Member::IsDestructor(), Environment::IsMember(), MemberList::Lookup(), Environment::Lookup(), Environment::LookupClassMetaobject(), Environment::LookupTop(), Walker::MatchedDeclarator(), Member::Name(), NonLeaf::PrintWithEncodeds(), Environment::RecordDeclarator(), Environment::RecordEnumName(), Environment::RecordTemplateClass(), Environment::RecordTemplateFunction(), Environment::RecordTypedefName(), Environment::RecordUsing(), Environment::RecordUsingNamespace(), Member::SetName(), Walker::TranslateClassSpec(), ClassWalker::TranslateClassSpec(), and Walker::WhichDeclarator().

char * Ptree::GetEncodedType (    )  [virtual]
 

Reimplemented in PtreeDeclarator, and PtreeFstyleCastExpr.

Definition at line 253 of file ptree-core.cc.

References nil.

Referenced by MemberList::Append(), Member::Find(), Walker::MatchedDeclarator(), NonLeaf::PrintWithEncodeds(), Environment::RecordDeclarator(), Environment::RecordTypedefName(), Member::Signature(), Walker::TranslateFstyleCast(), ClassWalker::TranslateNew2(), Walker::TypeofCast(), Walker::TypeofFstyleCast(), and Walker::TypeofNew().

int Ptree::GetLength (    )  [inline]
 

Definition at line 51 of file ptree-core.h.

Referenced by PtreeHead::Append(), convert_node_to_name(), Encoding::Destructor(), Eq(), get_string_literal(), Metaclass::Load(), MemberList::Lookup(), Environment::Lookup(), Environment::LookupClassMetaobject(), Environment::LookupNamespace0(), Environment::LookupTop(), Make(), MakeStatement(), MatchWord(), Enum_symbol::process_value(), Metaclass::ProduceInitFile(), Environment::RecordEnumName(), Lex::Reify(), RightMost(), and Encoding::SimpleName().

char* Ptree::GetPosition (    )  [inline]
 

Definition at line 50 of file ptree-core.h.

Referenced by PtreeHead::Append(), convert_node_to_name(), Encoding::Destructor(), Eq(), Parser::ErrorMessage(), find_leaf(), get_string_literal(), Environment::GetLineNumber(), LeftMost(), Metaclass::Load(), MemberList::Lookup(), Environment::Lookup(), Environment::LookupClassMetaobject(), Environment::LookupNamespace0(), Environment::LookupTop(), Make(), MakeStatement(), MatchWord(), Enum_symbol::process_value(), Metaclass::ProduceInitFile(), Environment::RecordEnumName(), Lex::Reify(), RightMost(), Encoding::SimpleName(), and Parser::WarningMessage().

char * Ptree::IntegerToString (  sint   ,
int &   
)  [static]
 

Definition at line 406 of file pattern.cc.

References FALSE, length, sint, and TRUE.

Referenced by GenSym(), Make(), MakeStatement(), and PtreeHead::operator+().

bool Ptree::IsA (  int   ,
int   ,
int   
) 
 

Definition at line 233 of file ptree-core.cc.

References FALSE, nil, and What().

bool Ptree::IsA (  int   ,
int   
) 
 

Definition at line 223 of file ptree-core.cc.

References FALSE, nil, and What().

bool Ptree::IsA (  int    ) 
 

Definition at line 215 of file ptree-core.cc.

References FALSE, nil, and What().

Referenced by MemberList::AppendBaseClass(), MemberList::AppendThisClass(), Member::Arguments(), MemberList::CheckHeader(), Class::Comments(), Member::Comments(), ClassWalker::ConstructMember(), convert_decl_to_expr(), Walker::FindDeclarator(), Member::FunctionBody(), Walker::GetClassOrEnumSpec(), Walker::GetClassTemplateSpec(), Member::GetUserArgumentModifiers(), Member::IsInlineFuncImpl(), Walker::NthDeclarator(), ptree_is_name(), ClassWalker::RecordMemberDeclaration(), Environment::RecordTemplateFunction(), Parser::rExprStatement(), Walker::SetDeclaratorComments(), Walker::StripCvFromIntegralType(), Walker::TranslateArgDeclList2(), ClassWalker::TranslateAssign(), Walker::TranslateDeclaration(), Walker::TranslateDeclarators(), ClassWalker::TranslateFuncall(), Walker::TranslateNewDeclarator(), ClassWalker::TranslatePostfix(), ClassWalker::TranslateStaticUserStatement(), ClassWalker::TranslateStorageSpecifiers2(), Walker::TranslateTemplateDecl(), ClassWalker::TranslateUnary(), ClassWalker::TranslateUserStatement(), and Walker::WhichDeclarator().

virtual bool Ptree::IsLeaf (    )  [pure virtual]
 

Implemented in Leaf, and NonLeaf.

Referenced by Template_thing::add_args_from_ptree(), Template_spec::add_code(), Annotator::add_output_list(), Append(), PtreeHead::Append(), Member::Arguments(), Ca_ar(), Class::ChangeBaseClasses(), ClassWalker::CheckMemberEquiv(), convert_decl_to_expr(), convert_node_to_name(), Encoding::CvQualify(), Template_visitor::declare_class(), Template_visitor::declare_name(), Typedef_declaration_reader::declare_variable(), Eq(), Equal(), Equiv(), find_leaf(), Walker::FindDeclarator(), flatten_ptree(), Expr_annotator::get_cast_expr(), Expr_annotator::get_cast_type(), Symbol_name::get_operator_name(), get_string_literal(), Walker::GetArgDeclList(), Member::GetUserArgumentModifiers(), Symbol_name::init_name(), Class::InitializeInstance(), Class_scope::is_constructor(), Symbol_name::is_qualified_name(), Environment::IsMember(), LeftMost(), Length(), MemberList::Lookup(), Environment::Lookup(), Symbol_name::lookup_symbol_in_scope(), Environment::LookupClassMetaobject(), Environment::LookupTop(), Make(), ClassWalker::MakeMemberDeclarator(), MakeStatement(), MatchPat(), Member::MemberInitializers(), Program::MinimumSubst2(), Walker::NthDeclarator(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), parse_enum(), parse_specifiers(), PtreeBrace::Print(), NonLeaf::Print(), print_annotated_tree(), process_base_classes(), Init_handler::process_brace(), Enum_symbol::process_value(), Parser::rBaseSpecifiers(), Type_reader::read_type(), Environment::RecordEnumName(), ClassWalker::RecordMemberDeclaration(), Ptree_visitor< Returntype >::recurse(), Lex::Reify(), ReplaceAll(), RightMost(), Parser::rMemberInit(), Parser::rVarName(), ShallowSubst(), Class::StripClassQualifier(), Walker::StripCvFromIntegralType(), Subst(), Walker::TranslateArgDeclList2(), Walker::TranslateClassSpec(), Walker::TranslateDeclaration(), Walker::TranslateDeclarators(), ClassWalker::TranslateFunctionBody(), Walker::TranslateNew(), Walker::TranslateNewDeclarator(), Ptree_visitor< Returntype >::TranslatePtree(), Walker::TranslateTemplateClass(), Walker::TranslateTemplateInstantiation(), Walker::TypeofNew(), Ptree_program_visitor< Returntype >::visit_declaration(), Expr_annotator::visit_funcall(), Translate_visitor::visit_name(), Expr_annotator::visit_name(), Translate_visitor::visit_name_declaration(), Expr_annotator::visit_sizeof(), Expr_annotator::visit_unary(), Walker::WhichDeclarator(), PtreeBrace::Write(), NonLeaf::Write(), and NonLeaf::WritePS().

Ptree * Ptree::Last (  Ptree *    )  [static]
 

Definition at line 341 of file ptree-core.cc.

References Cdr(), and nil.

Ptree* Ptree::Last (    )  [inline]
 

Definition at line 75 of file ptree-core.h.

Referenced by PtreeHead::Append(), Class::IsImmediateSubclassOf(), Member::IsPureVirtual(), Class::IsSubclassOf(), Walker::LookupBaseMetaclass(), ClassWalker::MakeMemberDeclarator(), Member::MemberInitializers(), Nconc(), Class::NthBaseClass(), Class::NthBaseClassName(), Walker::RecordBaseclassEnv(), Member::SetName(), Class::StripClassQualifier(), Walker::TranslateDeclarators(), Walker::TranslateDelete(), and ClassWalker::TranslateDelete().

char * Ptree::LeftMost (    ) 
 

Definition at line 173 of file ptree-core.cc.

References Car(), Cdr(), GetPosition(), IsLeaf(), and nil.

Referenced by Program::Insert(), and Program::Subst().

int Ptree::Length (  Ptree *    )  [static]
 

Definition at line 411 of file ptree-core.cc.

References Cdr(), IsLeaf(), and nil.

int Ptree::Length (    )  [inline]
 

Definition at line 81 of file ptree-core.h.

Referenced by PtreeHead::Append(), Template_visitor::declare_class(), Expr_annotator::do_fstyle_cast(), do_function(), Expr_annotator::get_cast_expr(), Expr_annotator::get_cast_type(), Symbol_name::init_name(), Symbol_name::is_qualified_name(), Symbol_name::lookup_symbol_in_scope(), Init_handler::make_constructor_call(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), RightMost(), Parser::rIntegralDeclaration(), Parser::rOtherDeclaration(), Parser::rTemplateDecl(), Walker::TranslateClassSpec(), Walker::TranslateDeclarators(), ClassWalker::TranslateDelete(), Walker::TranslateReturn(), Walker::TranslateTemplateClass(), ClassWalker::TranslateUnary(), Annotator::visit_if(), Expr_annotator::visit_new(), Translate_visitor::visit_return(), Annotator::visit_return(), and Expr_annotator::visit_sizeof().

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 484 of file ptree-core.cc.

References List(), and Nconc().

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 478 of file ptree-core.cc.

References List(), and Nconc().

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 472 of file ptree-core.cc.

References List(), and Nconc().

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 467 of file ptree-core.cc.

References List(), and Nconc().

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 462 of file ptree-core.cc.

References List(), and NonLeaf.

Ptree * Ptree::List (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 457 of file ptree-core.cc.

References nil, and NonLeaf.

Ptree * Ptree::List (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 452 of file ptree-core.cc.

References nil, and NonLeaf.

Ptree * Ptree::List (  Ptree *    )  [static]
 

Definition at line 442 of file ptree-core.cc.

References nil, and NonLeaf.

Ptree * Ptree::List (    )  [static]
 

Definition at line 447 of file ptree-core.cc.

References nil.

Referenced by Init_maker::add(), Class::AppendBaseClass(), Class::ChangeBaseClasses(), Class::Construct(), ClassWalker::ConstructAccessSpecifier(), ClassWalker::ConstructClass(), ClassWalker::ConstructMember(), convert_decl_to_expr(), do_function(), Annotator::get_output_as_block(), List(), Make(), make_cast_expr_unchecked(), make_comma_expr(), make_cond_expr(), make_declaration(), Annotated_funcall_maker::make_funcall(), make_infix_expr(), Init_maker::make_init(), make_null_statement(), make_prefix_expr(), make_sizeof_expr(), make_this_star(), ClassWalker::MakeMetaobjectForCfunctions(), TypeInfo::MakePtree(), Encoding::MakePtree(), MakeStatement(), Encoding::NameToPtree(), process_initializers(), Expr_annotator::process_member_access(), Expr_annotator::process_pm_expr(), Enum_symbol::process_value(), PtreeBrace::PtreeBrace(), Parser::rAccessDecl(), Parser::rAdditiveExpr(), Parser::rAllocateExpr(), Parser::rAllocateInitializer(), Parser::rAllocateType(), Parser::rAndExpr(), Parser::rArgDeclaration(), Parser::rBaseSpecifiers(), Parser::rCastExpr(), Parser::rCastOperatorName(), Parser::rClassBody(), Parser::rClassMember(), Parser::rClassSpec(), Parser::rCommaExpression(), Parser::rCompoundStatement(), Parser::rConditionalExpr(), Parser::rConstDeclaration(), Parser::rConstructorDecl(), Parser::rDeclarator2(), Parser::rDeclaratorWithInit(), Parser::rDoStatement(), Parser::rEnumBody(), Parser::rEqualityExpr(), Parser::rExclusiveOrExpr(), Parser::rExpression(), Parser::rExprStatement(), Parser::rExternTemplateDecl(), Parser::rForStatement(), Parser::rIfStatement(), Parser::rInclusiveOrExpr(), Parser::rInitializeExpr(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rLinkageBody(), Parser::rLinkageSpec(), Parser::rLogicalAndExpr(), Parser::rLogicalOrExpr(), Parser::rMemberInit(), Parser::rMemberInitializers(), Parser::rMetaclassDecl(), Parser::rMultiplyExpr(), Parser::rName(), Parser::rNamespaceSpec(), Parser::rNewDeclarator(), Parser::rNullDeclaration(), Parser::rOperatorName(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), Parser::rPmExpr(), Parser::rPostfixExpr(), Parser::rPrimaryExpr(), Parser::rPtrToMember(), Parser::rRelationalExpr(), Parser::rShiftExpr(), Parser::rSizeofExpr(), Parser::rStatement(), Parser::rSwitchStatement(), Parser::rTempArgDeclaration(), Parser::rTempArgList(), Parser::rTemplateArgs(), Parser::rTemplateDecl2(), Parser::rThrowExpr(), Parser::rTryStatement(), Parser::rTypedef(), Parser::rTypeName(), Parser::rUnaryExpr(), Parser::rUserAccessSpec(), Parser::rUserdefKeyword(), Parser::rUserdefStatement(), Parser::rVarNameCore(), Parser::rWhileStatement(), Walker::TranslateAssign(), Class::TranslateAssign(), ClassWalker::TranslateAssign(), Walker::TranslateAssignInitializer(), ClassWalker::TranslateAssignInitializer(), Class::TranslateBinary(), ClassWalker::TranslateClassSpec(), Walker::TranslateComma(), Walker::TranslateCond(), Walker::TranslateDeclaration(), ClassBodyWalker::TranslateDeclarator(), Walker::TranslateDeclarators(), Walker::TranslateDefault(), Class::TranslateDelete(), Walker::TranslateFunctionImplementation(), ClassWalker::TranslateFunctionImplementation(), ClassBodyWalker::TranslateFunctionImplementation(), Walker::TranslateInfix(), ClassWalker::TranslateInfix(), Class::TranslateInitializer(), Walker::TranslateLabel(), Walker::TranslateLinkageSpec(), Class::TranslateMemberCall(), Class::TranslateMemberRead(), Class::TranslateMemberWrite(), Walker::TranslateNamespaceSpec(), Class::TranslateNew(), Walker::TranslateNewDeclarator2(), Walker::TranslateParen(), Walker::TranslatePm(), Class::TranslatePostfix(), Class::TranslatePostfixOnMember(), ClassWalker::TranslateTemplateFunction(), Walker::TranslateThrow(), Walker::TranslateTypedef(), ClassBodyWalker::TranslateTypedef(), Walker::TranslateUnary(), Class::TranslateUnary(), ClassWalker::TranslateUnary(), Class::TranslateUnaryOnMember(), Expr_annotator::visit_array(), Expr_annotator::visit_assign(), Annotator::visit_case(), Annotator::visit_default(), Expr_annotator::visit_delete(), Annotator::visit_do(), Annotator::visit_for(), Template_visitor::visit_function(), Annotator::visit_if(), Annotator::visit_label(), Expr_annotator::visit_name(), Template_visitor::visit_name_declaration(), Expr_annotator::visit_new(), Expr_annotator::visit_postfix(), Annotator::visit_return(), Annotator::visit_switch(), Expr_annotator::visit_throw(), and Annotator::visit_while().

Ptree * Ptree::ListTail (  Ptree *   ,
int   
)  [static]
 

Definition at line 429 of file ptree-core.cc.

References Cdr(), and nil.

Ptree* Ptree::ListTail (  int    n )  [inline]
 

Definition at line 82 of file ptree-core.h.

Referenced by Member::GetUserArgumentModifiers(), Program::MinimumSubst2(), Environment::RecordTypedefName(), Walker::TranslateDeclarators(), Walker::TranslateNewDeclarator2(), ClassWalker::TranslateStaticUserStatement(), Walker::TranslateTypedef(), ClassBodyWalker::TranslateTypedef(), and ClassWalker::TranslateUserStatement().

Ptree * Ptree::Make (  const char *    pat,
...   
)  [static]
 

Definition at line 251 of file pattern.cc.

References GetLength(), GetPosition(), IntegerToString(), IsLeaf(), List(), MopErrorMessage(), Nconc(), nil, and Snoc().

Referenced by Metaclass::AppendHousekeepingCode(), Member::Arguments(), Class::Class(), Walker::FillArgumentName(), Metaclass::GetFinalizer(), Metaclass::InsertInitialize(), Metaclass::ProduceInitFile(), and Metaclass::TranslateClass().

Ptree * Ptree::MakeStatement (  const char *    pat,
...   
)  [static]
 

Definition at line 326 of file pattern.cc.

References GetLength(), GetPosition(), IntegerToString(), IsLeaf(), List(), MopErrorMessage(), Nconc(), nil, Snoc(), and Class::WarnObsoleteness().

bool Ptree::Match (  Ptree *   ,
char *   ,
...   
)  [static]
 

Definition at line 60 of file pattern.cc.

References CountArgs(), FALSE, MatchPat(), MAX, MopErrorMessage(), MopMoreWarningMessage(), MopWarningMessage(), nil, resultsIndex, SkipSpaces(), and TRUE.

char * Ptree::MatchList (  Ptree *   ,
char *   
)  [static, private]
 

Definition at line 134 of file pattern.cc.

References Car(), Cdr(), MatchPat(), MopErrorMessage(), nil, resultsIndex, and SkipSpaces().

Referenced by MatchPat().

char * Ptree::MatchPat (  Ptree *   ,
char *   
)  [static, private]
 

Definition at line 105 of file pattern.cc.

References IsLeaf(), MatchList(), MatchWord(), nil, and resultsIndex.

Referenced by Match(), and MatchList().

char * Ptree::MatchWord (  Ptree *   ,
char *   
)  [static, private]
 

Definition at line 169 of file pattern.cc.

References GetLength(), GetPosition(), and nil.

Referenced by MatchPat().

Ptree * Ptree::Nconc (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 775 of file ptree-core.cc.

References Nconc().

Ptree * Ptree::Nconc (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 765 of file ptree-core.cc.

References data, Last(), and nil.

Referenced by TypeInfo::FullTypeName(), ClassWalker::GetAppendedPtree(), ClassWalker::GetInsertedPtree(), List(), Make(), Encoding::MakePtree(), MakeStatement(), Nconc(), Parser::optPtrOperator(), Parser::rAllocateExpr(), Parser::rArgDeclaration(), Parser::rCastOperatorName(), Parser::rConstructorDecl(), Parser::rDeclaration(), Parser::rDeclarator2(), Parser::rDeclaratorWithInit(), Parser::rEnumBody(), Parser::rIfStatement(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rMetaclassDecl(), Parser::rName(), Parser::rNewDeclarator(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), Parser::rPtrToMember(), Parser::rTempArgDeclaration(), Parser::rTemplateDecl2(), Parser::rTypedef(), Parser::rTypeSpecifier(), Parser::rVarNameCore(), Snoc(), ClassWalker::TranslateFunctionBody(), and Walker::TranslateNewDeclarator2().

Ptree * Ptree::Nth (  Ptree *   ,
int   
)  [static]
 

Definition at line 397 of file ptree-core.cc.

References Car(), Cdr(), and nil.

Ptree* Ptree::Nth (  int    n )  [inline]
 

Definition at line 80 of file ptree-core.h.

Referenced by ClassWalker::ConstructClass(), ClassWalker::ConstructMember(), Member::FunctionBody(), Walker::LookupMetaclass(), Class::Members(), parse_class(), Declaration_reader::parse_declarator_get_name(), Declaration_reader::parse_declarator_internal(), process_initializers(), ClassWalker::RecordMembers(), RightMost(), Walker::TranslateCase(), Walker::TranslateCast(), Walker::TranslateClassSpec(), ClassWalker::TranslateClassSpec(), Walker::TranslateCond(), Walker::TranslateDeclarators(), Walker::TranslateDo(), Walker::TranslateFor(), Walker::TranslateFunctionImplementation(), ClassWalker::TranslateFunctionImplementation(), ClassBodyWalker::TranslateFunctionImplementation(), Walker::TranslateIf(), Walker::TranslateNew(), Walker::TranslateSwitch(), Walker::TranslateTemplateDecl(), ClassWalker::TranslateTemplateFunction(), Walker::TranslateTry(), Walker::TranslateWhile(), Expr_annotator::visit_array(), Annotator::visit_case(), Expr_annotator::visit_cast(), Expr_annotator::visit_cond(), Ptree_program_visitor< Returntype >::visit_declaration(), Expr_annotator::visit_delete(), Annotator::visit_do(), Annotator::visit_for(), Expr_annotator::visit_fstylecastexpr(), Expr_annotator::visit_funcall(), Annotator::visit_if(), Expr_annotator::visit_new(), Expr_annotator::visit_sizeof(), Annotator::visit_switch(), Annotator::visit_templatedecl(), and Annotator::visit_while().

virtual void Ptree::Print (  ostream &   ,
int   ,
int   
)  [pure virtual]
 

Implemented in Leaf, DupLeaf, NonLeaf, PtreeBrace, PtreeDeclarator, PtreeName, and PtreeFstyleCastExpr.

Referenced by Display2(), PtreeBrace::Print(), and NonLeaf::Print().

void Ptree::PrintIndent (  ostream &   ,
int   
) 
 

Definition at line 102 of file ptree-core.cc.

Referenced by PtreeBrace::Print(), PtreeBrace::Write(), and Leaf::Write().

Ptree * Ptree::qMake (  char *    )  [static]
 

Definition at line 440 of file pattern.cc.

References MopErrorMessage(), and nil.

Ptree * Ptree::qMakeStatement (  char *    )  [static]
 

Definition at line 447 of file pattern.cc.

References MopErrorMessage(), and nil.

bool Ptree::Reify (  char *&    ) 
 

Definition at line 401 of file pattern.cc.

References Lex::Reify().

bool Ptree::Reify (  unsigned int &    ) 
 

Definition at line 396 of file pattern.cc.

References Lex::Reify().

Referenced by QuoteClass::TranslateMemberCall().

Ptree * Ptree::ReplaceAll (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 528 of file ptree-core.cc.

References PtreeArray::All(), PtreeArray::Append(), Car(), Cdr(), Eq(), FALSE, IsLeaf(), nil, and TRUE.

Ptree * Ptree::Rest (  Ptree *    )  [static]
 

Definition at line 361 of file ptree-core.cc.

References Cdr(), and nil.

Ptree* Ptree::Rest (    )  [inline]
 

Definition at line 77 of file ptree-core.h.

char * Ptree::RightMost (    ) 
 

Definition at line 192 of file ptree-core.cc.

References GetLength(), GetPosition(), IsLeaf(), Length(), nil, and Nth().

Referenced by Program::Insert(), and Program::Subst().

Ptree * Ptree::Second (  Ptree *    )  [static]
 

Definition at line 369 of file ptree-core.cc.

References Car(), Cdr(), and nil.

Ptree* Ptree::Second (    )  [inline]
 

Definition at line 78 of file ptree-core.h.

Referenced by Template_thing::add_args_from_ptree(), Member::Arguments(), ClassWalker::ConstructClass(), ClassWalker::ConstructMember(), convert_comma_expr_to_list(), convert_decl_to_expr(), Template_visitor::declare_class(), Simple_declaration_reader::declare_variable(), do_function(), Expr_annotator::get_cast_type(), get_string_literal(), Walker::GetClassTemplateSpec(), Symbol_name::init_name(), Symbol_name::is_qualified_name(), Symbol_name::lookup_symbol_in_scope(), Walker::LookupBaseMetaclass(), Walker::LookupMetaclass(), Walker::MakeTemplateInstantiationMetaobject(), Class::Members(), Program::MinimumSubst2(), Class::Name(), parse_class(), Declaration_reader::parse_declarator_internal(), parse_enum(), parse_template_arg_list(), PtreeBrace::Print(), Init_handler::process_brace(), Init_handler::process_initializer(), process_initializers(), Enum_symbol::process_value(), Type_reader::read_type(), Environment::RecordEnumName(), ClassWalker::RecordMemberDeclaration(), ClassWalker::RecordMembers(), Parser::rTemplateDecl(), Walker::StripCvFromIntegralType(), Walker::TranslateArgDeclList2(), Walker::TranslateArguments(), ClassWalker::TranslateArrowMember(), Walker::TranslateAssign(), ClassWalker::TranslateAssign(), Walker::TranslateAssignInitializer(), ClassWalker::TranslateAssignInitializer(), Walker::TranslateBlock(), ClassWalker::TranslateBlock(), Walker::TranslateBrace(), Walker::TranslateClassBody(), ClassBodyWalker::TranslateClassBody(), ClassWalker::TranslateClassSpec(), Walker::TranslateComma(), Walker::TranslateCond(), Walker::TranslateDeclaration(), Walker::TranslateDo(), ClassWalker::TranslateDotMember(), ClassWalker::TranslateFuncall(), ClassWalker::TranslateFunctionBody(), Walker::TranslateFunctionImplementation(), ClassWalker::TranslateFunctionImplementation(), ClassBodyWalker::TranslateFunctionImplementation(), Walker::TranslateInfix(), ClassWalker::TranslateInfix(), Class::TranslateInitializer(), Walker::TranslateLinkageSpec(), QuoteClass::TranslateMemberCall(), Walker::TranslateNamespaceSpec(), ClassWalker::TranslateNew2(), Walker::TranslateNew3(), Walker::TranslateParen(), Walker::TranslatePm(), ClassWalker::TranslatePostfix(), Walker::TranslateReturn(), Walker::TranslateSizeof(), ClassWalker::TranslateStaticUserStatement(), Class::TranslateSubscript(), ClassWalker::TranslateTemplateFunction(), Walker::TranslateThrow(), Walker::TranslateTry(), Walker::TranslateTypedef(), ClassBodyWalker::TranslateTypedef(), Walker::TranslateUnary(), ClassWalker::TranslateUnary(), ClassWalker::TranslateUserStatement(), Walker::TypeofCast(), Walker::TypeofNew(), Walker::TypeofParen(), Walker::TypeofUnary(), Expr_annotator::visit_array(), Expr_annotator::visit_arrowmember(), Expr_annotator::visit_assign(), Annotator::visit_block(), Annotator::visit_brace(), Annotator::visit_break(), Annotator::visit_case(), Expr_annotator::visit_cast(), Expr_annotator::visit_comma(), Expr_annotator::visit_cond(), Annotator::visit_continue(), Ptree_program_visitor< Returntype >::visit_declaration(), Annotator::visit_default(), Expr_annotator::visit_delete(), Annotator::visit_do(), Expr_annotator::visit_dotmember(), Translate_visitor::visit_exprstatement(), Annotator::visit_exprstatement(), Annotator::visit_for(), Expr_annotator::visit_fstylecastexpr(), Expr_annotator::visit_funcall(), Translate_visitor::visit_function(), Annotator::visit_if(), Translate_visitor::visit_infix(), Expr_annotator::visit_infix(), Annotator::visit_label(), Annotator::visit_namespacespec(), Expr_annotator::visit_new(), Expr_annotator::visit_paren(), Expr_annotator::visit_pm(), Translate_visitor::visit_postfix(), Expr_annotator::visit_postfix(), Translate_visitor::visit_return(), Annotator::visit_return(), Expr_annotator::visit_sizeof(), Annotator::visit_stmt_or_block(), Annotator::visit_switch(), Annotator::visit_templatedecl(), Expr_annotator::visit_throw(), Annotator::visit_typedef(), Expr_annotator::visit_unary(), Annotator::visit_using(), and Annotator::visit_while().

void Ptree::SetCar (  Ptree *    p )  [inline]
 

Definition at line 58 of file ptree-core.h.

Referenced by PtreeHead::Append().

void Ptree::SetCdr (  Ptree *    p )  [inline]
 

Definition at line 59 of file ptree-core.h.

References nonleaf.

Referenced by Append().

Ptree * Ptree::ShallowSubst (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 710 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and ShallowSubst().

Ptree * Ptree::ShallowSubst (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 675 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and ShallowSubst().

Ptree * Ptree::ShallowSubst (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 646 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and ShallowSubst().

Ptree * Ptree::ShallowSubst (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 623 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), and nil.

Referenced by Member::SetName(), ShallowSubst(), Walker::TranslateArguments(), ClassWalker::TranslateArray(), Walker::TranslateCase(), Walker::TranslateCast(), Walker::TranslateClassSpec(), Walker::TranslateDeclaration(), Walker::TranslateDelete(), ClassWalker::TranslateDelete(), Walker::TranslateDo(), Walker::TranslateFor(), Walker::TranslateIf(), Walker::TranslateNew2(), ClassWalker::TranslateNew2(), Walker::TranslateNewDeclarator(), Walker::TranslateReturn(), Walker::TranslateSizeof(), Class::TranslateSubscript(), Walker::TranslateSwitch(), Walker::TranslateTry(), Walker::TranslateTypespecifier(), and Walker::TranslateWhile().

Ptree * Ptree::Snoc (  Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 758 of file ptree-core.cc.

References Cons(), Nconc(), and nil.

Referenced by Init_maker::add(), Annotated_funcall_maker::add_arg(), Annotator::add_output(), PtreeHead::Append(), Class::AppendMember(), do_function(), TypeInfo::FullTypeName(), Make(), Encoding::MakePtree(), Encoding::MakeQname(), MakeStatement(), Parser::optCvQualify(), Parser::optIntegralTypeOrClassSpec(), Parser::optMemberSpec(), Parser::optPtrOperator(), Parser::optThrowDecl(), process_initializers(), Parser::rAllocateExpr(), Parser::rAllocateInitializer(), Parser::rAllocateType(), Parser::rArgDeclList(), Parser::rBaseSpecifiers(), Parser::rCastOperatorName(), Parser::rClassBody(), Parser::rClassSpec(), Parser::rCompoundStatement(), Parser::rConstructorDecl(), Parser::rDeclaration(), Parser::rDeclarationStatement(), Parser::rDeclarator2(), Parser::rDeclarators(), Lex::ReadComment(), Parser::rEnumBody(), Parser::rEnumSpec(), Parser::rFunctionArguments(), Parser::rInitializeExpr(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rLinkageBody(), Parser::rLinkageSpec(), Parser::rMemberInitializers(), Parser::rMetaArguments(), Parser::rMetaclassDecl(), Parser::rName(), Parser::rOperatorName(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), Parser::rPtrToMember(), Parser::rTempArgDeclaration(), Parser::rTempArgList(), Parser::rTemplateArgs(), Parser::rTemplateDecl(), Parser::rTemplateDecl2(), Parser::rTryStatement(), Parser::rTypedef(), Parser::rTypeSpecifier(), Parser::rVarNameCore(), Annotator::visit_for(), Annotator::visit_if(), and Expr_annotator::visit_new().

Ptree * Ptree::Subst (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 595 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and Subst().

Ptree * Ptree::Subst (  Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 573 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), nil, and Subst().

Ptree * Ptree::Subst (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 555 of file ptree-core.cc.

References Car(), Cdr(), Cons(), IsLeaf(), and nil.

Referenced by ClassWalker::MakeMemberDeclarator(), Subst(), Walker::TranslateArray(), Walker::TranslateDeclarator(), Walker::TranslateDeclarators(), Walker::TranslateNew3(), and Walker::TranslateTemplateClass().

Ptree * Ptree::SubstSublist (  Ptree *   ,
Ptree *   ,
Ptree *   
)  [static]
 

Definition at line 750 of file ptree-core.cc.

References Car(), Cdr(), and Cons().

Referenced by Walker::TranslateDeclarators().

Ptree * Ptree::Third (  Ptree *    )  [static]
 

Definition at line 380 of file ptree-core.cc.

References Car(), Cdr(), and nil.

Ptree* Ptree::Third (    )  [inline]
 

Definition at line 79 of file ptree-core.h.

Referenced by Member::Arguments(), Class::BaseClasses(), MemberList::CheckHeader(), Class::Construct(), ClassWalker::ConstructMember(), convert_comma_expr_to_list(), convert_decl_to_expr(), fill_in_overload_annotation(), Walker::FindDeclarator(), Member::FunctionBody(), Expr_annotator::get_cast_type(), Walker::GetClassTemplateSpec(), Class::InitializeInstance(), Class::IsImmediateSubclassOf(), Class::IsSubclassOf(), Walker::LookupBaseMetaclass(), Walker::LookupMetaclass(), Environment::LookupMetaclass(), make_comma_expr(), Annotated_funcall_maker::make_funcall(), Class::NthBaseClass(), Class::NthBaseClassName(), Walker::NthDeclarator(), parse_class(), parse_enum(), parse_template_arg_list(), Init_handler::process_initializer(), Enum_symbol::process_value(), ClassWalker::RecordMemberDeclaration(), ClassWalker::RecordMembers(), Environment::RecordMetaclassName(), Environment::RecordTemplateFunction(), Parser::rTemplateDecl(), TemplateClass::TemplateArguments(), Walker::TranslateArgDeclList2(), Walker::TranslateArray(), ClassWalker::TranslateArray(), ClassWalker::TranslateArrowMember(), Walker::TranslateAssign(), ClassWalker::TranslateAssign(), Walker::TranslateBlock(), ClassWalker::TranslateBlock(), Walker::TranslateBrace(), Walker::TranslateClassBody(), ClassBodyWalker::TranslateClassBody(), Walker::TranslateClassSpec(), ClassWalker::TranslateClassSpec(), Walker::TranslateComma(), Walker::TranslateCond(), Walker::TranslateDeclaration(), Walker::TranslateDefault(), ClassWalker::TranslateDotMember(), Walker::TranslateFor(), ClassWalker::TranslateFuncall(), ClassWalker::TranslateFunctionBody(), Walker::TranslateFunctionImplementation(), ClassWalker::TranslateFunctionImplementation(), ClassBodyWalker::TranslateFunctionImplementation(), Walker::TranslateIf(), Walker::TranslateInfix(), ClassWalker::TranslateInfix(), Walker::TranslateLabel(), Walker::TranslateLinkageSpec(), Walker::TranslateNamespaceSpec(), Walker::TranslateNew(), Walker::TranslateNewDeclarator2(), Walker::TranslateParen(), Walker::TranslatePm(), ClassWalker::TranslatePostfix(), Walker::TranslateSizeof(), ClassWalker::TranslateStaticUserStatement(), Walker::TranslateSwitch(), ClassWalker::TranslateTemplateFunction(), Walker::TranslateTypedef(), ClassWalker::TranslateUnary(), ClassWalker::TranslateUserStatement(), Walker::TranslateWhile(), Walker::TypeofArrowMember(), Walker::TypeofComma(), Walker::TypeofCond(), Walker::TypeofDotMember(), Walker::TypeofNew(), Walker::TypeofPm(), Expr_annotator::visit_array(), Expr_annotator::visit_arrowmember(), Translate_visitor::visit_assign(), Expr_annotator::visit_assign(), Annotator::visit_block(), Annotator::visit_brace(), Annotator::visit_case(), Expr_annotator::visit_cast(), Expr_annotator::visit_comma(), Expr_annotator::visit_cond(), Ptree_program_visitor< Returntype >::visit_declaration(), Annotator::visit_default(), Expr_annotator::visit_delete(), Annotator::visit_do(), Expr_annotator::visit_dotmember(), Annotator::visit_for(), Expr_annotator::visit_fstylecastexpr(), Expr_annotator::visit_funcall(), Translate_visitor::visit_function(), Annotator::visit_goto(), Annotator::visit_if(), Translate_visitor::visit_infix(), Expr_annotator::visit_infix(), Annotator::visit_label(), Annotator::visit_linkagespec(), Annotator::visit_namespacespec(), Expr_annotator::visit_new(), Expr_annotator::visit_paren(), Expr_annotator::visit_pm(), Annotator::visit_return(), Expr_annotator::visit_sizeof(), Annotator::visit_switch(), Annotator::visit_templatedecl(), Annotator::visit_typedef(), Annotator::visit_while(), and Walker::WhichDeclarator().

char * Ptree::ToString (    ) 
 

Definition at line 109 of file ptree-core.cc.

References nil, Program::Read(), and WritePS().

Referenced by Template_thing::add_args_from_ptree(), Template_visitor::declare_name(), Typedef_declaration_reader::declare_variable(), Symbol_name::init_name(), Mangle::insert(), Class_scope::is_constructor(), Expr_result::is_npc(), Mangle::lookup_global_name(), Symbol_name::lookup_symbol_in_scope(), parse_class(), parse_enum(), parse_specifiers(), print_annotated_tree(), process_initializers(), Enum_symbol::process_value(), Metaclass::ProduceInitFile(), Type_reader::read_type(), Symbol_name::Symbol_name(), Type_reader::Type_reader(), Translate_visitor::visit_assign(), Expr_annotator::visit_assign(), Expr_annotator::visit_cast(), Ptree_program_visitor< Returntype >::visit_declaration(), Translate_visitor::visit_exprstatement(), Expr_annotator::visit_funcall(), Translate_visitor::visit_function(), Translate_visitor::visit_infix(), Translate_visitor::visit_leaf(), Expr_annotator::visit_leaf(), Translate_visitor::visit_name(), Expr_annotator::visit_name(), Translate_visitor::visit_name_declaration(), Annotator::visit_namespacespec(), Translate_visitor::visit_postfix(), Expr_annotator::visit_postfix(), and Expr_annotator::visit_unary().

Ptree * Ptree::Translate (  Walker *    )  [virtual]
 

Reimplemented in LeafName, LeafThis, PtreeBrace, PtreeBlock, PtreeClassBody, PtreeTypedef, PtreeTemplateDecl, PtreeTemplateInstantiation, PtreeExternTemplate, PtreeMetaclassDecl, PtreeLinkageSpec, PtreeNamespaceSpec, PtreeUsing, PtreeDeclaration, PtreeName, PtreeFstyleCastExpr, PtreeClassSpec, PtreeEnumSpec, PtreeAccessSpec, PtreeAccessDecl, PtreeUserAccessSpec, PtreeIfStatement, PtreeSwitchStatement, PtreeWhileStatement, PtreeDoStatement, PtreeForStatement, PtreeTryStatement, PtreeBreakStatement, PtreeContinueStatement, PtreeReturnStatement, PtreeGotoStatement, PtreeCaseStatement, PtreeDefaultStatement, PtreeLabelStatement, PtreeExprStatement, PtreeCommaExpr, PtreeAssignExpr, PtreeCondExpr, PtreeInfixExpr, PtreePmExpr, PtreeCastExpr, PtreeUnaryExpr, PtreeThrowExpr, PtreeSizeofExpr, PtreeNewExpr, PtreeDeleteExpr, PtreeArrayExpr, PtreeFuncallExpr, PtreePostfixExpr, PtreeUserStatementExpr, PtreeDotMemberExpr, PtreeArrowMemberExpr, PtreeParenExpr, and PtreeStaticUserStatementExpr.

Definition at line 243 of file ptree-core.cc.

References Walker::TranslatePtree().

Referenced by Walker::Translate().

void Ptree::Typeof (  Walker *   ,
TypeInfo &   
)  [virtual]
 

Reimplemented in LeafName, LeafThis, PtreeName, PtreeFstyleCastExpr, PtreeCommaExpr, PtreeAssignExpr, PtreeCondExpr, PtreeInfixExpr, PtreePmExpr, PtreeCastExpr, PtreeUnaryExpr, PtreeThrowExpr, PtreeSizeofExpr, PtreeNewExpr, PtreeDeleteExpr, PtreeArrayExpr, PtreeFuncallExpr, PtreePostfixExpr, PtreeUserStatementExpr, PtreeDotMemberExpr, PtreeArrowMemberExpr, PtreeParenExpr, and PtreeStaticUserStatementExpr.

Definition at line 248 of file ptree-core.cc.

References Walker::TypeofPtree().

Referenced by Walker::Typeof().

int Ptree::What (    )  [virtual]
 

Reimplemented in LeafThis, LeafAUTO, LeafBOOLEAN, LeafCHAR, LeafCONST, LeafDOUBLE, LeafEXTERN, LeafFLOAT, LeafFRIEND, LeafINLINE, LeafINT, LeafLONG, LeafMUTABLE, LeafNAMESPACE, LeafPRIVATE, LeafPROTECTED, LeafPUBLIC, LeafREGISTER, LeafSHORT, LeafSIGNED, LeafSTATIC, LeafUNSIGNED, LeafUSING, LeafVIRTUAL, LeafVOID, LeafVOLATILE, LeafUserKeyword2, PtreeTypedef, PtreeTemplateDecl, PtreeTemplateInstantiation, PtreeExternTemplate, PtreeMetaclassDecl, PtreeLinkageSpec, PtreeNamespaceSpec, PtreeUsing, PtreeDeclaration, PtreeDeclarator, PtreeName, PtreeFstyleCastExpr, PtreeClassSpec, PtreeEnumSpec, PtreeAccessSpec, PtreeAccessDecl, PtreeUserAccessSpec, PtreeUserdefKeyword, PtreeIfStatement, PtreeSwitchStatement, PtreeWhileStatement, PtreeDoStatement, PtreeForStatement, PtreeTryStatement, PtreeBreakStatement, PtreeContinueStatement, PtreeReturnStatement, PtreeGotoStatement, PtreeCaseStatement, PtreeDefaultStatement, PtreeLabelStatement, PtreeExprStatement, PtreeCommaExpr, PtreeAssignExpr, PtreeCondExpr, PtreeInfixExpr, PtreePmExpr, PtreeCastExpr, PtreeUnaryExpr, PtreeThrowExpr, PtreeSizeofExpr, PtreeNewExpr, PtreeDeleteExpr, PtreeArrayExpr, PtreeFuncallExpr, PtreePostfixExpr, PtreeUserStatementExpr, PtreeDotMemberExpr, PtreeArrowMemberExpr, PtreeParenExpr, and PtreeStaticUserStatementExpr.

Definition at line 210 of file ptree-core.cc.

References BadToken.

Referenced by MemberList::AppendBaseClass(), MemberList::AppendThisClass(), Encoding::CvQualify(), Environment::DontRecordDeclarator(), IsA(), Program::MinimumSubst2(), parse_qualifier(), parse_specifier(), process_base_classes(), Type_reader::read_type(), Environment::RecordDeclarator(), ClassWalker::RecordMembers(), Environment::RecordTypedefName(), Parser::rOtherDeclaration(), and Parser::rTemplateDecl().

virtual int Ptree::Write (  ostream &   ,
int   
)  [pure virtual]
 

Implemented in Leaf, NonLeaf, and PtreeBrace.

int Ptree::Write (  ostream &    ) 
 

Definition at line 94 of file ptree-core.cc.

References nil.

Referenced by Parser::ErrorMessage(), opcxx_ListOfMetaclass::FinalizeAll(), Class::FinalizeAll(), operator<<(), Parser::WarningMessage(), PtreeBrace::Write(), NonLeaf::Write(), and Program::Write().

virtual void Ptree::WritePS (  ProgramString &    )  [pure virtual]
 

Implemented in Leaf, and NonLeaf.

Referenced by ToString(), and NonLeaf::WritePS().


Friends And Related Function Documentation

friend class NonLeaf [friend]
 

Definition at line 169 of file ptree-core.h.

Referenced by Cons(), and List().


Member Data Documentation

Ptree* Ptree::child [protected]
 

Definition at line 160 of file ptree-core.h.

union { ... } Ptree::data [protected]
 

Referenced by DupLeaf::DupLeaf(), Leaf::Leaf(), Nconc(), NonLeaf::NonLeaf(), NonLeaf::Print(), DupLeaf::Print(), Leaf::Print(), Leaf::Write(), and Leaf::WritePS().

struct { ... } Ptree::leaf [protected]
 

int Ptree::length [protected]
 

Definition at line 165 of file ptree-core.h.

Referenced by IntegerToString().

Ptree* Ptree::next [protected]
 

Definition at line 161 of file ptree-core.h.

struct { ... } Ptree::nonleaf [protected]
 

Referenced by SetCdr().

char* Ptree::position [protected]
 

Definition at line 164 of file ptree-core.h.

bool Ptree::show_encoded = 0 [static]
 

Definition at line 42 of file ptree-core.cc.


The documentation for this class was generated from the following files:
Generated on Mon Feb 10 17:36:07 2003 for VFiasco Semantics Compiler by doxygen1.2.15