src/Tools/8bit/c-sources/a2isa/main.c
author paulson
Wed, 07 Mar 2001 18:35:27 +0100
changeset 11199 97cde35cec10
parent 1826 2a2c0dbeb4ac
permissions -rw-r--r--
expanded abbrevs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     1
/*  Title:      Tools/8bit/c-sources/a2isa/main.c
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     2
    ID:         $Id$
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     3
    Author:     David von Oheimb
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     4
    Copyright   1996 TU Muenchen
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     5
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     6
converter for isabelle files, from ASCII to graphical characters
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     7
main file (ANSI-C)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     8
*/
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     9
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    10
#include <stdio.h>
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    11
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    12
extern int yylex(void);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    13
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    14
FILE* finput;                /* input file, default = stdin */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    15
FILE* foutput;               /* output file,default = stdout */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    16
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    17
void error(char* s, char* t)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    18
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    19
  fprintf(stderr, "Error! %s: %s\n", s, t);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    20
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    21
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    22
void usage(void)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    23
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    24
  fprintf(stderr, "Isabelle ASCII to 8bit converter. Valid Options:\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    25
  fprintf(stderr, "<file>:    input file other than stdin\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    26
  fprintf(stderr, "-o <file>: output file other than stdout\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    27
  fprintf(stderr, "-h(elp):   print this message\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    28
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    29
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    30
int main(int argc, char* argv[])
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    31
{
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    32
  char *s;                /* pointer to traverse components of argv */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    33
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    34
  finput = stdin;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    35
  foutput = stdout;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    36
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    37
  while (--argc > 0) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    38
    s = *++argv;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    39
    if (*s++ == '-')
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    40
      switch (*s) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    41
        case 'h':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    42
          usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    43
          exit(0);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    44
        case 'o':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    45
          if (--argc) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    46
            if ((foutput = fopen(*++argv, "w")) == NULL) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    47
             error("Creating output file", *argv);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    48
              exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    49
            }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    50
          } else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    51
            error("No output file specified for option", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    52
            usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    53
            exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    54
          }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    55
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    56
        default:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    57
          error("Unknown option", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    58
          usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    59
          exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    60
      } /* switch */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    61
    else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    62
      /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    63
       * no further parameters with "-"; therefore we see input file:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    64
       */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    65
       if ((finput = fopen(--s, "r")) == NULL) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    66
         error("Opening input file", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    67
         exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    68
        }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    69
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    70
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    71
  yylex();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    72
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    73
  return(0);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    74
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    75
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    76