Put status codes and error stuff in their own header
diff --git a/include/bc.h b/include/bc.h
index 317b81e..96928e2 100644
--- a/include/bc.h
+++ b/include/bc.h
@@ -27,6 +27,8 @@
#include <stdlib.h>
#include <limits.h>
+#include <status.h>
+
#define BC_FLAG_WARN (1<<0)
#define BC_FLAG_STANDARD (1<<1)
#define BC_FLAG_QUIET (1<<2)
@@ -45,96 +47,6 @@
#define BC_SCALE_MAX_DEF (LONG_MAX)
#define BC_STRING_MAX_DEF (INT_MAX)
-#define BC_ERR_IDX_BC (0)
-#define BC_ERR_IDX_VEC (1)
-#define BC_ERR_IDX_LEX (2)
-#define BC_ERR_IDX_PARSE (3)
-#define BC_ERR_IDX_MATH (4)
-#define BC_ERR_IDX_EXEC (5)
-#define BC_ERR_IDX_POSIX (6)
-
-typedef enum BcStatus {
-
- BC_STATUS_SUCCESS,
-
- BC_STATUS_QUIT,
- BC_STATUS_LIMITS,
-
- BC_STATUS_MALLOC_FAIL,
- BC_STATUS_IO_ERR,
-
- BC_STATUS_INVALID_ARG,
-
- BC_STATUS_NO_LIMIT,
- BC_STATUS_BAD_LIMIT,
-
- BC_STATUS_VEC_OUT_OF_BOUNDS,
- BC_STATUS_VEC_ITEM_EXISTS,
-
- BC_STATUS_LEX_BAD_CHARACTER,
- BC_STATUS_LEX_NO_STRING_END,
- BC_STATUS_LEX_NO_COMMENT_END,
- BC_STATUS_LEX_EOF,
-
- BC_STATUS_PARSE_BAD_TOKEN,
- BC_STATUS_PARSE_BAD_EXPR,
- BC_STATUS_PARSE_BAD_PRINT,
- BC_STATUS_PARSE_BAD_FUNC,
- BC_STATUS_PARSE_BAD_ASSIGN,
- BC_STATUS_PARSE_NO_AUTO,
- BC_STATUS_PARSE_MISMATCH_NUM_FUNCS,
- BC_STATUS_PARSE_DUPLICATE_LOCAL,
- BC_STATUS_PARSE_BUG,
-
- BC_STATUS_MATH_NEGATIVE,
- BC_STATUS_MATH_NON_INTEGER,
- BC_STATUS_MATH_OVERFLOW,
- BC_STATUS_MATH_DIVIDE_BY_ZERO,
- BC_STATUS_MATH_NEG_SQRT,
- BC_STATUS_MATH_BAD_STRING,
- BC_STATUS_MATH_BAD_TRUNCATE,
-
- BC_STATUS_EXEC_FILE_ERR,
- BC_STATUS_EXEC_MISMATCHED_PARAMS,
- BC_STATUS_EXEC_UNDEFINED_FUNC,
- BC_STATUS_EXEC_UNDEFINED_VAR,
- BC_STATUS_EXEC_UNDEFINED_ARRAY,
- BC_STATUS_EXEC_FILE_NOT_EXECUTABLE,
- BC_STATUS_EXEC_SIGACTION_FAIL,
- BC_STATUS_EXEC_BAD_SCALE,
- BC_STATUS_EXEC_BAD_IBASE,
- BC_STATUS_EXEC_BAD_OBASE,
- BC_STATUS_EXEC_BAD_STMT,
- BC_STATUS_EXEC_BAD_EXPR,
- BC_STATUS_EXEC_BAD_STRING,
- BC_STATUS_EXEC_STRING_LEN,
- BC_STATUS_EXEC_ARRAY_LEN,
- BC_STATUS_EXEC_BAD_READ_EXPR,
- BC_STATUS_EXEC_RECURSIVE_READ,
- BC_STATUS_EXEC_BAD_CONSTANT,
- BC_STATUS_EXEC_BAD_RETURN,
- BC_STATUS_EXEC_BAD_LABEL,
- BC_STATUS_EXEC_BAD_TYPE,
- BC_STATUS_EXEC_BAD_STACK,
-
- BC_STATUS_POSIX_NAME_LEN,
- BC_STATUS_POSIX_SCRIPT_COMMENT,
- BC_STATUS_POSIX_BAD_KEYWORD,
- BC_STATUS_POSIX_DOT_LAST,
- BC_STATUS_POSIX_RETURN_PARENS,
- BC_STATUS_POSIX_BOOL_OPS,
- BC_STATUS_POSIX_REL_OUTSIDE,
- BC_STATUS_POSIX_MULTIPLE_REL,
- BC_STATUS_POSIX_MISSING_FOR_INIT,
- BC_STATUS_POSIX_MISSING_FOR_COND,
- BC_STATUS_POSIX_MISSING_FOR_UPDATE,
- BC_STATUS_POSIX_FUNC_HEADER_LEFT_BRACE,
-
- // This is last so I can remove it for toybox.
- BC_STATUS_INVALID_OPTION,
-
-} BcStatus;
-
// ** Exclude start. **
typedef struct BcGlobals {