-/*
- * Copyright (C) 2012, 2013, 2014
- * Dale Weiler
- * Wolfgang Bumiller
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
#include <stdlib.h>
#include <string.h>
con_out("usage: %s [options] [files...]", app_name);
con_out("options:\n"
" -h, --help show this help message\n"
- " -debug turns on compiler debug messages\n"
- " -memchk turns on compiler memory leak check\n");
+ " -debug turns on compiler debug messages\n");
con_out(" -o, --output=file output file, defaults to progs.dat\n"
" -s filename add a progs.src file to be used\n");
con_out(" -E stop after preprocessing\n");
static bool options_parse(int argc, char **argv) {
bool argend = false;
size_t itr;
- char buffer[1024];
- char *redirout = NULL;
- char *redirerr = NULL;
- char *config = NULL;
- char *memdumpcols = NULL;
+ char buffer[1024];
+ char *config = NULL;
while (!argend && argc > 1) {
char *argarg;
argitem item;
- ppitem macro;
+ ppitem macro;
++argv;
--argc;
opts_set(opts.flags, EMULATE_STATE, true);
continue;
}
- if (options_long_gcc("redirout", &argc, &argv, &redirout)) {
- con_change(redirout, redirerr);
- continue;
- }
- if (options_long_gcc("redirerr", &argc, &argv, &redirerr)) {
- con_change(redirout, redirerr);
- continue;
- }
if (options_long_gcc("config", &argc, &argv, &argarg)) {
config = argarg;
continue;
}
- if (options_long_gcc("memdumpcols", &argc, &argv, &memdumpcols)) {
- OPTS_OPTION_U16(OPTION_MEMDUMPCOLS) = (uint16_t)strtol(memdumpcols, NULL, 10);
- continue;
- }
if (options_long_gcc("progsrc", &argc, &argv, &argarg)) {
OPTS_OPTION_STR(OPTION_PROGSRC) = argarg;
continue;
OPTS_OPTION_BOOL(OPTION_DUMPFIN) = true;
continue;
}
- if (!strcmp(argv[0]+1, "memchk")) {
- OPTS_OPTION_BOOL(OPTION_MEMCHK) = true;
- continue;
- }
if (!strcmp(argv[0]+1, "nocolor")) {
con_color(0);
continue;
OPTS_OPTION_BOOL(OPTION_QUIET) = true;
break;
}
- else if (!strcmp(argv[0]+2, "correct")) {
- OPTS_OPTION_BOOL(OPTION_CORRECTION) = true;
- break;
- }
- else if (!strcmp(argv[0]+2, "no-correct")) {
- OPTS_OPTION_BOOL(OPTION_CORRECTION) = false;
- break;
- }
else if (!strcmp(argv[0]+2, "add-info")) {
OPTS_OPTION_BOOL(OPTION_ADD_INFO) = true;
break;
}
/* returns the line number, or -1 on error */
-static bool progs_nextline(char **out, size_t *alen, fs_file_t *src) {
+static bool progs_nextline(char **out, size_t *alen, FILE *src) {
int len;
char *line;
char *start;
char *end;
line = *out;
- len = fs_file_getline(&line, alen, src);
+ len = util_getline(&line, alen, src);
if (len == -1)
return false;
int retval = 0;
bool operators_free = false;
bool progs_src = false;
- fs_file_t *outfile = NULL;
+ FILE *outfile = NULL;
struct parser_s *parser = NULL;
struct ftepp_s *ftepp = NULL;
if (OPTS_OPTION_BOOL(OPTION_PP_ONLY)) {
if (opts_output_wasset) {
- outfile = fs_file_open(OPTS_OPTION_STR(OPTION_OUTPUT), "wb");
+ outfile = fopen(OPTS_OPTION_STR(OPTION_OUTPUT), "wb");
if (!outfile) {
con_err("failed to open `%s` for writing\n", OPTS_OPTION_STR(OPTION_OUTPUT));
retval = 1;
}
if (!vec_size(items)) {
- fs_file_t *src;
+ FILE *src;
char *line = NULL;
size_t linelen = 0;
bool hasline = false;
progs_src = true;
- src = fs_file_open(OPTS_OPTION_STR(OPTION_PROGSRC), "rb");
+ src = fopen(OPTS_OPTION_STR(OPTION_PROGSRC), "rb");
if (!src) {
con_err("failed to open `%s` for reading\n", OPTS_OPTION_STR(OPTION_PROGSRC));
retval = 1;
}
}
- fs_file_close(src);
+ fclose(src);
mem_d(line);
}
}
out = ftepp_get(ftepp);
if (out)
- fs_file_printf(outfile, "%s", out);
+ fprintf(outfile, "%s", out);
ftepp_flush(ftepp);
}
else {
mem_d((void*)operators);
lex_cleanup();
- stat_info();
if (!retval && compile_errors)
retval = 1;