\date Aug 2016
----------------------------------------------------------------------------*/
/* Standard */
-#include <errno.h>
+#include <stdio.h> //print
+#include <errno.h> //errors
+#include <string.h> //strnlen
/* Posix */
+#include <stdlib.h> //exit
#include <unistd.h> //getopt
-int main(int, char*[]);
-
const char* cargs['Z'] = {0};
+int main(int, char*[]);
+
extern //bison
void yyparse(void);
extern //lexer.c
( int argc,
char* argv[]
)
-#define MAXERR "-%c allows at most " #MAX_STR_LEN " input characters", opt
+#define S(S)#S //stringifier
+#define MAXSTR 255
+#define MAXERR "-%c allows at most " S(MAXSTR) " input characters\n", opt
#define USAGE "Usage: %s [-r root]\n", argv[0]
#define DONE -1
{ int opt;
break;
case 'r' :
case 'o' :
- if (strnlen(optarg, MAX_STR_LEN) != MAX_STR_LEN)
+ if (strnlen(optarg, MAXSTR) != MAXSTR)
{ cargs[opt] = optarg;
goto getopt;
}