From 51becdbe094e287caf68bb99b1d03da4231fbefc Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Sat, 28 Jan 2006 02:40:47 +0000 Subject: [PATCH] add forward class to the classhash git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8579 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/CParse/parser.y | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y index f72dae4c6..3adda0f11 100644 --- a/Source/CParse/parser.y +++ b/Source/CParse/parser.y @@ -1471,6 +1471,7 @@ static void default_arguments(Node *n) { * ====================================================================== */ program : interface { + if (!classes) classes = NewHash(); Setattr($1,"classes",classes); Setattr($1,k_name,ModuleName); @@ -3438,12 +3439,21 @@ cpp_forward_class_decl : storage_class cpptype idcolon SEMI { /* Ignore */ $$ = 0; } else { + String *scpname = Swig_symbol_qualifiedscopename(0); $$ = new_node("classforward"); Setfile($$,cparse_file); Setline($$,cparse_line); Setattr($$,k_kind,$2); Setattr($$,k_name,$3); Setattr($$,k_symweak, "1"); + if (!classes) classes = NewHash(); + if (scpname && Len(scpname)) { + String *fname = NewStringf("%s::%s",scpname,$3); + Setattr(classes,fname,$$); + Delete(fname); + } else { + Setattr(classes,$3,$$); + } add_symbols($$); } }