js: re-name key word 'create' to 'new', support Math.PI & Math.sqrt() master
authoryu.dongliang <18588496441@163.com>
Sat, 11 Oct 2025 08:44:24 +0000 (16:44 +0800)
committeryu.dongliang <18588496441@163.com>
Sat, 11 Oct 2025 08:44:24 +0000 (16:44 +0800)
30 files changed:
examples/js.html
html/Makefile
js/abc_libjs.so
js/core/scf_core_types.h
js/core/scf_lex_word.h
js/core/scf_node.h
js/core/scf_operator.c
js/core/scf_operator_handler_3ac.c
js/core/scf_optimizer_auto_gc.c
js/core/scf_optimizer_auto_gc_find.c
js/core/scf_pointer_alias.c
js/doc.c
js/lex/scf_lex.c
js/lib/scf_capi.c
js/lib/scf_complex.c
js/lib/scf_string.c
js/lib/x64/lib64/ld-linux-x86-64.so.2
js/lib/x64/libc.so.6
js/lib/x64/libm.so.6 [new file with mode: 0644]
js/parse/Makefile
js/parse/main.c
js/parse/scf_dfa_call.c
js/parse/scf_dfa_expr.c
js/parse/scf_dfa_new.c [moved from js/parse/scf_dfa_create.c with 54% similarity]
js/parse/scf_dfa_parse.c
js/parse/scf_dfa_var.c
js/parse/scf_operator_handler_const.c
js/parse/scf_operator_handler_semantic.c
js/parse/scf_struct_array.c
ui/Makefile

index f2d33ad38154ba151108b01bcc61eb1cb077d916..7a8bb363e3d013e963e5061f14073765050250b2 100644 (file)
@@ -8,14 +8,9 @@
 
 <script>
 
 
 <script>
 
-function P(x)
-{
-       this.x = x;
-}
+var a = Math.PI;
 
 
-var a = create P(1);
-
-document.write(a.x);
+document.write(Math.sqrt(a));
 
 </script>
 
 
 </script>
 
index 37acf100c610fd7dde2d65b04ea223a0991ffd8b..b4e15373202490a23c5125c4750f3003279d09d7 100644 (file)
@@ -137,7 +137,7 @@ CFILES += ../js/parse/scf_dfa_macro.c
 CFILES += ../js/parse/scf_dfa_include.c
 
 CFILES += ../js/parse/scf_dfa_call.c
 CFILES += ../js/parse/scf_dfa_include.c
 
 CFILES += ../js/parse/scf_dfa_call.c
-CFILES += ../js/parse/scf_dfa_create.c
+CFILES += ../js/parse/scf_dfa_new.c
 CFILES += ../js/parse/scf_dfa_sizeof.c
 CFILES += ../js/parse/scf_dfa_container.c
 CFILES += ../js/parse/scf_dfa_va_arg.c
 CFILES += ../js/parse/scf_dfa_sizeof.c
 CFILES += ../js/parse/scf_dfa_container.c
 CFILES += ../js/parse/scf_dfa_va_arg.c
index f025fb377efc12adefbb1e285cd18bc0b1af7a8a..a7677e2e68d01af6f701e8c5f751defb5eeccc26 100755 (executable)
Binary files a/js/abc_libjs.so and b/js/abc_libjs.so differ
index c7109a14158539515eb7739788e95364c971d0eb..c8c01e6fe0f8fa58b3000434761771d1fa2b9761 100644 (file)
@@ -86,7 +86,7 @@ enum scf_core_types
        SCF_OP_CALL,            // () function call
        SCF_OP_TYPE_CAST,       // (char*) type cast
 
        SCF_OP_CALL,            // () function call
        SCF_OP_TYPE_CAST,       // (char*) type cast
 
-       SCF_OP_CREATE,      // create
+       SCF_OP_NEW,             // new
        SCF_OP_SIZEOF,      // sizeof
 
        SCF_OP_CONTAINER,   // container_of
        SCF_OP_SIZEOF,      // sizeof
 
        SCF_OP_CONTAINER,   // container_of
index 7b2c10a6d81e59ce6a68c9fcfd1431bf3bcb1634..807fb975a7a00db8279aa2010b0ae95d6a1995f6 100644 (file)
@@ -60,7 +60,7 @@ enum scf_lex_words
        SCF_LEX_WORD_RA,            // >> right angle brackets
 
        SCF_LEX_WORD_KEY_SIZEOF,    // sizeof
        SCF_LEX_WORD_RA,            // >> right angle brackets
 
        SCF_LEX_WORD_KEY_SIZEOF,    // sizeof
-       SCF_LEX_WORD_KEY_CREATE,    // create class object
+       SCF_LEX_WORD_KEY_NEW,       // create class object
        SCF_LEX_WORD_KEY_CONTAINER, // container_of
        SCF_LEX_WORD_KEY_VA_ARG,    // va_arg
 
        SCF_LEX_WORD_KEY_CONTAINER, // container_of
        SCF_LEX_WORD_KEY_VA_ARG,    // va_arg
 
index ba1d833fd58ea6afe1a1ba5718e3cf39b8ebe5e5..92ec39796434a740f253e7d9f406fea741f90ee4 100644 (file)
@@ -19,7 +19,7 @@ struct scf_node_s {
        int                                     nb_nodes;       // children nodes count
        scf_node_t**            nodes;          // children nodes
 
        int                                     nb_nodes;       // children nodes count
        scf_node_t**            nodes;          // children nodes
 
-       scf_expr_t*         js_create;  // the expr which created this node, only for js!
+       scf_expr_t*         js_new;     // the expr which created this node, only for js!
 
        union {
                scf_variable_t*         var;
 
        union {
                scf_variable_t*         var;
index 69351e8a7929952484ad7e2a408273b088bd0b79..270bde422236914ce3390988881f9d17abd697f1 100644 (file)
@@ -15,7 +15,7 @@ static scf_operator_t base_operators[] =
        {"va_end",    NULL,   SCF_OP_VA_END,        1,  1,  SCF_OP_ASSOCIATIVITY_LEFT},
        {"container", NULL,   SCF_OP_CONTAINER,     1,  3,  SCF_OP_ASSOCIATIVITY_LEFT},
 
        {"va_end",    NULL,   SCF_OP_VA_END,        1,  1,  SCF_OP_ASSOCIATIVITY_LEFT},
        {"container", NULL,   SCF_OP_CONTAINER,     1,  3,  SCF_OP_ASSOCIATIVITY_LEFT},
 
-       {"create",    NULL,   SCF_OP_CREATE,        2, -1,  SCF_OP_ASSOCIATIVITY_RIGHT},
+       {"new",       NULL,   SCF_OP_NEW,           2, -1,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"(",         NULL,   SCF_OP_TYPE_CAST,     2,  2,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"!",         "not",  SCF_OP_LOGIC_NOT,     2,  1,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"~",         "bnot", SCF_OP_BIT_NOT,       2,  1,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"(",         NULL,   SCF_OP_TYPE_CAST,     2,  2,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"!",         "not",  SCF_OP_LOGIC_NOT,     2,  1,  SCF_OP_ASSOCIATIVITY_RIGHT},
        {"~",         "bnot", SCF_OP_BIT_NOT,       2,  1,  SCF_OP_ASSOCIATIVITY_RIGHT},
index 840b46a6de9e05d87383c83fbb3ef107e6bdf369..0b04e661654a973b56b5c23a480cc384b48a8266 100644 (file)
@@ -96,7 +96,7 @@ static int _scf_expr_calculate_internal(scf_ast_t* ast, scf_node_t* node, void*
                return h(ast, node->nodes, node->nb_nodes, d);
 
        } else {
                return h(ast, node->nodes, node->nb_nodes, d);
 
        } else {
-               if (!scf_type_is_assign(node->op->type) && SCF_OP_ADDRESS_OF != node->op->type && SCF_OP_CREATE != node->op->type) {
+               if (!scf_type_is_assign(node->op->type) && SCF_OP_ADDRESS_OF != node->op->type && SCF_OP_NEW != node->op->type) {
 
                        for (i = node->nb_nodes - 1; i >= 0; i--) {
                                if (_scf_expr_calculate_internal(ast, node->nodes[i], d) < 0) {
 
                        for (i = node->nb_nodes - 1; i >= 0; i--) {
                                if (_scf_expr_calculate_internal(ast, node->nodes[i], d) < 0) {
@@ -1425,7 +1425,7 @@ int scf_function_to_3ac(scf_ast_t* ast, scf_function_t* f, scf_list_t* _3ac_list
        return 0;
 }
 
        return 0;
 }
 
-static int _scf_op_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
+static int _scf_op_new(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
 {
        assert(nb_nodes > 0);
 
 {
        assert(nb_nodes > 0);
 
@@ -2395,7 +2395,7 @@ scf_operator_handler_pt  __operator_handlers[SCF_N_3AC_OPS] =
 {
        [SCF_OP_EXPR  ]       = _scf_op_expr,
        [SCF_OP_CALL  ]       = _scf_op_call,
 {
        [SCF_OP_EXPR  ]       = _scf_op_expr,
        [SCF_OP_CALL  ]       = _scf_op_call,
-       [SCF_OP_CREATE]       = _scf_op_create,
+       [SCF_OP_NEW   ]       = _scf_op_new,
 
        [SCF_OP_ARRAY_INDEX]  = _scf_op_array_index,
        [SCF_OP_POINTER    ]  = _scf_op_pointer,
 
        [SCF_OP_ARRAY_INDEX]  = _scf_op_array_index,
        [SCF_OP_POINTER    ]  = _scf_op_pointer,
index 2b1ab068cd228a9266a5f5fb50f6b2d462456af8..bdc2a9349c2ef6905058e4cca090a8649e6e6bc7 100644 (file)
@@ -743,7 +743,7 @@ static int _auto_gc_retval(scf_dn_status_t* ds_obj, scf_dag_node_t* dn, scf_vect
        if (dn->node->split_flag) {
                parent = dn->node->split_parent;
 
        if (dn->node->split_flag) {
                parent = dn->node->split_parent;
 
-               assert(SCF_OP_CALL == parent->type || SCF_OP_CREATE == parent->type);
+               assert(SCF_OP_CALL == parent->type || SCF_OP_NEW == parent->type);
 
                for (i = 0; i < parent->result_nodes->size; i++) {
                        result    = parent->result_nodes->data[i];
 
                for (i = 0; i < parent->result_nodes->size; i++) {
                        result    = parent->result_nodes->data[i];
index 9cf8a6cb404d013ff330899deebf42c4215f34ee..b60c0a1f3fc3ae6e6b8a6fc8e57f61a414675374 100644 (file)
@@ -481,7 +481,7 @@ static int _auto_gc_find_ref(scf_dn_status_t* ds_obj, scf_dag_node_t* dn, scf_3a
                if (dn->node->split_flag) {
                        parent = dn->node->split_parent;
 
                if (dn->node->split_flag) {
                        parent = dn->node->split_parent;
 
-                       assert(SCF_OP_CALL == parent->type || SCF_OP_CREATE == parent->type);
+                       assert(SCF_OP_CALL == parent->type || SCF_OP_NEW == parent->type);
 
                        for (i = 0; i < parent->result_nodes->size; i++) {
                                result    = parent->result_nodes->data[i];
 
                        for (i = 0; i < parent->result_nodes->size; i++) {
                                result    = parent->result_nodes->data[i];
index 811de5d0962e5df160685d25cb87d3fd06237345..9868a7329c99434aa551d84e923d1e33d47e941f 100644 (file)
@@ -143,7 +143,7 @@ static int _bb_pointer_initeds(scf_vector_t* initeds, scf_list_t* bb_list_head,
                        scf_logd("dn->node->split_parent: %d, %p\n", dn->node->split_parent->type, dn->node->split_parent);
 
                        assert(dn->node->split_parent->type == SCF_OP_CALL
                        scf_logd("dn->node->split_parent: %d, %p\n", dn->node->split_parent->type, dn->node->split_parent);
 
                        assert(dn->node->split_parent->type == SCF_OP_CALL
-                               || dn->node->split_parent->type == SCF_OP_CREATE);
+                               || dn->node->split_parent->type == SCF_OP_NEW);
                        return 0;
                }
 
                        return 0;
                }
 
@@ -242,7 +242,7 @@ static int _bb_pointer_initeds_leak(scf_vector_t* initeds, scf_list_t* bb_list_h
 
                if (dn->node->split_flag) {
                        assert(dn->node->split_parent->type == SCF_OP_CALL
 
                if (dn->node->split_flag) {
                        assert(dn->node->split_parent->type == SCF_OP_CALL
-                               || dn->node->split_parent->type == SCF_OP_CREATE);
+                               || dn->node->split_parent->type == SCF_OP_NEW);
                        return 0;
                }
 
                        return 0;
                }
 
index 79361bcd89b5fc340041f0a157913d9cb224d9a9..9821bd187580ae8d43a42e7b9464a691a3d84ff7 100644 (file)
--- a/js/doc.c
+++ b/js/doc.c
@@ -118,7 +118,7 @@ struct Object
 
        Object* Boolean(Object* this)
        {
 
        Object* Boolean(Object* this)
        {
-               Object* res = create Object();
+               Object* res = new Object();
                if (!res)
                        return NULL;
 
                if (!res)
                        return NULL;
 
@@ -129,7 +129,7 @@ struct Object
 
        Object* Boolean(Object* this, int64_t i)
        {
 
        Object* Boolean(Object* this, int64_t i)
        {
-               Object* res = create Object();
+               Object* res = new Object();
                if (!res)
                        return NULL;
 
                if (!res)
                        return NULL;
 
@@ -140,7 +140,7 @@ struct Object
 
        Object* Boolean(Object* this, Object* that)
        {
 
        Object* Boolean(Object* this, Object* that)
        {
-               Object* res = create Object();
+               Object* res = new Object();
                if (!res)
                        return NULL;
 
                if (!res)
                        return NULL;
 
@@ -180,7 +180,7 @@ struct Object
 
        Object* Date(Object* this)
        {
 
        Object* Date(Object* this)
        {
-               Object* res = create Object(0);
+               Object* res = new Object(0);
                if (!res)
                        return NULL;
 
                if (!res)
                        return NULL;
 
@@ -280,12 +280,12 @@ struct Object
 
        void write(Object* this, double d)
        {
 
        void write(Object* this, double d)
        {
-               abc_html_write_i(this, d);
+               abc_html_write_d(this, d);
        }
 
        Object* operator+(Object* this, Object* that)
        {
        }
 
        Object* operator+(Object* this, Object* that)
        {
-               Object* res = create Object(this->d + that->d);
+               Object* res = new Object(this->d + that->d);
                return res;
        }
 
                return res;
        }
 
@@ -312,8 +312,22 @@ struct Object
 
 //             printf("\n");
        }
 
 //             printf("\n");
        }
+
+       Object* Math_sqrt(Object* this, double d)
+       {
+               Object* res = new Object(sqrt(d));
+               return res;
+       }
+
+       Object* Math_sqrt(Object* this, Object* obj)
+       {
+               Object* res = new Object(sqrt(obj->d));
+               return res;
+       }
 };
 
 };
 
+const double Math_PI = 3.1415926;
+
 void Object_func_arguments(Object* this, int i, Object* arg)
 {
        if (i < this->length) {
 void Object_func_arguments(Object* this, int i, Object* arg)
 {
        if (i < this->length) {
index a9b9e565aead7c25ca06bc9c88466031a6429e29..ad60e6693a1fd59ab863690f754531c8c3d43e37 100644 (file)
@@ -22,8 +22,7 @@ static scf_key_word_t  key_words[] =
        {"goto",      SCF_LEX_WORD_KEY_GOTO},
 
        {"sizeof",    SCF_LEX_WORD_KEY_SIZEOF},
        {"goto",      SCF_LEX_WORD_KEY_GOTO},
 
        {"sizeof",    SCF_LEX_WORD_KEY_SIZEOF},
-
-       {"create",    SCF_LEX_WORD_KEY_CREATE},
+       {"new",       SCF_LEX_WORD_KEY_NEW},
 
        {"operator",  SCF_LEX_WORD_KEY_OPERATOR},
 
 
        {"operator",  SCF_LEX_WORD_KEY_OPERATOR},
 
@@ -1412,6 +1411,45 @@ int __lex_use_macro(scf_lex_t* lex, scf_lex_word_t** pp)
        return 0;
 }
 
        return 0;
 }
 
+static int __lex_math(scf_lex_t* lex, scf_lex_word_t* w)
+{
+       scf_lex_word_t* w1 = NULL;
+       scf_lex_word_t* w2 = NULL;
+
+       int ret = __lex_pop_word(lex, &w1);
+       if (ret < 0)
+               return ret;
+
+       if (SCF_LEX_WORD_DOT != w1->type) {
+               scf_loge("needs '.' after 'Math', file: %s, line: %d\n", w1->file->data, w1->line);
+
+               scf_lex_word_free(w1);
+               return -1;
+       }
+       scf_lex_word_free(w1);
+       w1 = NULL;
+
+       ret = scf_string_cat_cstr_len(w->text, "_", 1);
+       if (ret < 0)
+               return ret;
+
+       ret = __lex_pop_word(lex, &w2);
+       if (ret < 0)
+               return ret;
+
+       if (SCF_LEX_WORD_ID != w2->type) {
+               scf_loge("needs an identity (but '%s') after 'Math.', file: %s, line: %d\n", w2->text->data, w2->file->data, w2->line);
+
+               scf_lex_word_free(w2);
+               return -1;
+       }
+
+       ret = scf_string_cat(w->text, w2->text);
+
+       scf_lex_word_free(w2);
+       return ret;
+}
+
 int scf_lex_pop_word(scf_lex_t* lex, scf_lex_word_t** pword)
 {
        if (!lex || (!lex->fp && !lex->text) || !pword)
 int scf_lex_pop_word(scf_lex_t* lex, scf_lex_word_t** pword)
 {
        if (!lex || (!lex->fp && !lex->text) || !pword)
@@ -1419,11 +1457,21 @@ int scf_lex_pop_word(scf_lex_t* lex, scf_lex_word_t** pword)
 
        scf_lex_word_t* w  = NULL;
        scf_lex_word_t* w1 = NULL;
 
        scf_lex_word_t* w  = NULL;
        scf_lex_word_t* w1 = NULL;
+       scf_lex_word_t* w2 = NULL;
 
        int ret = __lex_pop_word(lex, &w);
        if (ret < 0)
                return ret;
 
 
        int ret = __lex_pop_word(lex, &w);
        if (ret < 0)
                return ret;
 
+       if (!strcmp(w->text->data, "Math")) {
+               ret = __lex_math(lex, w);
+
+               if (ret < 0) {
+                       scf_lex_word_free(w);
+                       return ret;
+               }
+       }
+
        // parse macro
        while (SCF_LEX_WORD_HASH == w->type) {
 
        // parse macro
        while (SCF_LEX_WORD_HASH == w->type) {
 
index 101a0c7e86a0ed9776742f05eb7918b623176384..0fe59c734392ed2faace734055c68ccb7c94af8e 100644 (file)
@@ -30,3 +30,4 @@ char*     strncpy(char *dst,      const char *src, uintptr_t n);
 int       memcpy (void* dst,      const void* src, uintptr_t n);
 int       memcmp (void* dst,      const void* src, uintptr_t n);
 
 int       memcpy (void* dst,      const void* src, uintptr_t n);
 int       memcmp (void* dst,      const void* src, uintptr_t n);
 
+double    sqrt(double d);
index 86ac0e6ea623a7a5284db4d2b1f12192070864b6..bd58607a9745f1aa73cedc7aec097cd305b77110 100644 (file)
@@ -69,7 +69,7 @@ struct complex
 
                complex* res;
 
 
                complex* res;
 
-               res = create complex(0.0, 0.0);
+               res = new complex(0.0, 0.0);
                if (!res)
                        return NULL, -1;
 
                if (!res)
                        return NULL, -1;
 
@@ -85,7 +85,7 @@ struct complex
 
                complex* res;
 
 
                complex* res;
 
-               res = create complex(0.0, 0.0);
+               res = new complex(0.0, 0.0);
                if (!res)
                        return NULL, -1;
 
                if (!res)
                        return NULL, -1;
 
@@ -101,7 +101,7 @@ struct complex
 
                complex* res;
 
 
                complex* res;
 
-               res = create complex(0.0, 0.0);
+               res = new complex(0.0, 0.0);
                if (!res)
                        return NULL, -1;
 
                if (!res)
                        return NULL, -1;
 
@@ -122,7 +122,7 @@ struct complex
 
                complex* res;
 
 
                complex* res;
 
-               res = create complex(0.0, 0.0);
+               res = new complex(0.0, 0.0);
                if (!res)
                        return NULL, -1;
 
                if (!res)
                        return NULL, -1;
 
index c45c34f6b1411fef05cc6fb09d6459e11d924a9d..7121eddde343917670abdc7f059505698f80a713 100644 (file)
@@ -96,7 +96,7 @@ struct string
        {
                string* s;
 
        {
                string* s;
 
-               s = create string();
+               s = new string();
                if (!s)
                        return NULL, -1;
 
                if (!s)
                        return NULL, -1;
 
index a8cb0299ce8087501d192137110681ee551372f8..07b7f397c4eef36a25b00c671292921473da6873 100755 (executable)
Binary files a/js/lib/x64/lib64/ld-linux-x86-64.so.2 and b/js/lib/x64/lib64/ld-linux-x86-64.so.2 differ
index f5b26e3130fb1d01b56873cae806f997ecb222a9..5734ad994f3b8580d1af4e384f09b2260f2f1380 100755 (executable)
Binary files a/js/lib/x64/libc.so.6 and b/js/lib/x64/libc.so.6 differ
diff --git a/js/lib/x64/libm.so.6 b/js/lib/x64/libm.so.6
new file mode 100644 (file)
index 0000000..71b62f7
Binary files /dev/null and b/js/lib/x64/libm.so.6 differ
index 4fa9e7592b35a2d936013011e4d0da8fae96fcee..569d4cc599114e5d9e807cfc9feb302d79251c9a 100644 (file)
@@ -126,7 +126,7 @@ CFILES += scf_dfa_macro.c
 CFILES += scf_dfa_include.c
 
 CFILES += scf_dfa_call.c
 CFILES += scf_dfa_include.c
 
 CFILES += scf_dfa_call.c
-CFILES += scf_dfa_create.c
+CFILES += scf_dfa_new.c
 CFILES += scf_dfa_sizeof.c
 CFILES += scf_dfa_container.c
 CFILES += scf_dfa_va_arg.c
 CFILES += scf_dfa_sizeof.c
 CFILES += scf_dfa_container.c
 CFILES += scf_dfa_va_arg.c
index d592dd3da942e5555b98e54ab5cc09b674960e5a..5f4bcfc3349e31dc315d853104f99902762ba851 100644 (file)
@@ -14,6 +14,7 @@ static char* __sofiles[] =
 {
        "/lib64/ld-linux-x86-64.so.2",
        "libc.so.6",
 {
        "/lib64/ld-linux-x86-64.so.2",
        "libc.so.6",
+       "libm.so.6",
 };
 
 static char* __arm64_objs[] =
 };
 
 static char* __arm64_objs[] =
index 15e433a3a457b7ea3a1ef9f39145c4736c655dde..7197a1b5aee7c74e8b0e75c53a41a21682f098e6 100644 (file)
@@ -169,7 +169,7 @@ static int _call_add_arguments(scf_ast_t* ast, scf_lex_word_t* w, int n_members,
        scf_variable_t*  v;
        scf_block_t*     b;
        scf_type_t*      pt = scf_block_find_type_type(ast->current_block, SCF_FUNCTION_PTR);
        scf_variable_t*  v;
        scf_block_t*     b;
        scf_type_t*      pt = scf_block_find_type_type(ast->current_block, SCF_FUNCTION_PTR);
-       scf_node_t*      create;
+       scf_node_t*      new;
        scf_node_t*      assign;
        scf_node_t*      node;
        scf_node_t*      arguments;
        scf_node_t*      assign;
        scf_node_t*      node;
        scf_node_t*      arguments;
@@ -213,16 +213,16 @@ static int _call_add_arguments(scf_ast_t* ast, scf_lex_word_t* w, int n_members,
        }
        b = NULL;
 
        }
        b = NULL;
 
-       // add create()
-       create = scf_node_alloc(w, SCF_OP_CREATE, NULL);
-       if (!create) {
+       // add new()
+       new = scf_node_alloc(w, SCF_OP_NEW, NULL);
+       if (!new) {
                scf_node_free(assign);
                return -ENOMEM;
        }
 
                scf_node_free(assign);
                return -ENOMEM;
        }
 
-       ret = scf_node_add_child(assign, create);
+       ret = scf_node_add_child(assign, new);
        if (ret < 0) {
        if (ret < 0) {
-               scf_node_free(create);
+               scf_node_free(new);
                scf_node_free(assign);
                return ret;
        }
                scf_node_free(assign);
                return ret;
        }
@@ -243,7 +243,7 @@ static int _call_add_arguments(scf_ast_t* ast, scf_lex_word_t* w, int n_members,
                return -ENOMEM;
        }
 
                return -ENOMEM;
        }
 
-       ret = scf_node_add_child(create, node);
+       ret = scf_node_add_child(new, node);
        if (ret < 0) {
                scf_node_free(node);
                scf_node_free(assign);
        if (ret < 0) {
                scf_node_free(node);
                scf_node_free(assign);
@@ -251,14 +251,14 @@ static int _call_add_arguments(scf_ast_t* ast, scf_lex_word_t* w, int n_members,
        }
 
        // add obj name
        }
 
        // add obj name
-       ret = scf_ast_add_const_str(ast, create, Object->w);
+       ret = scf_ast_add_const_str(ast, new, Object->w);
        if (ret < 0) {
                scf_node_free(assign);
                return ret;
        }
 
        // add obj members
        if (ret < 0) {
                scf_node_free(assign);
                return ret;
        }
 
        // add obj members
-       ret = scf_ast_add_const_var(ast, create, SCF_VAR_INT, n_members);
+       ret = scf_ast_add_const_var(ast, new, SCF_VAR_INT, n_members);
        if (ret < 0) {
                scf_node_free(assign);
                return ret;
        if (ret < 0) {
                scf_node_free(assign);
                return ret;
@@ -293,7 +293,7 @@ static int _call_add_arguments(scf_ast_t* ast, scf_lex_word_t* w, int n_members,
                return ret;
        }
 
                return ret;
        }
 
-       e->js_create = e2;
+       e->js_new = e2;
        return 0;
 }
 
        return 0;
 }
 
@@ -600,22 +600,22 @@ static int _dfa_init_syntax_call(scf_dfa_t* dfa)
 
        SCF_DFA_GET_MODULE_NODE(dfa, expr,   entry,    expr);
 
 
        SCF_DFA_GET_MODULE_NODE(dfa, expr,   entry,    expr);
 
-       SCF_DFA_GET_MODULE_NODE(dfa, create, create,   create);
-       SCF_DFA_GET_MODULE_NODE(dfa, create, identity, create_id);
-       SCF_DFA_GET_MODULE_NODE(dfa, create, rp,       create_rp);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,    new,      new);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,    identity, new_id);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,    rp,       new_rp);
 
        // no args
        scf_dfa_node_add_child(lp,       rp);
 
        // have args
 
 
        // no args
        scf_dfa_node_add_child(lp,       rp);
 
        // have args
 
-       // arg: create class object, such as: list.push(new A);
-       scf_dfa_node_add_child(lp,        create);
-       scf_dfa_node_add_child(create_id, comma);
-       scf_dfa_node_add_child(create_id, rp);
-       scf_dfa_node_add_child(create_rp, comma);
-       scf_dfa_node_add_child(create_rp, rp);
-       scf_dfa_node_add_child(comma,     create);
+       // arg: new class object, such as: list.push(new A);
+       scf_dfa_node_add_child(lp,        new);
+       scf_dfa_node_add_child(new_id,    comma);
+       scf_dfa_node_add_child(new_id,    rp);
+       scf_dfa_node_add_child(new_rp,    comma);
+       scf_dfa_node_add_child(new_rp,    rp);
+       scf_dfa_node_add_child(comma,     new);
 
        scf_dfa_node_add_child(lp,       expr);
        scf_dfa_node_add_child(expr,     comma);
 
        scf_dfa_node_add_child(lp,       expr);
        scf_dfa_node_add_child(expr,     comma);
index 6ff8d56fa26310d99fa8ca486ac54f59b211ba0d..205c3c40fa2094e8f90266b71ec03177806333ff 100644 (file)
@@ -798,7 +798,7 @@ int _expr_multi_rets(scf_expr_t* e)
 
                nb_rets = f->rets->size;
 
 
                nb_rets = f->rets->size;
 
-       } else if (SCF_OP_CREATE == call->type)
+       } else if (SCF_OP_NEW == call->type)
                nb_rets = 2;
        else
                return 0;
                nb_rets = 2;
        else
                return 0;
@@ -1030,9 +1030,9 @@ static int _dfa_init_syntax_expr(scf_dfa_t* dfa)
        SCF_DFA_GET_MODULE_NODE(dfa, sizeof,   _sizeof,     _sizeof);
        SCF_DFA_GET_MODULE_NODE(dfa, sizeof,   rp,          sizeof_rp);
 
        SCF_DFA_GET_MODULE_NODE(dfa, sizeof,   _sizeof,     _sizeof);
        SCF_DFA_GET_MODULE_NODE(dfa, sizeof,   rp,          sizeof_rp);
 
-       SCF_DFA_GET_MODULE_NODE(dfa, create,   create,      create);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,   identity,    create_id);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,   rp,          create_rp);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,      new,         new);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,      identity,    new_id);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,      rp,          new_rp);
 
        SCF_DFA_GET_MODULE_NODE(dfa, type,     entry,       type_entry);
        SCF_DFA_GET_MODULE_NODE(dfa, type,     base_type,   base_type);
 
        SCF_DFA_GET_MODULE_NODE(dfa, type,     entry,       type_entry);
        SCF_DFA_GET_MODULE_NODE(dfa, type,     base_type,   base_type);
@@ -1070,10 +1070,10 @@ static int _dfa_init_syntax_expr(scf_dfa_t* dfa)
        scf_dfa_node_add_child(container_rp, comma);
        scf_dfa_node_add_child(container_rp, semicolon);
 
        scf_dfa_node_add_child(container_rp, comma);
        scf_dfa_node_add_child(container_rp, semicolon);
 
-       // create class object
-       scf_dfa_node_add_child(expr,       create);
-       scf_dfa_node_add_child(create_id,  semicolon);
-       scf_dfa_node_add_child(create_rp,  semicolon);
+       // new class object
+       scf_dfa_node_add_child(expr,       new);
+       scf_dfa_node_add_child(new_id,     semicolon);
+       scf_dfa_node_add_child(new_rp,     semicolon);
 
        // va_arg(ap, type)
        scf_dfa_node_add_child(expr,       va_arg);
 
        // va_arg(ap, type)
        scf_dfa_node_add_child(expr,       va_arg);
@@ -1147,8 +1147,8 @@ static int _dfa_init_syntax_expr(scf_dfa_t* dfa)
        scf_dfa_node_add_child(binary_op,  number);
        scf_dfa_node_add_child(binary_op,  identity);
 
        scf_dfa_node_add_child(binary_op,  number);
        scf_dfa_node_add_child(binary_op,  identity);
 
-       // create class object
-       scf_dfa_node_add_child(binary_op,  create);
+       // new class object
+       scf_dfa_node_add_child(binary_op,  new);
        scf_dfa_node_add_child(binary_op,  expr);
 
        scf_dfa_node_add_child(unary_post, rp);
        scf_dfa_node_add_child(binary_op,  expr);
 
        scf_dfa_node_add_child(unary_post, rp);
similarity index 54%
rename from js/parse/scf_dfa_create.c
rename to js/parse/scf_dfa_new.c
index 1e689c16fe589e809e803f3dec4573c9f7394258..45987740c5e4cb6dfd07b81765270b9fa9befaf3 100644 (file)
@@ -3,26 +3,26 @@
 #include"scf_parse.h"
 #include"scf_stack.h"
 
 #include"scf_parse.h"
 #include"scf_stack.h"
 
-extern scf_dfa_module_t dfa_module_create;
+extern scf_dfa_module_t dfa_module_new;
 
 typedef struct {
 
        int              nb_lps;
        int              nb_rps;
 
 
 typedef struct {
 
        int              nb_lps;
        int              nb_rps;
 
-       scf_node_t*      create;
+       scf_node_t*      new;
 
        scf_expr_t*      parent_expr;
 
 
        scf_expr_t*      parent_expr;
 
-} create_module_data_t;
+} new_module_data_t;
 
 int _call_add_obj(scf_ast_t* ast, scf_lex_word_t* w, scf_node_t* call, scf_expr_t* e, scf_type_t* Object);
 
 
 int _call_add_obj(scf_ast_t* ast, scf_lex_word_t* w, scf_node_t* call, scf_expr_t* e, scf_type_t* Object);
 
-static int _create_is_create(scf_dfa_t* dfa, void* word)
+static int _new_is_new(scf_dfa_t* dfa, void* word)
 {
        scf_lex_word_t* w = word;
 
 {
        scf_lex_word_t* w = word;
 
-       return SCF_LEX_WORD_KEY_CREATE == w->type;
+       return SCF_LEX_WORD_KEY_NEW == w->type;
 }
 
 static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
 }
 
 static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
@@ -34,7 +34,7 @@ static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
        scf_type_t*      pt     = NULL;
        scf_node_t*      node;
        scf_node_t*      assign;
        scf_type_t*      pt     = NULL;
        scf_node_t*      node;
        scf_node_t*      assign;
-       scf_node_t*      create;
+       scf_node_t*      new;
        scf_node_t*      _return;
        scf_expr_t*      e;
        scf_block_t*     b;
        scf_node_t*      _return;
        scf_expr_t*      e;
        scf_block_t*     b;
@@ -56,7 +56,7 @@ static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
        f->argv->data[0] = that;
        scf_scope_push_var(f->scope, that);
 
        f->argv->data[0] = that;
        scf_scope_push_var(f->scope, that);
 
-       // this = create Object()
+       // this = new Object()
        // add 'this'
        node = scf_node_alloc(NULL, this->type, this);
        if (!node)
        // add 'this'
        node = scf_node_alloc(NULL, this->type, this);
        if (!node)
@@ -89,16 +89,16 @@ static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
                return ret;
        }
 
                return ret;
        }
 
-       // add 'create'
-       create = scf_node_alloc(this->w, SCF_OP_CREATE, NULL);
-       if (!create) {
+       // add 'new'
+       new = scf_node_alloc(this->w, SCF_OP_NEW, NULL);
+       if (!new) {
                scf_node_free(assign);
                return -ENOMEM;
        }
 
                scf_node_free(assign);
                return -ENOMEM;
        }
 
-       ret = scf_node_add_child(assign, create);
+       ret = scf_node_add_child(assign, new);
        if (ret < 0) {
        if (ret < 0) {
-               scf_node_free(create);
+               scf_node_free(new);
                scf_node_free(assign);
                return ret;
        }
                scf_node_free(assign);
                return ret;
        }
@@ -119,7 +119,7 @@ static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
                return -ENOMEM;
        }
 
                return -ENOMEM;
        }
 
-       ret = scf_node_add_child(create, node);
+       ret = scf_node_add_child(new, node);
        if (ret < 0) {
                scf_node_free(node);
                scf_node_free(assign);
        if (ret < 0) {
                scf_node_free(node);
                scf_node_free(assign);
@@ -189,30 +189,30 @@ static int __js_init_func(scf_ast_t* ast, scf_function_t* f)
        return 0;
 }
 
        return 0;
 }
 
-static int _create_action_lp_stat(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_lp_stat(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       dfa_data_t*           d  = data;
-       scf_stack_t*          s  = d->module_datas[dfa_module_create.index];
-       create_module_data_t* md = d->module_datas[dfa_module_create.index];
+       dfa_data_t*         d  = data;
+       scf_stack_t*        s  = d->module_datas[dfa_module_new.index];
+       new_module_data_t*  md = d->module_datas[dfa_module_new.index];
 
        md->nb_lps++;
 
 
        md->nb_lps++;
 
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_lp_stat"), SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_lp_stat"), SCF_DFA_HOOK_POST);
 
        return SCF_DFA_NEXT_WORD;
 }
 
 
        return SCF_DFA_NEXT_WORD;
 }
 
-static int _create_action_create(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_new(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       scf_parse_t*          parse = dfa->priv;
-       dfa_data_t*           d     = data;
-       scf_lex_word_t*       w     = words->data[words->size - 1];
-       create_module_data_t* md    = d->module_datas[dfa_module_create.index];
+       scf_parse_t*        parse = dfa->priv;
+       dfa_data_t*         d     = data;
+       scf_lex_word_t*     w     = words->data[words->size - 1];
+       new_module_data_t*  md    = d->module_datas[dfa_module_new.index];
 
 
-       SCF_CHECK_ERROR(md->create, SCF_DFA_ERROR, "\n");
+       SCF_CHECK_ERROR(md->new, SCF_DFA_ERROR, "\n");
 
 
-       md->create = scf_node_alloc(w, SCF_OP_CREATE, NULL);
-       if (!md->create)
+       md->new = scf_node_alloc(w, SCF_OP_NEW, NULL);
+       if (!md->new)
                return SCF_DFA_ERROR;
 
        md->nb_lps      = 0;
                return SCF_DFA_ERROR;
 
        md->nb_lps      = 0;
@@ -222,13 +222,13 @@ static int _create_action_create(scf_dfa_t* dfa, scf_vector_t* words, void* data
        return SCF_DFA_NEXT_WORD;
 }
 
        return SCF_DFA_NEXT_WORD;
 }
 
-static int _create_action_identity(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_identity(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       scf_parse_t*          parse = dfa->priv;
-       dfa_data_t*           d     = data;
-       scf_lex_word_t*       w     = words->data[words->size - 1];
-       scf_function_t*       f     = NULL;
-       create_module_data_t* md    = d->module_datas[dfa_module_create.index];
+       scf_parse_t*        parse = dfa->priv;
+       dfa_data_t*         d     = data;
+       scf_lex_word_t*     w     = words->data[words->size - 1];
+       scf_function_t*     f     = NULL;
+       new_module_data_t*  md    = d->module_datas[dfa_module_new.index];
 
        scf_type_t* t  = NULL;
        scf_type_t* pt = NULL;
 
        scf_type_t* t  = NULL;
        scf_type_t* pt = NULL;
@@ -260,7 +260,7 @@ static int _create_action_identity(scf_dfa_t* dfa, scf_vector_t* words, void* da
 
        if (f && f->js_flag) {
                t->node.js_flag = 1;
 
        if (f && f->js_flag) {
                t->node.js_flag = 1;
-               md->create->js_flag = 1;
+               md->new->js_flag = 1;
 
                if (!f->init_flag) {
                        if (__js_init_func(parse->ast, f) < 0)
 
                if (!f->init_flag) {
                        if (__js_init_func(parse->ast, f) < 0)
@@ -275,51 +275,51 @@ static int _create_action_identity(scf_dfa_t* dfa, scf_vector_t* words, void* da
        scf_node_t* node = scf_node_alloc(NULL, var->type, var);
        SCF_CHECK_ERROR(!node, SCF_DFA_ERROR, "node alloc failed\n");
 
        scf_node_t* node = scf_node_alloc(NULL, var->type, var);
        SCF_CHECK_ERROR(!node, SCF_DFA_ERROR, "node alloc failed\n");
 
-       int ret = scf_node_add_child(md->create, node);
+       int ret = scf_node_add_child(md->new, node);
        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
 
        w = dfa->ops->pop_word(dfa);
        if (SCF_LEX_WORD_LP != w->type) {
 
                if (d->expr) {
        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
 
        w = dfa->ops->pop_word(dfa);
        if (SCF_LEX_WORD_LP != w->type) {
 
                if (d->expr) {
-                       ret = scf_expr_add_node(d->expr, md->create);
+                       ret = scf_expr_add_node(d->expr, md->new);
                        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "expr add child failed\n");
                } else
                        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "expr add child failed\n");
                } else
-                       d->expr = md->create;
+                       d->expr = md->new;
 
 
-               md->create = NULL;
+               md->new = NULL;
        }
        dfa->ops->push_word(dfa, w);
 
        return SCF_DFA_NEXT_WORD;
 }
 
        }
        dfa->ops->push_word(dfa, w);
 
        return SCF_DFA_NEXT_WORD;
 }
 
-static int _create_action_lp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_lp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       scf_parse_t*          parse = dfa->priv;
-       dfa_data_t*           d     = data;
-       scf_lex_word_t*       w     = words->data[words->size - 1];
-       create_module_data_t* md    = d->module_datas[dfa_module_create.index];
+       scf_parse_t*        parse = dfa->priv;
+       dfa_data_t*         d     = data;
+       scf_lex_word_t*     w     = words->data[words->size - 1];
+       new_module_data_t*  md    = d->module_datas[dfa_module_new.index];
 
        scf_logd("d->expr: %p\n", d->expr);
 
        d->expr = NULL;
        d->expr_local_flag++;
 
 
        scf_logd("d->expr: %p\n", d->expr);
 
        d->expr = NULL;
        d->expr_local_flag++;
 
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_rp"),      SCF_DFA_HOOK_POST);
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_comma"),   SCF_DFA_HOOK_POST);
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_lp_stat"), SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_rp"),      SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_comma"),   SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_lp_stat"), SCF_DFA_HOOK_POST);
 
        return SCF_DFA_NEXT_WORD;
 }
 
 
        return SCF_DFA_NEXT_WORD;
 }
 
-static int _create_action_rp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_rp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       scf_parse_t*          parse  = dfa->priv;
-       dfa_data_t*           d      = data;
-       scf_lex_word_t*       w      = words->data[words->size - 1];
-       create_module_data_t* md     = d->module_datas[dfa_module_create.index];
-       scf_type_t*           Object = NULL;
+       scf_parse_t*        parse  = dfa->priv;
+       dfa_data_t*         d      = data;
+       scf_lex_word_t*     w      = words->data[words->size - 1];
+       new_module_data_t*  md     = d->module_datas[dfa_module_new.index];
+       scf_type_t*         Object = NULL;
 
        md->nb_rps++;
 
 
        md->nb_rps++;
 
@@ -327,26 +327,26 @@ static int _create_action_rp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 
        if (md->nb_rps < md->nb_lps) {
 
 
        if (md->nb_rps < md->nb_lps) {
 
-               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_rp"),      SCF_DFA_HOOK_POST);
-               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_comma"),   SCF_DFA_HOOK_POST);
-               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_lp_stat"), SCF_DFA_HOOK_POST);
+               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_rp"),      SCF_DFA_HOOK_POST);
+               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_comma"),   SCF_DFA_HOOK_POST);
+               SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_lp_stat"), SCF_DFA_HOOK_POST);
 
                return SCF_DFA_NEXT_WORD;
        }
        assert(md->nb_rps == md->nb_lps);
 
        if (d->expr) {
 
                return SCF_DFA_NEXT_WORD;
        }
        assert(md->nb_rps == md->nb_lps);
 
        if (d->expr) {
-               if (md->create->js_flag) {
+               if (md->new->js_flag) {
                        int ret = scf_ast_find_type(&Object, parse->ast, "Object");
                        if (ret < 0)
                                return ret;
 
                        int ret = scf_ast_find_type(&Object, parse->ast, "Object");
                        if (ret < 0)
                                return ret;
 
-                       ret = _call_add_obj(parse->ast, w, md->create, d->expr, Object);
+                       ret = _call_add_obj(parse->ast, w, md->new, d->expr, Object);
                        if (ret < 0)
                                return ret;
                }
 
                        if (ret < 0)
                                return ret;
                }
 
-               int ret = scf_node_add_child(md->create, d->expr);
+               int ret = scf_node_add_child(md->new, d->expr);
                d->expr = NULL;
                SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
        }
                d->expr = NULL;
                SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
        }
@@ -354,108 +354,105 @@ static int _create_action_rp(scf_dfa_t* dfa, scf_vector_t* words, void* data)
        d->expr = md->parent_expr;
        d->expr_local_flag--;
 
        d->expr = md->parent_expr;
        d->expr_local_flag--;
 
-       if (md->create->js_flag)
-               md->create->type = SCF_OP_CALL;
+       if (md->new->js_flag)
+               md->new->type = SCF_OP_CALL;
 
        if (d->expr) {
 
        if (d->expr) {
-               int ret = scf_expr_add_node(d->expr, md->create);
+               int ret = scf_expr_add_node(d->expr, md->new);
                SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "expr add child failed\n");
        } else
                SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "expr add child failed\n");
        } else
-               d->expr = md->create;
+               d->expr = md->new;
 
 
-       md->create = NULL;
+       md->new = NULL;
 
        scf_logi("d->expr: %p\n", d->expr);
 
        return SCF_DFA_NEXT_WORD;
 }
 
 
        scf_logi("d->expr: %p\n", d->expr);
 
        return SCF_DFA_NEXT_WORD;
 }
 
-static int _create_action_comma(scf_dfa_t* dfa, scf_vector_t* words, void* data)
+static int _new_action_comma(scf_dfa_t* dfa, scf_vector_t* words, void* data)
 {
 {
-       scf_parse_t*          parse  = dfa->priv;
-       dfa_data_t*           d      = data;
-       scf_lex_word_t*       w      = words->data[words->size - 1];
-       create_module_data_t* md     = d->module_datas[dfa_module_create.index];
-       scf_type_t*           Object = NULL;
+       scf_parse_t*        parse  = dfa->priv;
+       dfa_data_t*         d      = data;
+       scf_lex_word_t*     w      = words->data[words->size - 1];
+       new_module_data_t*  md     = d->module_datas[dfa_module_new.index];
+       scf_type_t*         Object = NULL;
 
        SCF_CHECK_ERROR(!d->expr, SCF_DFA_ERROR, "\n");
 
 
        SCF_CHECK_ERROR(!d->expr, SCF_DFA_ERROR, "\n");
 
-       if (md->create->js_flag) {
+       if (md->new->js_flag) {
                int ret = scf_ast_find_type(&Object, parse->ast, "Object");
                if (ret < 0)
                        return ret;
 
                int ret = scf_ast_find_type(&Object, parse->ast, "Object");
                if (ret < 0)
                        return ret;
 
-               ret = _call_add_obj(parse->ast, w, md->create, d->expr, Object);
+               ret = _call_add_obj(parse->ast, w, md->new, d->expr, Object);
                if (ret < 0)
                        return ret;
        }
 
                if (ret < 0)
                        return ret;
        }
 
-       int ret = scf_node_add_child(md->create, d->expr);
+       int ret = scf_node_add_child(md->new, d->expr);
        d->expr = NULL;
        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
 
        d->expr = NULL;
        SCF_CHECK_ERROR(ret < 0, SCF_DFA_ERROR, "node add child failed\n");
 
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_comma"),   SCF_DFA_HOOK_POST);
-       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "create_lp_stat"), SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_comma"),   SCF_DFA_HOOK_POST);
+       SCF_DFA_PUSH_HOOK(scf_dfa_find_node(dfa, "new_lp_stat"), SCF_DFA_HOOK_POST);
 
        return SCF_DFA_SWITCH_TO;
 }
 
 
        return SCF_DFA_SWITCH_TO;
 }
 
-static int _dfa_init_module_create(scf_dfa_t* dfa)
+static int _dfa_init_module_new(scf_dfa_t* dfa)
 {
 {
-       SCF_DFA_MODULE_NODE(dfa, create, create,    _create_is_create,    _create_action_create);
+       SCF_DFA_MODULE_NODE(dfa, new, new,       _new_is_new,          _new_action_new);
+       SCF_DFA_MODULE_NODE(dfa, new, identity,  scf_dfa_is_identity,  _new_action_identity);
 
 
-       SCF_DFA_MODULE_NODE(dfa, create, identity,  scf_dfa_is_identity,  _create_action_identity);
+       SCF_DFA_MODULE_NODE(dfa, new, lp,        scf_dfa_is_lp,        _new_action_lp);
+       SCF_DFA_MODULE_NODE(dfa, new, rp,        scf_dfa_is_rp,        _new_action_rp);
+       SCF_DFA_MODULE_NODE(dfa, new, lp_stat,   scf_dfa_is_lp,        _new_action_lp_stat);
+       SCF_DFA_MODULE_NODE(dfa, new, comma,     scf_dfa_is_comma,     _new_action_comma);
 
 
-       SCF_DFA_MODULE_NODE(dfa, create, lp,        scf_dfa_is_lp,        _create_action_lp);
-       SCF_DFA_MODULE_NODE(dfa, create, rp,        scf_dfa_is_rp,        _create_action_rp);
-
-       SCF_DFA_MODULE_NODE(dfa, create, lp_stat,   scf_dfa_is_lp,        _create_action_lp_stat);
-
-       SCF_DFA_MODULE_NODE(dfa, create, comma,     scf_dfa_is_comma,     _create_action_comma);
-
-       scf_parse_t*       parse = dfa->priv;
-       dfa_data_t*  d     = parse->dfa_data;
-       create_module_data_t* md    = d->module_datas[dfa_module_create.index];
+       scf_parse_t*        parse = dfa->priv;
+       dfa_data_t*         d     = parse->dfa_data;
+       new_module_data_t*  md    = d->module_datas[dfa_module_new.index];
 
        assert(!md);
 
 
        assert(!md);
 
-       md = calloc(1, sizeof(create_module_data_t));
+       md = calloc(1, sizeof(new_module_data_t));
        if (!md) {
                scf_loge("\n");
                return SCF_DFA_ERROR;
        }
 
        if (!md) {
                scf_loge("\n");
                return SCF_DFA_ERROR;
        }
 
-       d->module_datas[dfa_module_create.index] = md;
+       d->module_datas[dfa_module_new.index] = md;
 
        return SCF_DFA_OK;
 }
 
 
        return SCF_DFA_OK;
 }
 
-static int _dfa_fini_module_create(scf_dfa_t* dfa)
+static int _dfa_fini_module_new(scf_dfa_t* dfa)
 {
 {
-       scf_parse_t*          parse = dfa->priv;
-       dfa_data_t*           d     = parse->dfa_data;
-       create_module_data_t* md    = d->module_datas[dfa_module_create.index];
+       scf_parse_t*        parse = dfa->priv;
+       dfa_data_t*         d     = parse->dfa_data;
+       new_module_data_t*  md    = d->module_datas[dfa_module_new.index];
 
        if (md) {
                free(md);
                md = NULL;
 
        if (md) {
                free(md);
                md = NULL;
-               d->module_datas[dfa_module_create.index] = NULL;
+               d->module_datas[dfa_module_new.index] = NULL;
        }
 
        return SCF_DFA_OK;
 }
 
        }
 
        return SCF_DFA_OK;
 }
 
-static int _dfa_init_syntax_create(scf_dfa_t* dfa)
+static int _dfa_init_syntax_new(scf_dfa_t* dfa)
 {
 {
-       SCF_DFA_GET_MODULE_NODE(dfa, create,  create,    create);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,  identity,  identity);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,  lp,        lp);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,  rp,        rp);
-       SCF_DFA_GET_MODULE_NODE(dfa, create,  comma,     comma);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,  new,       new);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,  identity,  identity);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,  lp,        lp);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,  rp,        rp);
+       SCF_DFA_GET_MODULE_NODE(dfa, new,  comma,     comma);
 
 
-       SCF_DFA_GET_MODULE_NODE(dfa, expr,    entry,     expr);
+       SCF_DFA_GET_MODULE_NODE(dfa, expr, entry,     expr);
 
 
-       scf_dfa_node_add_child(create,   identity);
+       scf_dfa_node_add_child(new,      identity);
        scf_dfa_node_add_child(identity, lp);
 
        scf_dfa_node_add_child(lp,       rp);
        scf_dfa_node_add_child(identity, lp);
 
        scf_dfa_node_add_child(lp,       rp);
@@ -468,11 +465,11 @@ static int _dfa_init_syntax_create(scf_dfa_t* dfa)
        return 0;
 }
 
        return 0;
 }
 
-scf_dfa_module_t dfa_module_create =
+scf_dfa_module_t dfa_module_new =
 {
 {
-       .name        = "create",
-       .init_module = _dfa_init_module_create,
-       .init_syntax = _dfa_init_syntax_create,
+       .name        = "new",
+       .init_module = _dfa_init_module_new,
+       .init_syntax = _dfa_init_syntax_new,
 
 
-       .fini_module = _dfa_fini_module_create,
+       .fini_module = _dfa_fini_module_new,
 };
 };
index 2654ceeea89ca605b7b5bce06ba522f6d50e1677..e9e3686149774583443b0f4aa4496bb4fd3f5b59 100644 (file)
@@ -7,7 +7,7 @@ extern scf_dfa_module_t  dfa_module_include;
 extern scf_dfa_module_t  dfa_module_identity;
 
 extern scf_dfa_module_t  dfa_module_expr;
 extern scf_dfa_module_t  dfa_module_identity;
 
 extern scf_dfa_module_t  dfa_module_expr;
-extern scf_dfa_module_t  dfa_module_create;
+extern scf_dfa_module_t  dfa_module_new;
 extern scf_dfa_module_t  dfa_module_call;
 extern scf_dfa_module_t  dfa_module_sizeof;
 extern scf_dfa_module_t  dfa_module_container;
 extern scf_dfa_module_t  dfa_module_call;
 extern scf_dfa_module_t  dfa_module_sizeof;
 extern scf_dfa_module_t  dfa_module_container;
@@ -50,7 +50,7 @@ scf_dfa_module_t* dfa_modules[] =
        &dfa_module_identity,
 
        &dfa_module_expr,
        &dfa_module_identity,
 
        &dfa_module_expr,
-       &dfa_module_create,
+       &dfa_module_new,
        &dfa_module_call,
        &dfa_module_sizeof,
        &dfa_module_container,
        &dfa_module_call,
        &dfa_module_sizeof,
        &dfa_module_container,
index 2ba29aa1b2f456dc45a3bd67d1dce231031ee488..b59b04499a3f0f0fda5d171096ae5bcc14c3ddc7 100644 (file)
@@ -194,6 +194,26 @@ static int _var_init_expr(scf_dfa_t* dfa, dfa_data_t* d, scf_vector_t* words, in
        d->expr->nodes[0] = node0;
        node0->parent     = d->expr;
 
        d->expr->nodes[0] = node0;
        node0->parent     = d->expr;
 
+       if (d->current_var->const_flag) {
+               scf_variable_t* r = NULL;
+
+               int ret = scf_expr_calculate(parse->ast, d->expr, &r);
+
+               scf_expr_free(d->expr);
+               d->expr = NULL;
+               if (ret < 0)
+                       return SCF_DFA_ERROR;
+
+               if (!scf_variable_const(r)) {
+                       scf_loge("\n");
+                       scf_variable_free(r);
+                       return SCF_DFA_ERROR;
+               }
+
+               scf_variable_free(r);
+               return 0;
+       }
+
        scf_node_add_child((scf_node_t*)parse->ast->current_block, (scf_node_t*)d->expr);
 
        scf_logd("d->expr->parent->type: %d\n", d->expr->parent->type);
        scf_node_add_child((scf_node_t*)parse->ast->current_block, (scf_node_t*)d->expr);
 
        scf_logd("d->expr->parent->type: %d\n", d->expr->parent->type);
index b3bb01095240f2f72bfed1e5b54ddd13930a7099..f1dfa570506595637df83a5ab7d3b09c42d98d63 100644 (file)
@@ -109,7 +109,7 @@ static int _scf_expr_calculate_internal(scf_ast_t* ast, scf_node_t* node, void*
        return 0;
 }
 
        return 0;
 }
 
-static int _scf_op_const_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
+static int _scf_op_const_new(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
 {
        assert(nb_nodes > 3);
 
 {
        assert(nb_nodes > 3);
 
@@ -923,7 +923,7 @@ scf_operator_handler_pt  const_operator_handlers[SCF_N_OPS] =
 
        [SCF_OP_ARRAY_INDEX]  =   _scf_op_const_array_index,
        [SCF_OP_POINTER    ]  =   _scf_op_const_pointer,
 
        [SCF_OP_ARRAY_INDEX]  =   _scf_op_const_array_index,
        [SCF_OP_POINTER    ]  =   _scf_op_const_pointer,
-       [SCF_OP_CREATE     ]  =   _scf_op_const_create,
+       [SCF_OP_NEW        ]  =   _scf_op_const_new,
 
        [SCF_OP_VA_START   ]  =   _scf_op_const_va_start,
        [SCF_OP_VA_ARG     ]  =   _scf_op_const_va_arg,
 
        [SCF_OP_VA_START   ]  =   _scf_op_const_va_start,
        [SCF_OP_VA_ARG     ]  =   _scf_op_const_va_arg,
index 66deb83531e07580efa127e07f4da68e5c99b987..51c1cfc2d8b8581c6310ea1142cec0fdd29a2491 100644 (file)
@@ -479,7 +479,7 @@ static int _semantic_do_overloaded_assign(scf_ast_t* ast, scf_node_t** nodes, in
        return ret;
 }
 
        return ret;
 }
 
-static int _semantic_do_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, scf_handler_data_t* d)
+static int _semantic_do_new(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, scf_handler_data_t* d)
 {
        scf_variable_t* v0;
        scf_variable_t* v_pf;
 {
        scf_variable_t* v0;
        scf_variable_t* v_pf;
@@ -489,7 +489,7 @@ static int _semantic_do_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes,
        scf_node_t*     parent  = nodes[0]->parent;
        scf_node_t*     node0   = nodes[0];
        scf_node_t*     node1   = nodes[1];
        scf_node_t*     parent  = nodes[0]->parent;
        scf_node_t*     node0   = nodes[0];
        scf_node_t*     node1   = nodes[1];
-       scf_node_t*     create  = NULL;
+       scf_node_t*     new     = NULL;
        scf_node_t*     node_pf = NULL;
 
        v0 = _scf_operand_get(nodes[0]);
        scf_node_t*     node_pf = NULL;
 
        v0 = _scf_operand_get(nodes[0]);
@@ -503,8 +503,8 @@ static int _semantic_do_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes,
        assert(t);
        assert(pt);
 
        assert(t);
        assert(pt);
 
-       create = scf_node_alloc(parent->w, SCF_OP_CREATE, NULL);
-       if (!create)
+       new = scf_node_alloc(parent->w, SCF_OP_NEW, NULL);
+       if (!new)
                return -ENOMEM;
 
        v_pf = SCF_VAR_ALLOC_BY_TYPE(t->w, pt, 1, 1, NULL);
                return -ENOMEM;
 
        v_pf = SCF_VAR_ALLOC_BY_TYPE(t->w, pt, 1, 1, NULL);
@@ -516,15 +516,15 @@ static int _semantic_do_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes,
        if (!node_pf)
                return -ENOMEM;
 
        if (!node_pf)
                return -ENOMEM;
 
-       ret = scf_node_add_child(create, node_pf);
+       ret = scf_node_add_child(new, node_pf);
        if (ret < 0)
                return ret;
 
        if (ret < 0)
                return ret;
 
-       ret = scf_node_add_child(create, node1);
+       ret = scf_node_add_child(new, node1);
        if (ret < 0)
                return ret;
        if (ret < 0)
                return ret;
-       create->parent   = parent;
-       parent->nodes[1] = create;
+       new->parent      = parent;
+       parent->nodes[1] = new;
 
        b = scf_block_alloc_cstr("multi_rets");
        if (!b)
 
        b = scf_block_alloc_cstr("multi_rets");
        if (!b)
@@ -719,7 +719,7 @@ static int _semantic_add_var(scf_node_t** pp, scf_ast_t* ast, scf_node_t* parent
        return 0;
 }
 
        return 0;
 }
 
-static int _scf_op_semantic_create(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
+static int _scf_op_semantic_new(scf_ast_t* ast, scf_node_t** nodes, int nb_nodes, void* data)
 {
        assert(nb_nodes >= 1);
 
 {
        assert(nb_nodes >= 1);
 
@@ -1734,8 +1734,8 @@ static int _scf_op_semantic_call(scf_ast_t* ast, scf_node_t** nodes, int nb_node
                parent->nodes[i - 1] = NULL;
                parent->nb_nodes--;
 
                parent->nodes[i - 1] = NULL;
                parent->nb_nodes--;
 
-               assert(arguments->js_create);
-               arguments->js_create->_3ac_done = 1;
+               assert(arguments->js_new);
+               arguments->js_new->_3ac_done = 1;
 
                scf_node_free(arguments);
                arguments = NULL;
 
                scf_node_free(arguments);
                arguments = NULL;
@@ -2788,7 +2788,7 @@ static int _semantic_multi_rets_assign(scf_ast_t* ast, scf_node_t** nodes, int n
                        break;
        }
 
                        break;
        }
 
-       if (SCF_OP_CALL != call->type && SCF_OP_CREATE != call->type) {
+       if (SCF_OP_CALL != call->type && SCF_OP_NEW != call->type) {
                scf_loge("\n");
                return -1;
        }
                scf_loge("\n");
                return -1;
        }
@@ -3054,7 +3054,7 @@ static int _scf_op_semantic_assign(scf_ast_t* ast, scf_node_t** nodes, int nb_no
 
                        if (scf_scope_find_function(t->scope, "__init")) {
 
 
                        if (scf_scope_find_function(t->scope, "__init")) {
 
-                               ret = _semantic_do_create(ast, nodes, nb_nodes, d);
+                               ret = _semantic_do_new(ast, nodes, nb_nodes, d);
                                if (0 == ret)
                                        return 0;
 
                                if (0 == ret)
                                        return 0;
 
@@ -3381,7 +3381,7 @@ scf_operator_handler_pt  semantic_operator_handlers[SCF_N_OPS] =
 
        [SCF_OP_ARRAY_INDEX]  =  _scf_op_semantic_array_index,
        [SCF_OP_POINTER    ]  =  _scf_op_semantic_pointer,
 
        [SCF_OP_ARRAY_INDEX]  =  _scf_op_semantic_array_index,
        [SCF_OP_POINTER    ]  =  _scf_op_semantic_pointer,
-       [SCF_OP_CREATE     ]  =  _scf_op_semantic_create,
+       [SCF_OP_NEW        ]  =  _scf_op_semantic_new,
 
        [SCF_OP_VA_START   ]  =  _scf_op_semantic_va_start,
        [SCF_OP_VA_ARG     ]  =  _scf_op_semantic_va_arg,
 
        [SCF_OP_VA_START   ]  =  _scf_op_semantic_va_start,
        [SCF_OP_VA_ARG     ]  =  _scf_op_semantic_va_arg,
index 60bf823cb9f5158c81bf54c0de938d8c662262d6..b27d10d571680b0034947945fe575b32d1a4f3b1 100644 (file)
@@ -1,14 +1,14 @@
 #include"scf_dfa.h"
 #include"scf_parse.h"
 
 #include"scf_dfa.h"
 #include"scf_parse.h"
 
-static int __object_create(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf_variable_t* var, int n_members, scf_type_t* Object,
+static int __object_new(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf_variable_t* var, int n_members, scf_type_t* Object,
                scf_vector_t* init_exprs,
                scf_vector_t* init_pos)
 {
        scf_variable_t*  v;
        scf_block_t*     b;
        scf_type_t*      pt = scf_block_find_type_type(ast->current_block, SCF_FUNCTION_PTR);
                scf_vector_t* init_exprs,
                scf_vector_t* init_pos)
 {
        scf_variable_t*  v;
        scf_block_t*     b;
        scf_type_t*      pt = scf_block_find_type_type(ast->current_block, SCF_FUNCTION_PTR);
-       scf_node_t*      create;
+       scf_node_t*      new;
        scf_node_t*      assign;
        scf_node_t*      node;
 
        scf_node_t*      assign;
        scf_node_t*      node;
 
@@ -32,14 +32,14 @@ static int __object_create(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf
        assign->nodes[0] = (scf_node_t*)b;
        b->node.parent   = assign;
 
        assign->nodes[0] = (scf_node_t*)b;
        b->node.parent   = assign;
 
-       create = scf_node_alloc(w, SCF_OP_CREATE, NULL);
-       if (!create)
+       new = scf_node_alloc(w, SCF_OP_NEW, NULL);
+       if (!new)
                return -ENOMEM;
 
        // add construct() for obj
        v = SCF_VAR_ALLOC_BY_TYPE(Object->w, pt, 1, 1, NULL);
        if (!v) {
                return -ENOMEM;
 
        // add construct() for obj
        v = SCF_VAR_ALLOC_BY_TYPE(Object->w, pt, 1, 1, NULL);
        if (!v) {
-               scf_node_free(create);
+               scf_node_free(new);
                return -ENOMEM;
        }
        v->const_literal_flag = 1;
                return -ENOMEM;
        }
        v->const_literal_flag = 1;
@@ -48,28 +48,28 @@ static int __object_create(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf
        scf_variable_free(v);
        v = NULL;
        if (!node) {
        scf_variable_free(v);
        v = NULL;
        if (!node) {
-               scf_node_free(create);
+               scf_node_free(new);
                return -ENOMEM;
        }
 
                return -ENOMEM;
        }
 
-       ret = scf_node_add_child(create, node);
+       ret = scf_node_add_child(new, node);
        if (ret < 0) {
                scf_node_free(node);
        if (ret < 0) {
                scf_node_free(node);
-               scf_node_free(create);
+               scf_node_free(new);
                return ret;
        }
 
        // add obj name
                return ret;
        }
 
        // add obj name
-       ret = scf_ast_add_const_str(ast, create, var->w);
+       ret = scf_ast_add_const_str(ast, new, var->w);
        if (ret < 0) {
        if (ret < 0) {
-               scf_node_free(create);
+               scf_node_free(new);
                return ret;
        }
 
        // add obj members
                return ret;
        }
 
        // add obj members
-       ret = scf_ast_add_const_var(ast, create, SCF_VAR_INT, n_members);
+       ret = scf_ast_add_const_var(ast, new, SCF_VAR_INT, n_members);
        if (ret < 0) {
        if (ret < 0) {
-               scf_node_free(create);
+               scf_node_free(new);
                return ret;
        }
 
                return ret;
        }
 
@@ -101,9 +101,9 @@ static int __object_create(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf
 
                                scf_logi("var: %s\n", var->w->text->data);
 
 
                                scf_logi("var: %s\n", var->w->text->data);
 
-                               ret = scf_node_add_child(create, ie->expr);
+                               ret = scf_node_add_child(new, ie->expr);
                                if (ret < 0) {
                                if (ret < 0) {
-                                       scf_node_free(create);
+                                       scf_node_free(new);
                                        return ret;
                                }
 
                                        return ret;
                                }
 
@@ -116,9 +116,9 @@ static int __object_create(scf_expr_t* e, scf_ast_t* ast, scf_lex_word_t* w, scf
                }
        }
 
                }
        }
 
-       ret = scf_expr_add_node(e, create);
+       ret = scf_expr_add_node(e, new);
        if (ret < 0) {
        if (ret < 0) {
-               scf_node_free(create);
+               scf_node_free(new);
                return ret;
        }
        return 0;
                return ret;
        }
        return 0;
@@ -160,14 +160,14 @@ static int __object_init(scf_ast_t* ast, scf_expr_t* e, scf_lex_word_t* w, scf_v
                                var->w->text->data, array_dim, obj->nb_dimentions,
                                obj->dimentions[array_dim].num);
 
                                var->w->text->data, array_dim, obj->nb_dimentions,
                                obj->dimentions[array_dim].num);
 
-               ret = __object_create(e, ast, w, var, obj->dimentions[array_dim].num, Object, NULL, NULL);
+               ret = __object_new(e, ast, w, var, obj->dimentions[array_dim].num, Object, NULL, NULL);
 
        } else if (t->type >= SCF_STRUCT) {
                scf_logd("var: %s\n", var->w->text->data);
 
        } else if (t->type >= SCF_STRUCT) {
                scf_logd("var: %s\n", var->w->text->data);
-               ret = __object_create(e, ast, w, var, t->scope->vars->size, Object, NULL, NULL);
+               ret = __object_new(e, ast, w, var, t->scope->vars->size, Object, NULL, NULL);
        } else {
                scf_logd("var: %s\n", var->w->text->data);
        } else {
                scf_logd("var: %s\n", var->w->text->data);
-               ret = __object_create(e, ast, w, var, 0, Object, init_exprs, init_pos);
+               ret = __object_new(e, ast, w, var, 0, Object, init_exprs, init_pos);
        }
        if (ret < 0) {
                scf_expr_free(e);
        }
        if (ret < 0) {
                scf_expr_free(e);
index 04d6fc59e2a839eb5fd837d0fb7ad46b3f916525..4c5c5b83ac108162d2dae44d108bbd5dffc76dc4 100644 (file)
@@ -186,7 +186,7 @@ CFILES += ../js/parse/scf_dfa_macro.c
 CFILES += ../js/parse/scf_dfa_include.c
 
 CFILES += ../js/parse/scf_dfa_call.c
 CFILES += ../js/parse/scf_dfa_include.c
 
 CFILES += ../js/parse/scf_dfa_call.c
-CFILES += ../js/parse/scf_dfa_create.c
+CFILES += ../js/parse/scf_dfa_new.c
 CFILES += ../js/parse/scf_dfa_sizeof.c
 CFILES += ../js/parse/scf_dfa_container.c
 CFILES += ../js/parse/scf_dfa_va_arg.c
 CFILES += ../js/parse/scf_dfa_sizeof.c
 CFILES += ../js/parse/scf_dfa_container.c
 CFILES += ../js/parse/scf_dfa_va_arg.c