forked from ocaml/ocaml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
skeleton.c
60 lines (54 loc) · 2.06 KB
/
skeleton.c
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
/**************************************************************************/
/* */
/* OCaml */
/* */
/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
/* */
/* Copyright 1996 Institut National de Recherche en Informatique et */
/* en Automatique. */
/* */
/* All rights reserved. This file is distributed under the terms of */
/* the GNU Lesser General Public License version 2.1, with the */
/* special exception on linking described in the file LICENSE. */
/* */
/**************************************************************************/
/* Based on public-domain code from Berkeley Yacc */
#include "defs.h"
char *header[] =
{
"open Parsing;;",
"let _ = parse_error;;", /* avoid warning 33 (PR#5719) */
0
};
char *define_tables[] =
{
"let yytables =",
" { Parsing.actions=yyact;",
" Parsing.transl_const=yytransl_const;",
" Parsing.transl_block=yytransl_block;",
" Parsing.lhs=yylhs;",
" Parsing.len=yylen;",
" Parsing.defred=yydefred;",
" Parsing.dgoto=yydgoto;",
" Parsing.sindex=yysindex;",
" Parsing.rindex=yyrindex;",
" Parsing.gindex=yygindex;",
" Parsing.tablesize=yytablesize;",
" Parsing.table=yytable;",
" Parsing.check=yycheck;",
" Parsing.error_function=parse_error;",
" Parsing.names_const=yynames_const;",
" Parsing.names_block=yynames_block }",
0
};
void write_section(char **section)
{
register int i;
register FILE *fp;
fp = code_file;
for (i = 0; section[i]; ++i)
{
++outline;
fprintf(fp, "%s\n", section[i]);
}
}