Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Duncan White
C-datadec
Commits
8ad1cf7d
Commit
8ad1cf7d
authored
Apr 06, 1992
by
dcw
Browse files
moved opening/closing of files into make_declns;
added exports and globals sections to the parse language..
parent
88a01743
Changes
1
Show whitespace changes
Inline
Side-by-side
datadec.c
View file @
8ad1cf7d
...
...
@@ -21,6 +21,7 @@
#include
"lexer.h"
#include
"parser.h"
#include
"decs.h"
#include
"optimize.h"
#define MUSTBE(b) ASSERT(b,("Usage: datadec [-vpo] outfile [infile]\n"))
...
...
@@ -30,15 +31,17 @@
#define IS_ANOTHER_ARG (argc > arg)
main
(
argc
,
argv
)
int
argc
;
char
**
argv
;
#define CHUNKSIZE 10000
void
main
(
argc
,
argv
)
int
argc
;
char
**
argv
;
{
FILE
*
cfile
,
*
hfile
;
char
tempname
[
256
];
char
*
basename
;
char
*
s
;
declnlist
declns
;
int
len
;
int
arg
;
char
exports
[
CHUNKSIZE
],
globals
[
CHUNKSIZE
];
arg
=
1
;
NEED_ANOTHER_ARG
;
...
...
@@ -74,14 +77,6 @@ main( argc, argv ) int argc; char **argv;
basename
[
len
-
2
]
=
'\0'
;
}
sprintf
(
tempname
,
"%s.c"
,
basename
);
cfile
=
fopen
(
tempname
,
"w"
);
ASSERT
(
cfile
!=
NULL
,
(
"datadec: can't create '%s'
\n
"
,
tempname
)
);
sprintf
(
tempname
,
"%s.h"
,
basename
);
hfile
=
fopen
(
tempname
,
"w"
);
ASSERT
(
hfile
!=
NULL
,
(
"datadec: can't create '%s'
\n
"
,
tempname
)
);
if
(
IS_ANOTHER_ARG
)
{
lexfile
=
fopen
(
argv
[
arg
],
"r"
);
ASSERT
(
lexfile
!=
NULL
,
...
...
@@ -93,19 +88,21 @@ main( argc, argv ) int argc; char **argv;
REQUIRE_NO_MORE_ARGS
;
if
(
parse_d
eclns
(
&
declns
)
)
if
(
parse_d
ata
(
exports
,
globals
,
&
declns
)
)
{
if
(
verbose
)
{
printf
(
"datadec: declns are:
\n\n
"
);
print_declnlist
(
declns
);
printf
(
"exports = {%s}
\n
"
,
exports
);
printf
(
"globals = {%s}
\n
"
,
globals
);
}
make_declns
(
declns
,
cfile
,
hfile
,
basename
);
optimize
(
declns
);
make_declns
(
exports
,
globals
,
declns
,
basename
);
}
else
{
fprintf
(
stderr
,
"datadec: can't parse input properly
\n
"
);
}
fclose
(
cfile
);
fclose
(
hfile
);
exit
(
0
);
/*NOTREACHED*/
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment