Make javascript 'nspace' conform to corresponding lua example.
This commit is contained in:
parent
9149f5953b
commit
b30c6a452f
10 changed files with 78 additions and 71 deletions
|
|
@ -3,7 +3,7 @@ constant
|
||||||
enum
|
enum
|
||||||
exception
|
exception
|
||||||
functor
|
functor
|
||||||
namespace
|
nspace
|
||||||
operator
|
operator
|
||||||
overload
|
overload
|
||||||
pointer
|
pointer
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
/* File : example.c */
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include "example.h"
|
|
||||||
|
|
||||||
#define M_PI 3.14159
|
|
||||||
|
|
||||||
|
|
||||||
/* A global variable */
|
|
||||||
namespace nspace
|
|
||||||
{
|
|
||||||
double Foo = 3.0;
|
|
||||||
|
|
||||||
/* Compute the greatest common divisor of positive integers */
|
|
||||||
int gcd(int x, int y) {
|
|
||||||
int g;
|
|
||||||
g = y;
|
|
||||||
while (x > 0) {
|
|
||||||
g = x;
|
|
||||||
x = y % x;
|
|
||||||
y = g;
|
|
||||||
}
|
|
||||||
return g;
|
|
||||||
}
|
|
||||||
|
|
||||||
Circle::Circle(): radius(1.0) {}
|
|
||||||
|
|
||||||
Circle::Circle(double r): radius(r) {
|
|
||||||
std::cout << "created Circle with r=" << radius << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
double Circle::area() {
|
|
||||||
std::cout << "Circle::area called, r=" << radius << std::endl;
|
|
||||||
return M_PI*radius*radius;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
namespace nspace {
|
|
||||||
|
|
||||||
extern int gcd(int x, int y);
|
|
||||||
extern double Foo;
|
|
||||||
|
|
||||||
class Circle
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Circle();
|
|
||||||
|
|
||||||
Circle(double r);
|
|
||||||
|
|
||||||
double area();
|
|
||||||
|
|
||||||
double radius;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
var example = require("./example");
|
|
||||||
|
|
||||||
console.log("Global variable Foo=" + example.nspace.Foo);
|
|
||||||
example.nspace.Foo = 5;
|
|
||||||
console.log("Variable Foo changed to " + example.nspace.Foo);
|
|
||||||
console.log("GCD of number 6,18 is " + example.nspace.gcd(6,18));
|
|
||||||
|
|
||||||
console.log("Creating some objects:");
|
|
||||||
c = new example.nspace.Circle(10);
|
|
||||||
console.log("area = " + c.area());
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
SRCS = example.cxx
|
SRCS =
|
||||||
|
|
||||||
include ../example.mk
|
include ../example.mk
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"targets": [
|
"targets": [
|
||||||
{
|
{
|
||||||
"target_name": "example",
|
"target_name": "example",
|
||||||
"sources": [ "example.cxx", "example_wrap.cxx" ]
|
"sources": [ "example_wrap.cxx" ]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
23
Examples/javascript/nspace/example.h
Normal file
23
Examples/javascript/nspace/example.h
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef _example_guardian_
|
||||||
|
#define _example_guardian_
|
||||||
|
|
||||||
|
int module_function() { return 7; }
|
||||||
|
int module_variable = 9;
|
||||||
|
|
||||||
|
namespace MyWorld {
|
||||||
|
class World {
|
||||||
|
public:
|
||||||
|
World() : world_max_count(9) {}
|
||||||
|
int create_world() { return 17; }
|
||||||
|
const int world_max_count; // = 9
|
||||||
|
};
|
||||||
|
namespace Nested {
|
||||||
|
class Dweller {
|
||||||
|
public:
|
||||||
|
enum Gender { MALE = 0, FEMALE = 1 };
|
||||||
|
static int count() { return 19; }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
/* File : example.i */
|
|
||||||
%module example
|
%module example
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include "example.h"
|
#include "example.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%feature("nspace", 1);
|
%nspace MyWorld::Nested::Dweller;
|
||||||
|
%nspace MyWorld::World;
|
||||||
|
|
||||||
%include "example.h"
|
%include "example.h"
|
||||||
50
Examples/javascript/nspace/runme.js
Normal file
50
Examples/javascript/nspace/runme.js
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
// File: runme.js
|
||||||
|
|
||||||
|
// This file illustrates class C++ interface generated
|
||||||
|
// by SWIG.
|
||||||
|
|
||||||
|
var example = require("./example");
|
||||||
|
|
||||||
|
// Calling a module function ( aka global function )
|
||||||
|
if (example.module_function() !== 7) {
|
||||||
|
throw new Error("example.module_function() should equal 7");
|
||||||
|
}
|
||||||
|
console.log("example.module_function(): " + example.module_function());
|
||||||
|
|
||||||
|
// Accessing a module (aka global) variable
|
||||||
|
if (example.module_variable !== 9) {
|
||||||
|
throw new Error("example.module_variable should equal 9");
|
||||||
|
}
|
||||||
|
console.log("example.module_variable: " + example.module_variable);
|
||||||
|
|
||||||
|
// Creating an instance of the class
|
||||||
|
var w1 = new example.MyWorld.World();
|
||||||
|
console.log("Creating class instance: w1 = new example.MyWorld.World(): " + w1);
|
||||||
|
|
||||||
|
// Accessing class members
|
||||||
|
if (w1.create_world() !== 17) {
|
||||||
|
throw new Error("w1.create_world() should equal 17");
|
||||||
|
}
|
||||||
|
console.log("w1.create_world() = " + w1.create_world());
|
||||||
|
|
||||||
|
if (w1.world_max_count !== 9) {
|
||||||
|
throw new Error("w1.world_max_count should equal 9");
|
||||||
|
}
|
||||||
|
console.log("w1.world_max_count = " + w1.world_max_count);
|
||||||
|
|
||||||
|
// Accessing enums from class within namespace
|
||||||
|
if (example.MyWorld.Nested.Dweller.MALE !== 0) {
|
||||||
|
throw new Error("example.MyWorld.Nested.Dweller.MALE should equal 0");
|
||||||
|
}
|
||||||
|
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.MALE = " + example.MyWorld.Nested.Dweller.MALE);
|
||||||
|
|
||||||
|
if (example.MyWorld.Nested.Dweller.FEMALE !== 1) {
|
||||||
|
throw new Error("example.MyWorld.Nested.Dweller.FEMALE should equal 1");
|
||||||
|
}
|
||||||
|
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.FEMALE = " + example.MyWorld.Nested.Dweller.FEMALE);
|
||||||
|
|
||||||
|
// Accessing static member function
|
||||||
|
if (example.MyWorld.Nested.Dweller.count() !== 19) {
|
||||||
|
throw new Error("example.MyWorld.Nested.Dweller.count() should equal 19");
|
||||||
|
}
|
||||||
|
console.log("Accessing static member function: ex.MyWorld.Nested.Dweller.count() = " + example.MyWorld.Nested.Dweller.count());
|
||||||
Loading…
Add table
Add a link
Reference in a new issue