String class removed from the Ruby module
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@549 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
8b979b1643
commit
80b9a6cbcb
2 changed files with 436 additions and 339 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -12,18 +12,18 @@
|
||||||
|
|
||||||
class RClass {
|
class RClass {
|
||||||
private:
|
private:
|
||||||
String temp;
|
DOHString *temp;
|
||||||
public:
|
public:
|
||||||
String name; // class name (renamed)
|
DOHString *name; // class name (renamed)
|
||||||
String cname; // original C class/struct name
|
DOHString *cname; // original C class/struct name
|
||||||
String vname; // variable name
|
DOHString *vname; // variable name
|
||||||
String type;
|
DOHString *type;
|
||||||
String prefix;
|
DOHString *prefix;
|
||||||
String header;
|
DOHString *header;
|
||||||
String init;
|
DOHString *init;
|
||||||
|
|
||||||
String aliases;
|
DOHString *aliases;
|
||||||
String includes;
|
DOHString *includes;
|
||||||
DOH *freemethods;
|
DOH *freemethods;
|
||||||
DOH *predmethods;
|
DOH *predmethods;
|
||||||
int destructor_defined;
|
int destructor_defined;
|
||||||
|
|
@ -32,56 +32,61 @@ class RClass {
|
||||||
freemethods = NewHash();
|
freemethods = NewHash();
|
||||||
predmethods = NewHash();
|
predmethods = NewHash();
|
||||||
destructor_defined = 0;
|
destructor_defined = 0;
|
||||||
|
name = NewString("");
|
||||||
|
cname = NewString("");
|
||||||
|
vname = NewString("");
|
||||||
|
type = NewString("");
|
||||||
|
prefix = NewString("");
|
||||||
|
header = NewString("");
|
||||||
|
init = NewString("");
|
||||||
|
aliases = NewString("");
|
||||||
|
includes = NewString("");
|
||||||
|
temp = NewString("");
|
||||||
}
|
}
|
||||||
|
~RClass() {
|
||||||
|
Delete(name);
|
||||||
|
Delete(cname);
|
||||||
|
Delete(vname);
|
||||||
|
Delete(type);
|
||||||
|
Delete(prefix);
|
||||||
|
Delete(header);
|
||||||
|
Delete(init);
|
||||||
|
Delete(aliases);
|
||||||
|
Delete(includes);
|
||||||
|
Delete(freemethods);
|
||||||
|
Delete(predmethods);
|
||||||
|
Delete(temp);
|
||||||
|
}
|
||||||
|
|
||||||
void set_name(char *cn, char *rn, char *valn) {
|
void set_name(char *cn, char *rn, char *valn) {
|
||||||
cname = cn;
|
Clear(cname);
|
||||||
name = valn;
|
Append(cname,cn);
|
||||||
vname << "c" << name;
|
Clear(name);
|
||||||
prefix << (rn ? rn : cn) << "_";
|
Append(name,valn);
|
||||||
|
Clear(vname);
|
||||||
|
Printf(vname,"c%s",name);
|
||||||
|
Printv(prefix,(rn ? rn : cn), "_", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *strip(char *s) {
|
char *strip(char *s) {
|
||||||
if (strncmp(s, prefix.get(), strlen(prefix.get())) != 0)
|
if (strncmp(s, Char(prefix), Len(prefix)) != 0)
|
||||||
return s;
|
return s;
|
||||||
temp = s;
|
Clear(temp);
|
||||||
temp.replace(prefix.get(), "");
|
Append(temp,s);
|
||||||
return temp.get();
|
Replace(temp,prefix,"",DOH_REPLACE_ANY);
|
||||||
|
return Char(temp);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class RUBY : public Language {
|
class RUBY : public Language {
|
||||||
private:
|
private:
|
||||||
char *module;
|
|
||||||
char *modvar;
|
|
||||||
char *feature;
|
|
||||||
int toplevel;
|
|
||||||
String other_extern;
|
|
||||||
String other_init;
|
|
||||||
char *import_file;
|
|
||||||
|
|
||||||
int current;
|
|
||||||
enum {
|
|
||||||
NO_CPP,
|
|
||||||
MEMBER_FUNC,
|
|
||||||
CONSTRUCTOR,
|
|
||||||
DESTRUCTOR,
|
|
||||||
MEMBER_VAR,
|
|
||||||
CLASS_CONST,
|
|
||||||
STATIC_FUNC,
|
|
||||||
STATIC_VAR
|
|
||||||
};
|
|
||||||
|
|
||||||
DOH *classes; // key=cname val=RClass
|
|
||||||
RClass *klass; // Currently processing class
|
|
||||||
DOH *special_methods; // Python style special method name table
|
|
||||||
|
|
||||||
virtual char *make_wrapper_name(char *cname);
|
virtual char *make_wrapper_name(char *cname);
|
||||||
virtual char *validate_const_name(char *name);
|
virtual char *validate_const_name(char *name);
|
||||||
virtual char *ruby_typemap_lookup(char *, DataType *, char *, char *, char *, WrapperFunction * = 0);
|
virtual char *ruby_typemap_lookup(char *, DataType *, char *, char *, char *, WrapperFunction * = 0);
|
||||||
virtual int to_VALUE(DataType *, char *, String&, int = 0);
|
virtual int to_VALUE(DataType *, char *, DOHString *, int = 0);
|
||||||
virtual int from_VALUE(DataType *, char *, String&);
|
virtual int from_VALUE(DataType *, char *, DOHString *);
|
||||||
public:
|
public:
|
||||||
RUBY();
|
RUBY();
|
||||||
|
|
||||||
// Virtual functions required by the SWIG parser
|
// Virtual functions required by the SWIG parser
|
||||||
virtual void parse_args(int, char *argv[]);
|
virtual void parse_args(int, char *argv[]);
|
||||||
virtual void parse();
|
virtual void parse();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue