123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /* Hey EMACS -*- linux-c -*- */
- /* $Id: er_codes.c 2268 2006-11-06 17:18:51Z roms $ */
- /* TiEmu - Tiemu Is an EMUlator
- *
- * Copyright (c) 2005, Kevin Kofler
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
- /*
- ER_throw support
- */
- #include <stdio.h>
- #include <stdlib.h>
- /* This table is converted and hand-edited from the TIGCC error.h. */
- static struct {unsigned int id; const char *name;} erthrow_table[] = {
- {0, "ER_OK"},
- {1, "ER_EXIT"},
- {2, "ER_STOP"},
- {3, "ER_OFF"},
- {4, "ER_PRGM_STOP"},
- {9, "ER_NO_MSG"},
- {10, "ER_FUNC_DID_NOT_RETURN_VALUE"},
- {20, "ER_TEST_NOT_TRUE_OR_FALSE"},
- {30, "ER_ARG_CANNOT_BE_FOLDER"},
- {40, "ER_ARGUMENT"},
- {50, "ER_ARG_MISMATCH"},
- {60, "ER_EXPECTED_BOOL_OR_AGG"},
- {70, "ER_ARG_MUST_BE_DECIMAL"},
- {80, "ER_ARG_MUST_BE_LABEL"},
- {90, "ER_ARGUMENT_MUST_BE_LIST"},
- {100, "ER_ARG_MUST_BE_MATRIX"},
- {110, "ER_ARG_MUST_BE_PIC"},
- {120, "ER_ARG_MUST_BE_PIC_OR_STR"},
- {130, "ER_ARG_MUST_BE_STRING"},
- {140, "ER_EXPECTED_VAR"},
- {150, "ER_ARG_MUST_BE_EMPTY_FOLDER"},
- {160, "ER_EXPECTED_ALGEBRAIC"},
- {161, "ER_ASAP_TOO_LONG"},
- {163, "ER_ATTRIBUTE_NOT_FOUND"},
- {165, "ER_BATT_LOW"},
- {170, "ER_BOUND"},
- {180, "ER_BREAK"},
- {185, "ER_CHECKSUM"},
- {190, "ER_CIRCULAR_DEFINITION"},
- {200, "ER_INVALID_SUCH_THAT"},
- {210, "ER_DATATYPE"},
- {220, "ER_DEPENDENT_LIMIT"},
- {225, "ER_DIFF_EQ_SETUP"},
- {230, "ER_DIMENSION"},
- {240, "ER_NON_CONFORMING_LISTS"},
- {250, "ER_DIVBY0"},
- {260, "ER_DOMAIN"},
- {270, "ER_DUPLICATE_VAR_NAME"},
- {280, "ER_ELSE_WITHOUT_IF"},
- {290, "ER_ENDTRY_WITHOUT_ELSE"},
- {295, "ER_EXCESSIVE_ITERATION"},
- {300, "ER_EXPECTED_2OR3_ELEMENTS"},
- {305, "ER_EXPIRED"},
- {307, "ER_APP_EXT_NOT_FOUND"},
- {308, "ER_APP_NOT_FOUND"},
- {310, "ER_INVALID_NSOLVE_ARG1"},
- {320, "ER_INVALID_SOLVE_ARG1"},
- {330, "ER_FOLDER"},
- {335, "ER_FUNCS_IN_DIFF_EQ"},
- {345, "ER_INCONSISTENT_UNITS"},
- {350, "ER_INVALID_SUBSCRIPT"},
- {360, "ER_INVALID_INDIR_STRING"},
- {380, "ER_INVALID_ANS"},
- {390, "ER_ILLEGAL_ASSIGNMENT"},
- {400, "ER_ILLEGAL_ASSIGNMENT_VALUE"},
- {405, "ER_INVALID_AXES"},
- {410, "ER_ILLEGAL_COMMAND"},
- {420, "ER_INVALID_FOLDER_NAME"},
- {430, "ER_GRAPH_MODE"},
- {435, "ER_INVALID_GUESS"},
- {440, "ER_INVALID_IMPLIED_MULT"},
- {450, "ER_ILLEGAL_IN_FUNC"},
- {460, "ER_ILLEGAL_IN_CUSTOM"},
- {470, "ER_ILLEGAL_IN_DIALOG"},
- {480, "ER_ILLEGAL_IN_TOOLBAR"},
- {490, "ER_CANNOT_EXIT_FROM_TRY"},
- {500, "ER_INVALID_LABEL"},
- {510, "ER_INVALID_LIST_OR_MATRIX"},
- {520, "ER_INVAL_OUTSIDE_TB_CM"},
- {530, "ER_INVAL_OUTSIDE_DG_TB_CM"},
- {540, "ER_INVALID_OUTSIDE_DIALOG"},
- {550, "ER_MUST_BE_IN_PRGM_OR_FUNC"},
- {560, "ER_EXIT_NOT_IN_LOOP"},
- {570, "ER_INVALID_PATHNAME"},
- {575, "ER_INVALID_POLAR_COMPLEX"},
- {580, "ER_ILLEGAL_PRGM_REF"},
- {590, "ER_INVALID_SYNTAX_BLOCK"},
- {600, "ER_INVALID_TABLE"},
- {605, "ER_INVALID_USE_OF_UNITS"},
- {610, "ER_INVALID_LOCAL_DECLARATION"},
- {620, "ER_EXPECTED_VAR_OR_FUNC"},
- {630, "ER_INVALID_VAR_REF"},
- {640, "ER_INVALID_VECTOR_SYNTAX"},
- {650, "ER_LINK_IO"},
- {665, "ER_MAT_NOT_DIAGONALIZABLE"},
- {670, "ER_MEMORY"},
- {673, "ER_STACK_VIO"},
- {680, "ER_EXPECTED_LPAR"},
- {690, "ER_EXPECTED_RPAR"},
- {700, "ER_EXPECTED_DOUBLE_QUOTE"},
- {710, "ER_EXPECTED_RIGHT_BRACKET"},
- {720, "ER_EXPECTED_RIGHT_BRACE"},
- {730, "ER_INVALID_BLOCK_STRUCTURE"},
- {740, "ER_MISSING_THEN"},
- {750, "ER_NOT_FUNC_OR_PRGM"},
- {765, "ER_NO_FUNCS_SEL"},
- {780, "ER_NO_SOLUTION"},
- {790, "ER_NON_ALGEBRAIC_VARIABLE"},
- {800, "ER_UNREAL_RESULT"},
- {810, "ER_MEMORY_DML"},
- {830, "ER_OVERFLOW"},
- {840, "ER_STAT_PLOT"},
- {850, "ER_PRGM_NOT_FOUND"},
- {860, "ER_RECURSION_TOO_DEEP"},
- {870, "ER_RESERVED"},
- {875, "ER_ROM_ROUTINE_NOT_AVAILABLE"},
- {880, "ER_SEQUENCE_SETUP"},
- {885, "ER_SIGNATURE_ERR"},
- {890, "ER_SINGULARMAT"},
- {895, "ER_SLOPE_FIELD_FUNCS"},
- {900, "ER_EMPTY_GROUP_NOT_VALID"},
- {910, "ER_SYNTAX"},
- {930, "ER_TOO_FEW_ARGS"},
- {940, "ER_TOO_MANY_ARGS"},
- {950, "ER_TOO_MANY_SUBSCRIPTS"},
- {955, "ER_TOO_MANY_UNDEFINED"},
- {960, "ER_UNDEFINED_VAR"},
- {965, "ER_UNLICENSED"},
- {970, "ER_VAR_IN_USE"},
- {980, "ER_PROTECTED"},
- {990, "ER_NAME_TOO_LONG"},
- {1000, "ER_RANGE"},
- {1010, "ER_ZOOM"},
- {1020, "ER_ILLEGAL_TAG"},
- {1030, "ER_MEM_VIO"},
- {2048, NULL}
- };
- const char* ercodes_get_name(unsigned id)
- {
- if(id >= 2048)
- return "Unknown ERROR code";
- else
- {
- unsigned n = sizeof(erthrow_table)/sizeof(*erthrow_table), lb = 0, ub = n-1;
- while (lb < ub - 1)
- {
- unsigned mid = (lb + ub) >> 1;
- if (erthrow_table[mid].id <= id)
- lb = mid;
- else
- ub = mid;
- }
- if (id != erthrow_table[lb].id)
- {
- static char buffer[100];
- sprintf(buffer, "%s + %u", erthrow_table[lb].name,
- id - erthrow_table[lb].id);
- return buffer;
- }
- else
- return erthrow_table[lb].name;
- }
- }
|