85 lines
2.6 KiB
C
85 lines
2.6 KiB
C
/* This is an Scheme48/C interface file,
|
|
** automatically generated by cig.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h> /* For malloc. */
|
|
#include "libcig.h"
|
|
|
|
/* Make sure foreign-function stubs interface to the C funs correctly: */
|
|
#include "re1.h"
|
|
|
|
scheme_value df_re_byte_len(long nargs, scheme_value *args)
|
|
{
|
|
extern char *re_byte_len(const char *, int *);
|
|
scheme_value ret1;
|
|
char *r1;
|
|
int r2;
|
|
|
|
cig_check_nargs(2, nargs, "re_byte_len");
|
|
r1 = re_byte_len(cig_string_body(args[1]), &r2);
|
|
ret1 = VECTOR_REF(*args,0);
|
|
{AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
|
|
VECTOR_REF(*args,1) = ENTER_FIXNUM(r2);
|
|
return ret1;
|
|
}
|
|
|
|
scheme_value df_re_compile(long nargs, scheme_value *args)
|
|
{
|
|
extern char *re_compile(const char *, scheme_value );
|
|
scheme_value ret1;
|
|
char *r1;
|
|
|
|
cig_check_nargs(3, nargs, "re_compile");
|
|
r1 = re_compile(cig_string_body(args[2]), args[1]);
|
|
ret1 = VECTOR_REF(*args,0);
|
|
{AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
|
|
return ret1;
|
|
}
|
|
|
|
scheme_value df_re_exec(long nargs, scheme_value *args)
|
|
{
|
|
extern char *re_exec(scheme_value , const char *, int , scheme_value , scheme_value , int *);
|
|
scheme_value ret1;
|
|
char *r1;
|
|
int r2;
|
|
|
|
cig_check_nargs(6, nargs, "re_exec");
|
|
r1 = re_exec(args[5], cig_string_body(args[4]), EXTRACT_FIXNUM(args[3]), args[2], args[1], &r2);
|
|
ret1 = VECTOR_REF(*args,0);
|
|
{AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
|
|
VECTOR_REF(*args,1) = ENTER_BOOLEAN(r2);
|
|
return ret1;
|
|
}
|
|
|
|
scheme_value df_re_match(long nargs, scheme_value *args)
|
|
{
|
|
extern char *re_match(const char *, const char *, int , scheme_value , scheme_value , int *);
|
|
scheme_value ret1;
|
|
char *r1;
|
|
int r2;
|
|
|
|
cig_check_nargs(6, nargs, "re_match");
|
|
r1 = re_match(cig_string_body(args[5]), cig_string_body(args[4]), EXTRACT_FIXNUM(args[3]), args[2], args[1], &r2);
|
|
ret1 = VECTOR_REF(*args,0);
|
|
{AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
|
|
VECTOR_REF(*args,1) = ENTER_BOOLEAN(r2);
|
|
return ret1;
|
|
}
|
|
|
|
scheme_value df_filter_stringvec(long nargs, scheme_value *args)
|
|
{
|
|
extern char *filter_stringvec(const char *, char const ** , int *);
|
|
scheme_value ret1;
|
|
char *r1;
|
|
int r2;
|
|
|
|
cig_check_nargs(3, nargs, "filter_stringvec");
|
|
r1 = filter_stringvec(cig_string_body(args[2]), (char const ** )AlienVal(args[1]), &r2);
|
|
ret1 = VECTOR_REF(*args,0);
|
|
{AlienVal(CAR(ret1)) = (long) r1; CDR(ret1) = strlen_or_false(r1);}
|
|
VECTOR_REF(*args,1) = ENTER_FIXNUM(r2);
|
|
return ret1;
|
|
}
|
|
|