Skip to content

Commit 7823693

Browse files
committed
更新库
1 parent 61ab953 commit 7823693

8 files changed

Lines changed: 171 additions & 53 deletions

File tree

0 Bytes
Binary file not shown.

lib/platform/android/libscm/scm.h

Lines changed: 73 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,104 @@
77
#define SCM_H_H
88

99

10-
typedef void *ptr;
11-
typedef int iptr;
12-
typedef unsigned int uptr;
10+
#ifdef ANDROID
11+
typedef void *ptr;
12+
typedef int iptr;
13+
typedef unsigned int uptr;
14+
15+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
16+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
17+
#define scm_nil ((ptr)0x26)
18+
#define scm_true ((ptr)0xE)
19+
#define scm_false ((ptr)0x6)
20+
#define scm_boolean(x) ((x)?Strue:Sfalse)
21+
#define scm_bwp_object ((ptr)0x4E)
22+
#define scm_eof_object ((ptr)0x36)
23+
#define scm_void ((ptr)0x3E)
24+
#else
25+
#ifdef __x86_64__
26+
27+
typedef void * ptr;
28+
typedef long int iptr;
29+
typedef unsigned long int uptr;
30+
31+
#define scm_fixnum(x) ((ptr)(uptr)((x)*8))
32+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
33+
#define scm_nil ((ptr)0x26)
34+
#define scm_true ((ptr)0xE)
35+
#define scm_false ((ptr)0x6)
36+
#define scm_boolean(x) ((x)?scm_true:scm_false)
37+
#define scm_bwp_object ((ptr)0x4E)
38+
#define scm_void ((ptr)0x3E)
39+
#define scm_eof_object ((ptr)0x36)
40+
41+
#else
42+
typedef void * ptr;
43+
typedef int iptr;
44+
typedef unsigned int uptr;
45+
46+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
47+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
48+
#define scm_nil ((ptr)0x26)
49+
#define scm_true ((ptr)0xE)
50+
#define scm_false ((ptr)0x6)
51+
#define scm_boolean(x) ((x)?Strue:Sfalse)
52+
#define scm_bwp_object ((ptr)0x4E)
53+
#define scm_eof_object ((ptr)0x36)
54+
#define scm_void ((ptr)0x3E)
55+
56+
#endif
57+
58+
#endif
59+
60+
61+
1362

1463

1564
#ifdef __cplusplus
1665
extern "C" {
1766
#endif
1867

68+
69+
1970
int scm_init();
2071

2172
ptr scm_read_string(char *string);
2273

2374
ptr scm_eval(char *string);
24-
25-
char *scm_string(ptr p);
26-
75+
ptr scm_eval_exp(ptr exp);
76+
char *scm_strings(ptr p);
77+
ptr scm_string(char * p);
2778
void scm_deinit();
2879

29-
ptr scm_procedurep(ptr p);
30-
3180
ptr scm_call0(ptr who);
3281

3382
ptr scm_call1(ptr who, ptr arg);
3483

3584
ptr scm_call2(ptr who, ptr arg0, ptr arg1);
3685

3786
ptr scm_call3(ptr who, ptr arg0, ptr arg1, ptr arg2);
87+
ptr scm_call4(ptr who,ptr arg0,ptr arg1,ptr arg2,ptr arg3);
3888

3989
iptr scm_fixnum_value(ptr p);
4090

41-
iptr scm_fixnum(iptr p);
91+
iptr scm_objectp(ptr p);
92+
93+
iptr scm_fixnump(ptr x);
94+
iptr scm_charp(ptr x);
95+
96+
iptr scm_nullp(ptr x);
97+
iptr scm_eof_objectp(ptr x);
98+
iptr scm_bwp_objectp(ptr x);
99+
iptr scm_booleanp(ptr x);
100+
iptr scm_pairp(ptr x);
101+
iptr scm_symbolp(ptr x) ;
102+
iptr scm_procedurep(ptr x);
103+
iptr scm_flonump(ptr x) ;
104+
42105

43106
#ifdef __cplusplus
44107
}
45108
#endif
109+
46110
#endif //SCM_H_H
0 Bytes
Binary file not shown.
1.23 KB
Binary file not shown.

lib/platform/darwin/libscm/scm.h

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,61 @@
1111
typedef void *ptr;
1212
typedef int iptr;
1313
typedef unsigned int uptr;
14+
15+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
16+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
17+
#define scm_nil ((ptr)0x26)
18+
#define scm_true ((ptr)0xE)
19+
#define scm_false ((ptr)0x6)
20+
#define scm_boolean(x) ((x)?Strue:Sfalse)
21+
#define scm_bwp_object ((ptr)0x4E)
22+
#define scm_eof_object ((ptr)0x36)
23+
#define scm_void ((ptr)0x3E)
1424
#else
1525
#ifdef __x86_64__
1626

1727
typedef void * ptr;
1828
typedef long int iptr;
1929
typedef unsigned long int uptr;
20-
30+
31+
#define scm_fixnum(x) ((ptr)(uptr)((x)*8))
32+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
33+
#define scm_nil ((ptr)0x26)
34+
#define scm_true ((ptr)0xE)
35+
#define scm_false ((ptr)0x6)
36+
#define scm_boolean(x) ((x)?scm_true:scm_false)
37+
#define scm_bwp_object ((ptr)0x4E)
38+
#define scm_void ((ptr)0x3E)
39+
#define scm_eof_object ((ptr)0x36)
40+
2141
#else
2242
typedef void * ptr;
2343
typedef int iptr;
2444
typedef unsigned int uptr;
45+
46+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
47+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
48+
#define scm_nil ((ptr)0x26)
49+
#define scm_true ((ptr)0xE)
50+
#define scm_false ((ptr)0x6)
51+
#define scm_boolean(x) ((x)?Strue:Sfalse)
52+
#define scm_bwp_object ((ptr)0x4E)
53+
#define scm_eof_object ((ptr)0x36)
54+
#define scm_void ((ptr)0x3E)
55+
2556
#endif
2657

2758
#endif
2859

29-
#define scm_fixnum(x) ((ptr)(uptr)((x)*8))
30-
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
31-
#define scm_nil ((ptr)0x26)
32-
#define scm_true ((ptr)0xE)
33-
#define scm_false ((ptr)0x6)
34-
#define scm_boolean(x) ((x)?scm_true:scm_false)
35-
#define scm_bwp_object ((ptr)0x4E)
36-
#define scm_void ((ptr)0x3E)
37-
#define scm_eof_object ((ptr)0x36)
38-
39-
#define scm_fixnump(x) (((uptr)(x)&0x7)==0x0)
40-
#define scm_charp(x) (((uptr)(x)&0xFF)==0x16)
41-
#define scm_nullp(x) ((uptr)(x)==0x26)
42-
#define scm_eof_objectp(x) ((uptr)(x)==0x36)
43-
#define scm_bwp_objectp(x) ((uptr)(x)==0x4E)
44-
#define scm_booleanp(x) (((uptr)(x)&0xF7)==0x6)
45-
#define scm_pairp(x) (((uptr)(x)&0x7)==0x1)
46-
#define scm_symbolp(x) (((uptr)(x)&0x7)==0x3)
47-
#define scm_procedurep(x) (((uptr)(x)&0x7)==0x5)
48-
#define scm_flonump(x) (((uptr)(x)&0x7)==0x2)
60+
61+
62+
4963

5064
#ifdef __cplusplus
5165
extern "C" {
5266
#endif
5367

54-
68+
5569

5670
int scm_init();
5771

@@ -76,6 +90,19 @@ extern "C" {
7690

7791
iptr scm_objectp(ptr p);
7892

93+
iptr scm_fixnump(ptr x);
94+
iptr scm_charp(ptr x);
95+
96+
iptr scm_nullp(ptr x);
97+
iptr scm_eof_objectp(ptr x);
98+
iptr scm_bwp_objectp(ptr x);
99+
iptr scm_booleanp(ptr x);
100+
iptr scm_pairp(ptr x);
101+
iptr scm_symbolp(ptr x) ;
102+
iptr scm_procedurep(ptr x);
103+
iptr scm_flonump(ptr x) ;
104+
105+
79106
#ifdef __cplusplus
80107
}
81108
#endif
-24 Bytes
Binary file not shown.
3.07 KB
Binary file not shown.

lib/platform/linux/libscm/scm.h

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,61 @@
1111
typedef void *ptr;
1212
typedef int iptr;
1313
typedef unsigned int uptr;
14+
15+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
16+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
17+
#define scm_nil ((ptr)0x26)
18+
#define scm_true ((ptr)0xE)
19+
#define scm_false ((ptr)0x6)
20+
#define scm_boolean(x) ((x)?Strue:Sfalse)
21+
#define scm_bwp_object ((ptr)0x4E)
22+
#define scm_eof_object ((ptr)0x36)
23+
#define scm_void ((ptr)0x3E)
1424
#else
1525
#ifdef __x86_64__
1626

1727
typedef void * ptr;
1828
typedef long int iptr;
1929
typedef unsigned long int uptr;
20-
30+
31+
#define scm_fixnum(x) ((ptr)(uptr)((x)*8))
32+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
33+
#define scm_nil ((ptr)0x26)
34+
#define scm_true ((ptr)0xE)
35+
#define scm_false ((ptr)0x6)
36+
#define scm_boolean(x) ((x)?scm_true:scm_false)
37+
#define scm_bwp_object ((ptr)0x4E)
38+
#define scm_void ((ptr)0x3E)
39+
#define scm_eof_object ((ptr)0x36)
40+
2141
#else
2242
typedef void * ptr;
2343
typedef int iptr;
2444
typedef unsigned int uptr;
45+
46+
#define scm_fixnum(x) ((ptr)(uptr)((x)*4))
47+
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
48+
#define scm_nil ((ptr)0x26)
49+
#define scm_true ((ptr)0xE)
50+
#define scm_false ((ptr)0x6)
51+
#define scm_boolean(x) ((x)?Strue:Sfalse)
52+
#define scm_bwp_object ((ptr)0x4E)
53+
#define scm_eof_object ((ptr)0x36)
54+
#define scm_void ((ptr)0x3E)
55+
2556
#endif
2657

2758
#endif
2859

29-
#define scm_fixnum(x) ((ptr)(uptr)((x)*8))
30-
#define scm_char(x) ((ptr)(uptr)((x)<<8|0x16))
31-
#define scm_nil ((ptr)0x26)
32-
#define scm_true ((ptr)0xE)
33-
#define scm_false ((ptr)0x6)
34-
#define scm_boolean(x) ((x)?scm_true:scm_false)
35-
#define scm_bwp_object ((ptr)0x4E)
36-
#define scm_void ((ptr)0x3E)
37-
#define scm_eof_object ((ptr)0x36)
38-
39-
#define scm_fixnump(x) (((uptr)(x)&0x7)==0x0)
40-
#define scm_charp(x) (((uptr)(x)&0xFF)==0x16)
41-
#define scm_nullp(x) ((uptr)(x)==0x26)
42-
#define scm_eof_objectp(x) ((uptr)(x)==0x36)
43-
#define scm_bwp_objectp(x) ((uptr)(x)==0x4E)
44-
#define scm_booleanp(x) (((uptr)(x)&0xF7)==0x6)
45-
#define scm_pairp(x) (((uptr)(x)&0x7)==0x1)
46-
#define scm_symbolp(x) (((uptr)(x)&0x7)==0x3)
47-
#define scm_procedurep(x) (((uptr)(x)&0x7)==0x5)
48-
#define scm_flonump(x) (((uptr)(x)&0x7)==0x2)
60+
61+
62+
4963

5064
#ifdef __cplusplus
5165
extern "C" {
5266
#endif
5367

54-
68+
5569

5670
int scm_init();
5771

@@ -76,6 +90,19 @@ extern "C" {
7690

7791
iptr scm_objectp(ptr p);
7892

93+
iptr scm_fixnump(ptr x);
94+
iptr scm_charp(ptr x);
95+
96+
iptr scm_nullp(ptr x);
97+
iptr scm_eof_objectp(ptr x);
98+
iptr scm_bwp_objectp(ptr x);
99+
iptr scm_booleanp(ptr x);
100+
iptr scm_pairp(ptr x);
101+
iptr scm_symbolp(ptr x) ;
102+
iptr scm_procedurep(ptr x);
103+
iptr scm_flonump(ptr x) ;
104+
105+
79106
#ifdef __cplusplus
80107
}
81108
#endif

0 commit comments

Comments
 (0)