JSH>F F F F 8H>F F 8H>E 8E 8E 8E 8E 8E 8E 8E 8 8H>E 8E 8E 8E 8F E 8 8H>E 8E 8E 8E 8 8H>: 5-3T  ! 5" # $% & 5'  5(6):* +*5-3T  ! 5" #) ,% & 5'  5(6-:. +.5-3n*5/)50  ! 5" #- 1% & 5'  5(27*5/.5/ 8H> 8H>= 34' 5'6:789 E\8475:'89 E ;75:6'6 <75:=75: >75: 8H>75? 8H>= 5?@A74' 5'5?B36 C5?89!E D5?689 E5 E5?8FE| G8HA7'84' I' J'8HA7'84' K'5?6W8FA78HA7'5?845?'89 E ;5?6'6 L5?3 M5?6 5? 8H>=5N5O 5P Q5?B-3 R5?6 S5? T89'5U' V'5? W5?@E X5?6 5? Y5? Z895U' ['5?\\89 E38\  5?\'5UHE ]' ^'5?6HE 6FEg _`3 a6 ' b'' c''4' d''4' e'5?6FEJ ]' f'5? ]' g''4' ['5?6FEJ ]' h'5? ]' i''4' ['5?6dFED j' c''4' ;''4' k'5?6 l5m\'\6 n4' o'\'5U' p'4' q'4' r'4' s'4' t'4' u'5?\\89 E8\HE689\&5U v' w'Fx7' y'4' z'4' {'5?FEi |4' }'' ~'4' '' '' '4' '' '5?6FE- |4' '' '5?6FE- |4' '' '5?6YFEF |4' '' '4' '' '5?6\'\6@E @x7' '4' '5?@E 5?6L@E 5?6&@E 5?6 >5? 8H>=3.6....B( 7 7C 6J B@   5' 5(CF 6  6 ED 8H>= 4' '5?9 E *E 5?65U9E '6 ' D'5?'6f 5? 8H> FH ` 8H>4 F7 H7  5 8H>=77EE76:773bE8    5' 5(6@76 @E765-3B    & 5'  5(647(E76:7)EL:EE7673F6F73H6%E `6 776^5-3B    & 5'  5(64F-3E 4   & 5'  5(6`3FEFE8    5' 5(6HE*    5'657,E7687{E76 6:5-376'536 '5:6=5 .5P*56:7 8H>=5+E F  F  F  F  E6 E'6u/E7*E}55+E *F7/E E'65673X655+E 74 73 55:65 E8 E8 E8 E8 E8 E8 E8 E8 E8 E8888H>=558H>    5' 5( 8H>=.7-7 ' '' '5?*7 5?B-31 %' '5? 5?63% 5? 5?6, %' '5? 5? 5? 8H> ' '%' '5? 8H>= 550"E 9"E '68H>=. -7' '5? 8H>= 5#E'5%6 %9 E-Ey F E 67 F EX'9#E* % 5' 5(6'-6 F E 6 F EX'9#E* % 5' 5(6')6 F E B6 F E7 5(6 E7 5(6S  %  5' %  5' 5('6^9#E* % 5' 5(6'9 E* % 5' 5(6 :--3D53 '-6 '-6)-3D53 ')6 ')67 8H> %  5  5  5 8H>   5   5 8  :  : :    P  N O:   :   -  ) B7 tCSTRING tDOUBLE tINT tSTRING tVOID tIN tOUT tINOUTcstringdoubleintstringvoidinoutinoutchar *double long void * JS_STRINGJS_FLOAT JS_INTEGER linenum input_file File ifpr open System errno strerror': : couldn't open input file ` program error exit output_file ofp_cw: couldn't create output file ` header_file ofp_h close remove: couldn't create header file ` parse function name ( String code args length append, ) { body} write return_type c_typename opt_reentrant JSInterpPtr interp, typeunsigned char * copy_type,  unsigned int _len ); compile dump_bc print_h{ & JSInterpPtr interp = jswrap_interp; % JSVirtualMachine *vm = interp->vm;  JSNode argv[ toString];  int result;  char *cp;  argv[0].type = JS_INTEGER;  argv[0].u.vinteger = ; i argv[].type = JS_UNDEFINED;  js_vm_make staticp_static_string (vm, &argv[],  , strlen ()); ].type = JS_FLOAT;  ].u.vfloat = ].type = JS_INTEGER; ].u.vinteger = & js_vm_make_static_string (vm, &argv[_len); VM stackTrace' retry: result = js_vm_apply (vm, " ", NULL, T, argv); if (result == 0) { JSNode *n = &vm->globals[js_vm_intern (vm, "Z")]; if (n->type != JS_FUNC) { JSByteCode *bc = js_bc_read_data (9_bc, sizeof (_bc)); result = js_vm_execute (vm, bc); js_bc_free (bc); if (result == 0) jswrap_error (interp, "initialization of function``' failed"); goto retry; } jswrap_error (interp, "execution of function `' failed"); }  if ((vm->sp -  )->type != jsint_typenameO) jswrap_error (interp, "wrong return type for argument `' of function `'");  *' = (char *) js_vm_alloc (vm, (vm->sp - #)->u.vstring->len + 1); memcpy (* , (vm->sp - ()->u.vstring->data, (vm->sp - )->u.vstring->len);  [(vm->sp - )->u.vstring->len] = '\0';  = (vm->sp -  )->u.vfloat; )->u.vinteger; )->u.vstring->data; *_len = (vm->sp - )->u.vstring->len;  if (vm->exec_result.type != ?) jswrap_error (interp, "return type mismatch in function `'");  cp = (char *) js_vm_alloc (vm, vm->exec_result.u.vstring->len + 1); memcpy (cp, vm->exec_result.u.vstring->data, vm->exec_result.u.vstring->len); cp[vm->exec_result.u.vstring->len] = '\0'; return cp; # return vm->exec_result.u.vfloat; % return vm->exec_result.u.vinteger; opt_debug JSC$FLAG_GENERATE_DEBUG_INFO JSC$FLAG_OPTIMIZE_PEEPHOLE JSC$FLAG_OPTIMIZE_JUMPS JSC$FLAG_OPTIMIZE_BC_SIZE JSC$FLAG_WARN_MASK JSC$compile_string bc static unsigned char  _bc[] = { 0 0x };  typename print headers get_token tEOF tFUNCTION syntax_error Func is_type_token.: the function return value can't be `string' : tIDENTIFIER token_value valid_c_identifier_re test' -: function name is not a valid C identifier ` Array Argument is_copy_type_token tSTATIC-: argument name is not a valid C identifier `": no type specified for argument `G: type `static' can only be used with `cstring' and `string' arguments L: warning: type `static' is meaningful only with `in' and `inout' arguments push readln end_brace_re generate_js print_c trailers readByte token_linenum peek_char JSC$lexer_is_identifier_letter fromCharCode JSC$lexer_is_decimal_digit byteToString ungetBytefunctionstatic: syntax error header_banner path_to_ppname #ifndef  #define  #include : /* * This global interpreter handle can be removed with "'s * option -r, --reentrant. */ "extern JSInterpPtr jswrap_interp; opt_no_error_handlerA /* Prototype for the error handler of the JS runtime errors. */ 5void jswrap_error (JSInterpPtr interp, char *error); p /* * This is the default error handler for the JS runtime errors. The default * handler can be removed with c's option -n, --no-error-handler. * In this case, your code must define the handler function. */ static void jswrap_error (JSInterpPtr interp, char *error) { const char *cp; fprintf (stderr, "JS runtime error: %s", error); cp = js_error_message (interp); if (cp[0]) fprintf (stderr, ": %s", cp); fprintf (stderr, "\n"); exit (1); } - /* * The global function definitions. */ ./* This file is automatically generated from `' by . */ _ path_to_ppname_re toUpperCase replace #endif /* not  */ / ARGS lastIndexOf substr-g--debug-h--header": no argument for option --header -n--no-error-handler-o--output": no argument for option --output -r --reentrant-V --version version--help usage: unrecognized option ` --help' for more information. Try `: no input file specified (: extraneous arguments after input file  ^(.*)\.jsw$ RegExp $1.h.c process[ [OPTION]... FILE Mandatory arguments to long options are mandatory for short options too. Usage:  -g, --debug generate debugging information to the generated JS byte-code -h, --header FILE generate the C header to file FILE -n, --no-error-handler do not generate the default error handler -o, --output FILE generate the C output to file FILE -r, --reentrant generate re-entrant C stubs -V, --version print version number --help print this help and exit  Report bugs to mtr@ngs.fi. version_number#NGS JavaScript C wrapper generator ECopyright (C) 1998 New Generation Software (NGS) Oy. NGS JavaScript Interpreter comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of NGS JavaScript Interpreter under the terms of the GNU Library General Public License. For more information about these matters, see the files named COPYING. ^[A-Za-z_][A-Za-z_0-9]*$^}[ ]*$ Func$generate_js prototype Func$print_js print_js Func$print_h Func$print_c Func$compile Func$dump_bc Argument$printg [^A-Za-z_0-9]0.0.1 mainis_type_tokenis_copy_type_tokenJtypenamevc_typenamejsint_typenameprocessFuncFunc$generate_jsFunc$print_jsFunc$print_hFunc$print_cFunc$compile tFunc$dump_bc8Argument Argument$print/parsexget_tokenZpeek_char syntax_error7headersqheader_bannerpath_to_ppnametrailersmainRusageversion.global  jswrap.js67,8J7L<Q=xA}BCDEFGHIJKLMNOPQSW X0Y3ZC[F\V]Y^i_l`acghijklmnoq %Fbty !2De!:NQ`q #23P\z| %0K d s v  "($)%D&F$T'`)u*),/012079:<>%@:BS@VFkGsFvIKLMNOPKIR T U +V <U JR MX bZ {[ \ [ X ^ ` a b c ` ^ f 7 !k #o 0p Gs Uw cx q~  k        ! < H ] ` o y             3 A D Y \ u             . = ? T c h v }              7:E^y &16Bz#')+,+.124768-40;9=I2N@YCeDrCwFJIHKFNQRSRU WX#Z2\@^L_Y^\ambza}cdcefehj\mqpor+m0t;wK{Xz]yy|w~58DR^nqz*?O)P\c~)=gjz.>BRVfjz~   & 6 9Abs~ #$%')+)/"''214A7Q2V<[?c<rCU^_`_fgh ihko(q0rT_t~ 4KP^pu',@Ekuz    1ANc!v"$&'$*./1 2!1&46/;6F8[9p8u;6EJLKOZ_`a$&%'/)9*C+M,W-a/k0u13tv} 1AOcc|k