update
This commit is contained in:
parent
3be50116fa
commit
b5514fd269
70
lib.nas
70
lib.nas
|
@ -8,6 +8,12 @@ var print=func(elements...)
|
|||
nasal_call_builtin_std_cout(elements);
|
||||
return nil;
|
||||
};
|
||||
var println=func(elements...)
|
||||
{
|
||||
nasal_call_builtin_std_cout(elements);
|
||||
print('\n');
|
||||
return nil;
|
||||
}
|
||||
var append=func(vector,elements...)
|
||||
{
|
||||
nasal_call_builtin_push_back(vector,elements);
|
||||
|
@ -110,58 +116,22 @@ var io=
|
|||
|
||||
var bits=
|
||||
{
|
||||
bitxor:func(a,b)
|
||||
{
|
||||
return nasal_call_builtin_xor(a,b);
|
||||
},
|
||||
bitand:func(a,b)
|
||||
{
|
||||
return nasal_call_builtin_and(a,b);
|
||||
},
|
||||
bitor:func(a,b)
|
||||
{
|
||||
return nasal_call_builtin_or(a,b);
|
||||
},
|
||||
bitnand:func(a,b)
|
||||
{
|
||||
return nasal_call_builtin_nand(a,b);
|
||||
},
|
||||
bitnot:func(a)
|
||||
{
|
||||
return nasal_call_builtin_not(a);
|
||||
}
|
||||
bitxor: func(a,b){return nasal_call_builtin_xor(a,b); },
|
||||
bitand: func(a,b){return nasal_call_builtin_and(a,b); },
|
||||
bitor: func(a,b){return nasal_call_builtin_or(a,b); },
|
||||
bitnand: func(a,b){return nasal_call_builtin_nand(a,b);},
|
||||
bitnot: func(a) {return nasal_call_builtin_not(a); }
|
||||
};
|
||||
|
||||
var math=
|
||||
{
|
||||
e:2.7182818284590452354,
|
||||
pi:3.14159265358979323846264338327950288,
|
||||
sin:func(x)
|
||||
{
|
||||
return nasal_call_builtin_sin(x);
|
||||
},
|
||||
cos:func(x)
|
||||
{
|
||||
return nasal_call_builtin_cos(x);
|
||||
},
|
||||
tan:func(x)
|
||||
{
|
||||
return nasal_call_builtin_tan(x);
|
||||
},
|
||||
exp:func(x)
|
||||
{
|
||||
return nasal_call_builtin_exp(x);
|
||||
},
|
||||
ln:func(x)
|
||||
{
|
||||
return nasal_call_builtin_cpp_math_ln(x);
|
||||
},
|
||||
sqrt:func(x)
|
||||
{
|
||||
return nasal_call_builtin_cpp_math_sqrt(x);
|
||||
},
|
||||
atan2:func(x,y)
|
||||
{
|
||||
return nasal_call_builtin_cpp_atan2(x,y);
|
||||
},
|
||||
e: 2.7182818284590452354,
|
||||
pi: 3.14159265358979323846264338327950288,
|
||||
sin: func(x) {return nasal_call_builtin_sin(x); },
|
||||
cos: func(x) {return nasal_call_builtin_cos(x); },
|
||||
tan: func(x) {return nasal_call_builtin_tan(x); },
|
||||
exp: func(x) {return nasal_call_builtin_exp(x); },
|
||||
ln: func(x) {return nasal_call_builtin_cpp_math_ln(x); },
|
||||
sqrt: func(x) {return nasal_call_builtin_cpp_math_sqrt(x);},
|
||||
atan2: func(x,y){return nasal_call_builtin_cpp_atan2(x,y); }
|
||||
};
|
||||
|
|
|
@ -68,7 +68,7 @@ void builtin_error_occurred(std::string func_name,std::string info)
|
|||
}
|
||||
|
||||
// register builtin function's name and it's address here in this table below
|
||||
// this table must and with {"",NULL}
|
||||
// this table must end with {"",NULL}
|
||||
struct FUNC_TABLE
|
||||
{
|
||||
std::string func_name;
|
||||
|
@ -134,10 +134,8 @@ nasal_val* builtin_print(nasal_val* local_scope_addr,nasal_gc& gc)
|
|||
case vm_func: std::cout<<"func(...){...}"; break;
|
||||
}
|
||||
}
|
||||
std::cout<<"\n";
|
||||
// generate return value
|
||||
nasal_val* ret_addr=gc.gc_alloc(vm_nil);
|
||||
return ret_addr;
|
||||
return gc.gc_alloc(vm_nil);
|
||||
}
|
||||
nasal_val* builtin_append(nasal_val* local_scope_addr,nasal_gc& gc)
|
||||
{
|
||||
|
@ -157,8 +155,7 @@ nasal_val* builtin_append(nasal_val* local_scope_addr,nasal_gc& gc)
|
|||
gc.add_reference(value_address);
|
||||
ref_vector.add_elem(value_address);
|
||||
}
|
||||
nasal_val* ret_addr=gc.gc_alloc(vm_nil);
|
||||
return ret_addr;
|
||||
return gc.gc_alloc(vm_nil);
|
||||
}
|
||||
nasal_val* builtin_setsize(nasal_val* local_scope_addr,nasal_gc& gc)
|
||||
{
|
||||
|
@ -335,10 +332,13 @@ nasal_val* builtin_split(nasal_val* local_scope_addr,nasal_gc& gc)
|
|||
}
|
||||
if(check_delimeter)
|
||||
{
|
||||
nasal_val* str_addr=gc.gc_alloc(vm_str);
|
||||
str_addr->set_string(tmp);
|
||||
ref_vec.add_elem(str_addr);
|
||||
tmp="";
|
||||
if(tmp.length())
|
||||
{
|
||||
nasal_val* str_addr=gc.gc_alloc(vm_str);
|
||||
str_addr->set_string(tmp);
|
||||
ref_vec.add_elem(str_addr);
|
||||
tmp="";
|
||||
}
|
||||
i+=delimeter_len-1;
|
||||
}
|
||||
else
|
||||
|
@ -763,7 +763,7 @@ nasal_val* builtin_substr(nasal_val* local_scope_addr,nasal_gc& gc)
|
|||
std::string str=str_addr->get_string();
|
||||
int begin=(int)begin_addr->get_number();
|
||||
int len=(int)length_addr->get_number();
|
||||
if(begin+len>=str.length())
|
||||
if(begin+len>str.length())
|
||||
{
|
||||
builtin_error_occurred("susbtr","index out of range");
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue