Add initial Javascript V8 emitter implementation.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13743 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
4bcfca05dd
commit
3c30e2d382
9 changed files with 857 additions and 1 deletions
77
Source/Modules/javascript_v8.h
Normal file
77
Source/Modules/javascript_v8.h
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#ifndef JAVASCRIPT_V8_H
|
||||
#define JAVASCRIPT_V8_H
|
||||
|
||||
#include "javascript_emitter.h"
|
||||
|
||||
class V8Emitter: public JSEmitter {
|
||||
|
||||
public:
|
||||
|
||||
V8Emitter();
|
||||
|
||||
virtual ~V8Emitter();
|
||||
|
||||
virtual int Initialize(Node *n);
|
||||
|
||||
virtual int Dump(Node *n);
|
||||
|
||||
virtual int Close();
|
||||
|
||||
virtual int SwitchContext(Node *n);
|
||||
|
||||
virtual int EnterClass(Node *n);
|
||||
|
||||
virtual int ExitClass(Node *n);
|
||||
|
||||
virtual int EnterVariable(Node *n);
|
||||
|
||||
virtual int ExitVariable(Node *n);
|
||||
|
||||
virtual int EnterFunction(Node *n);
|
||||
|
||||
virtual int ExitFunction(Node *n);
|
||||
|
||||
protected:
|
||||
|
||||
int CreateNamespace(String* scope);
|
||||
|
||||
virtual int EmitCtor(Node *n);
|
||||
|
||||
virtual int EmitDtor(Node *n);
|
||||
|
||||
virtual int EmitFunction(Node *n, bool is_member);
|
||||
|
||||
virtual int EmitGetter(Node *n, bool is_member);
|
||||
|
||||
virtual int EmitSetter(Node *n, bool is_member);
|
||||
|
||||
private:
|
||||
|
||||
File *f_runtime;
|
||||
File *f_header;
|
||||
File *f_class_templates;
|
||||
File *f_wrapper;
|
||||
|
||||
File *f_init_namespaces;
|
||||
File *f_init_class_templates;
|
||||
File *f_init_wrappers;
|
||||
File *f_init_inheritance;
|
||||
File *f_init_register;
|
||||
|
||||
// the output cpp file
|
||||
File *f_wrap_cpp;
|
||||
|
||||
// state variables
|
||||
String* current_context;
|
||||
String* current_classname_mangled;
|
||||
String* current_classname_unqualified;
|
||||
String* current_variable_mangled;
|
||||
String* current_variable_unqualified;
|
||||
String* current_function_mangled;
|
||||
String* current_function_unqualified;
|
||||
|
||||
String* GLOBAL;
|
||||
Hash* namespaces;
|
||||
};
|
||||
|
||||
#endif // JAVASCRIPT_V8_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue