Work on embedded typemaps. Highly experimental--probably broken

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5007 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 2003-08-17 21:19:27 +00:00
commit 2ff7dfb6c1
2 changed files with 240 additions and 6 deletions

View file

@ -847,7 +847,7 @@ Node *Swig_cparse(File *f) {
%token <ivalue> TEMPLATE
%token <str> OPERATOR
%token <str> COPERATOR
%token PARSETYPE
%token PARSETYPE PARSEPARM
%left CAST
%left LOR
@ -940,6 +940,12 @@ program : interface {
| PARSETYPE error {
top = 0;
}
| PARSEPARM parm SEMI {
top = $2;
}
| PARSEPARM error {
top = 0;
}
;
interface : interface declaration {
@ -4716,6 +4722,22 @@ SwigType *Swig_cparse_type(String *s) {
}
Parm *Swig_cparse_parm(String *s) {
String *ns;
extern void scanner_file(File *);
extern int yyparse();
extern void scanner_next_token(int);
ns = NewStringf("%s;",s);
Seek(ns,0,SEEK_SET);
scanner_file(ns);
top = 0;
scanner_next_token(PARSEPARM);
yyparse();
/* Printf(stdout,"typeparse: '%s' ---> '%s'\n", s, top); */
return top;
}