62int main(
int argc,
char** argv)
64 naRef *args, code,
nasal, result;
66 int fsize, errLine,
i;
70 fprintf(stderr,
"nasal: must specify a script to run\n");
77 SGPath script(argv[1]);
88 code = naParseCode(ctx,
NASTR(script.c_str()), 1, buf, fsize, &errLine);
90 fprintf(stderr,
"Parse error: %s at line %d\n",
91 naGetError(ctx), errLine);
98 nasal = naInit_std(ctx);
102 naAddSym(ctx,
nasal, (
char*)
"print", naNewFunc(ctx, naNewCCode(ctx,
print)));
105 naAddSym(ctx,
nasal, (
char*)
"utf8", naInit_utf8(ctx));
106 naAddSym(ctx,
nasal, (
char*)
"math", naInit_math(ctx));
107 naAddSym(ctx,
nasal, (
char*)
"bits", naInit_bits(ctx));
108 naAddSym(ctx,
nasal, (
char*)
"io", naInit_io(ctx));
110 naAddSym(ctx,
nasal, (
char*)
"unix", naInit_unix(ctx));
112 naAddSym(ctx,
nasal, (
char*)
"thread", naInit_thread(ctx));
114 naAddSym(ctx,
nasal, (
char*)
"regex", naInit_regex(ctx));
120 naAddSym(ctx,
nasal, (
char*)
"readline", naInit_readline(ctx));
124 naAddSym(ctx,
nasal, (
char*)
"_gtk", naInit_gtk(ctx));
125 naAddSym(ctx,
nasal, (
char*)
"cairo", naInit_cairo(ctx));
133 code = naBindFunction(ctx, code,
nasal);
136 args = (naRef*)malloc(
sizeof(naRef) * (argc-2));
137 for(
i=0;
i<argc-2;
i++)
141 result = naCall(ctx, code, argc-2, args, naNil(), naNil());
148 while(naGetError(ctx)) {
149 printf(
"Err: \"%s\", calling naContinue()...\n", naGetError(ctx));