Skip to content

Commit a7dd8f6

Browse files
committed
some random cleanups plus fix linker errors
1 parent c7db502 commit a7dd8f6

File tree

4 files changed

+25
-33
lines changed

4 files changed

+25
-33
lines changed

yocto-lexer.re

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ yy0:
108108
"(" { return TOK_LPAREN; }
109109
")" { return TOK_RPAREN; }
110110
"." { return TOK_DOT; }
111-
"'" { return TOK_QUOTE; }
112-
"`" { return TOK_QQUOTE; }
113-
"," { return TOK_UNQUOTE; }
114-
",@" { return TOK_UNQUOTESP; }
111+
"'" { return TOK_SQUOTE; }
112+
"`" { return TOK_BACKQUOTE; }
113+
"," { return TOK_COMMA; }
114+
",@" { return TOK_COMMA_AT; }
115115
"#(" { return TOK_VECTOR; }
116116
117117
"=>" { *value = mk_symbol("=>"); return TOK_SYMBOL; }

yocto-parser.y

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extern cell *UNQUOTE;
3232
extern cell *UNQUOTESP;
3333
}
3434

35-
start ::= datums(e). { *result = e; }
35+
expr ::= datums(e). { *result = e; }
3636

3737
datums(lhs) ::= datum(e). { lhs = cons(e, NIL); }
3838
datums(lhs) ::= datums(a) datum(b). { lhs = list_append(a, cons(b, NIL)); }
@@ -54,10 +54,10 @@ list(lhs) ::= LPAREN datums(e) RPAREN. { lhs = e; }
5454
list(lhs) ::= LPAREN datums(a) DOT datum(b) RPAREN. { lhs = list_append(a, b); }
5555
list(lhs) ::= abbrev_prefix(a) datum(b). { lhs = cons(a, cons(b, NIL)); }
5656

57-
abbrev_prefix(lhs) ::= QUOTE. { lhs = QUOTE; }
58-
abbrev_prefix(lhs) ::= QQUOTE. { lhs = QQUOTE; }
59-
abbrev_prefix(lhs) ::= UNQUOTE. { lhs = UNQUOTE; }
60-
abbrev_prefix(lhs) ::= UNQUOTESP. { lhs = UNQUOTESP; }
57+
abbrev_prefix(lhs) ::= SQUOTE. { lhs = QUOTE; }
58+
abbrev_prefix(lhs) ::= BACKQUOTE. { lhs = QQUOTE; }
59+
abbrev_prefix(lhs) ::= COMMA. { lhs = UNQUOTE; }
60+
abbrev_prefix(lhs) ::= COMMA_AT. { lhs = UNQUOTESP; }
6161

6262
vector(lhs) ::= VECTOR RPAREN. { lhs = mk_vector(0, NIL); }
6363
vector(lhs) ::= VECTOR datums(e) RPAREN. { lhs = mk_vector(list_length(e), e); }

yocto.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,15 @@ void Parse(void*, int, cell*, cell**);
171171
void *ParseAlloc(void *(*mallocProc)(size_t));
172172
void ParseFree(void *, void (*freeProc)(void*));
173173

174+
char is_interactive;
175+
176+
char *line; /* input buffer */
177+
178+
FILE *infp; /* input file */
179+
FILE *outfp; /* output file */
180+
181+
char strbuf[LINESIZE];
182+
174183
/* ========== garbage collector ========== */
175184

176185
/*--
@@ -2996,8 +3005,6 @@ void fatal_error(const char *msg)
29963005

29973006
static void init_vars_global()
29983007
{
2999-
cell *x;
3000-
30013008
/* init input/output file */
30023009
infp = stdin;
30033010
outfp = stdout;
@@ -3019,8 +3026,7 @@ static void init_vars_global()
30193026
global_env = cons(NIL, NIL);
30203027

30213028
/* init else */
3022-
x = mk_symbol("else");
3023-
car(global_env) = cons(cons(x, T), car(global_env));
3029+
car(global_env) = cons(cons(mk_symbol("else"), T), car(global_env));
30243030

30253031
parser = ParseAlloc(malloc);
30263032
}

yocto.h

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
#define LINESIZE 4096
3131
#endif
3232

33-
char strbuf[LINESIZE];
34-
3533
/* cell structure */
3634
typedef struct cell {
3735
unsigned short _flag;
@@ -69,26 +67,14 @@ int list_length(cell*);
6967
void error(const char *);
7068
void fatal_error(const char *);
7169

72-
char *line; /* input buffer */
70+
extern char strbuf[LINESIZE];;
71+
72+
extern char *line; /* input buffer */
7373

74-
FILE *infp; /* input file */
75-
FILE *outfp; /* output file */
74+
extern FILE *infp; /* input file */
75+
extern FILE *outfp; /* output file */
7676

77-
char is_interactive;
78-
/*
79-
typedef enum {
80-
TOK_EOF,
81-
TOK_LPAREN,
82-
TOK_RPAREN,
83-
TOK_DOT,
84-
TOK_ATOM,
85-
TOK_QUOTE,
86-
TOK_BQUOTE,
87-
TOK_COMMA,
88-
TOK_ATMARK,
89-
TOK_VECTOR,
90-
} token;
91-
*/
77+
extern char is_interactive;
9278

9379
int lex(cell**);
9480
void clearinput();

0 commit comments

Comments
 (0)