File: pointer.sh

package info (click to toggle)
mes 0.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,908 kB
  • sloc: ansic: 24,104; lisp: 11,490; sh: 6,609; asm: 187; makefile: 36
file content (72 lines) | stat: -rwxr-xr-x 4,443 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#! /bin/sh

set -x

ptr_once='s,([^N])(MACRO|NAME|VALUE) \(([^()]*)\),\1\3->\L\2,'
ptr_once='s,([^N])(BYTES|CAR|CDR|CLOSURE|CONTINUATION|LENGTH|MACRO|NAME|PORT|REF|STRING|STRUCT|TYPE|VALUE|VARIABLE|VECTOR) \(([^()]*)\),\1\3->\L\2,'
n_once='s,N(TYPE|CAR|CDR|LENGTH|VALUE|VECTOR) \(([^()]*)\),\2->\L\1,'
ncbytes='s,NC(BYTES) \(([^()]*)\),news_\L\1 (\2),'
cbytes='s,([^N])C(BYTES) \(([^()]*)\),\1cell_\L\2 (\3),'
cstring='s,C(STRING) \(([^()]*)\),cell_bytes (STRING (\2)),'
struct='s,SCM,struct scm *,g'
struct_scm_p='s,struct scm\* ?,struct scm *,g'

sed -ri                                                         \
    -e 's,POINTER_CELLS=0,POINTER_CELLS=1',                     \
    -e 's,#define POINTER_CELLS 0,#define POINTER_CELLS 1',     \
    -e "$ncbytes"                                               \
    -e "$cbytes"                                                \
    -e "$cstring"                                               \
                                                                \
    -e "$ncbytes"                                               \
    -e "$cbytes"                                                \
    -e "$cstring"                                               \
                                                                \
    -e "$ptr_once"                                              \
    -e "$ptr_once"                                              \
    -e "$ptr_once"                                              \
    -e 's,->\<struct\>,->structure,g'                           \
    -e "$struct"                                                \
    -e "$struct_scm_p"                                          \
                                                                \
    -e "$n_once"                                                \
    -e "$n_once"                                                \
                                                                \
    -e 's,CAR \(([^()]*)\),\1->cdr,'                            \
    -e 's,CAAR \(([^()]*)\),\1->car->car,'                      \
    -e 's,CADR \(([^()]*)\),\1->cdr->car,'                      \
    -e 's,CDAR \(([^()]*)\),\1->car->cdr,'                      \
    -e 's,CDDR \(([^()]*)\),\1->cdr->cdr,'                      \
    -e 's,CADAR \(([^()]*)\),\1->car->cdr->car,'                \
    -e 's,CADDR \(([^()]*)\),\1->cdr->cdr->car,'                \
    -e 's,CDADR \(([^()]*)\),\1->cdr->car->cdr,'                \
    -e 's,CDDDR \(([^()]*)\),\1->cdr->cdr->cdr,'                \
    -e 's,CDDAR \(([^()]*)\),\1->car->cdr->cdr,'                \
    -e 's,CDADAR \(([^()]*)\),\1->cdr->car->cdr->car,'          \
                                                                \
    include/mes/builtins.h                                      \
    include/mes/mes.h                                           \
    include/mes/symbols.h                                       \
    include/mes/builtins.h                                      \
    include/m2/lib.h                                            \
    src/builtins.c                                              \
    src/cc.c                                                    \
    src/core.c                                                  \
    src/display.c                                               \
    src/eval-apply.c                                            \
    src/gc.c                                                    \
    src/hash.c                                                  \
    src/lib.c                                                   \
    src/m2.c                                                    \
    src/math.c                                                  \
    src/mes.c                                                   \
    src/module.c                                                \
    src/posix.c                                                 \
    src/reader.c                                                \
    src/stack.c                                                 \
    src/string.c                                                \
    src/struct.c                                                \
    src/symbol.c                                                \
    src/vector.c                                                \
    src/test/gc.c                                               \
    simple.make                                                 \