This is gck_errors.c in view mode; [Download] [Up]
/* ******************************************************************** */ /* * GCK * */ /* * A Circuit Simulation Program * */ /* * by Tanju Cataltepe * */ /* * (c) Copyright 1989 * */ /* ******************************************************************** */ /* (c) Copyright 1989, Tanju Cataltepe */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <time.h> #ifdef Macintosh #include <console.h> #include <Files.h> #else #include <sys/types.h> #include <sys/stat.h> #endif #include <math.h> #include <float.h> #include "gck.h" #include "gck_vars.h" #include "gck_protos.h" #include "gck_errors.h" /* errorReport enhanced RdH January 1992 */ void errorReport(err_code, nm, err_type, err_index) long err_code; long err_type; /* detailed description to err_code */ long err_index; /* param relating to type of error */ char *nm; { fprintf(stderr,"*GCKC APPLICATION ERROR -- Program Terminating\n"); /* progName */ switch (err_code) { case ERROR_ARGUMENT_USAGE: fprintf(stderr,"Command Line requires at least one parameter passed.\n"); break; case ERROR_COMMAND_LINE_SYMBOL: fprintf(stderr,"A Symbol on the Command Line (%s) is not of the correct form.\n",nm); break; case ERROR_GAUSSIAN: fprintf(stderr,"Gaussian Elimination reveals a Singular system\n"); if (err_type == ERR_NODE) if (err_index != 0) fprintf(stderr,"Node: %s\n",nodeNames.node[err_index].name); else fprintf(stderr,"Unable to determine node location.\nThe trouble Node may be within a Subcircuit\n"); break; case ERROR_UNRESOLVED_BRANCH: fprintf(stderr,"The BRANCH (%s) is unknown.\n", nm); break; case ERROR_UNRESOLVED_MODEL: fprintf(stderr,"The MODEL (%s) was not found.\n", nm); break; case ERROR_UNRESOLVED_CLOCK: fprintf(stderr,"The CLOCK signal (%s) was not found.\n", nm); break; case ERROR_UNRESOLVED_SUBCKT: fprintf(stderr,"The SUBCKT (%s) is not defined.\n", nm); break; case ERROR_DUPLICATE_MODEL: fprintf(stderr,"The MODEL (%s) has already been defined.\n", nm); break; case ERROR_RECURSIVE_SUBCKT: fprintf(stderr,"The MODEL (%s) is defined within itself.\n", nm); fprintf(stderr,"Recursive subcircuits, obviously, are not allowed.\n"); break; case ERROR_UNRESOLVED_SOURCE: fprintf(stderr,"Unknown source specification\n"); break; case ERROR_QUANTIZER: fprintf(stderr,"The quantizer model (%s) is not of the correct form.\n", nm); break; case ERROR_DELAY_ZERO: fprintf(stderr,"The Delay of (%s) must be greater than 0.\n", nm); break; case ERROR_DIGITAL_UNKNOWN: fprintf(stderr,"Unknown digital component.\n"); break; case ERROR_DUPLICATE_TABLE: fprintf(stderr,"The TABLE (%s) has already been defined.\n", nm); break; case ERROR_UNRESOLVED_TABLE: fprintf(stderr,"The TABLE (%s) was not defined.\n", nm); break; /* misc. */ case ERROR_WINDOW_NOT_FOUND: fprintf(stderr,"The Window Type (%s) is not available.\n",nm); break; case ERROR_LIBRARY_DEPTH: fprintf(stderr,"You have specified too many levels of LIBRARY indirection.\n"); fprintf(stderr,"Go take a walk or something. You're working too hard!\n"); fprintf(stderr,"(Libraries can reference libraries, but not past %ld levels).\n",MAX_FILE_DEPTH); break; case ERROR_INCONSISTENT_CLOCKS: fprintf(stderr,"An inconsistency in the number of clock phases has been found.\n"); fprintf(stderr,"Make certain all .CLOCK and .SAMPLE cards all have the same number of phases.\n"); break; case ERROR_NODE_REQUEST: fprintf(stderr,"The NODE (%s) referenced does not exist.\n",nm); break; case ERROR_SUBCKT_DEPTH: fprintf(stderr,"The Maximum Sub-Circuit Depth has been exceeded. (MAX_DEPTH = %ld).\n",MAX_SUBCKT_DEPTH); fprintf(stderr,"Might I suggest SABER, if you really need more levels of abstraction!\n"); break; case ERROR_SYMBOL_NOT_ASSIGNED: fprintf(stderr,"The reference SYMBOL (%s) was never assigned a global value.\n",nm); fprintf(stderr,"If you are referencing this SYMBOL locally,\n assign a dummy value to the symbol at least once.\n"); break; /* files not found */ case ERROR_INPUT_FILE_NOT_FOUND: fprintf(stderr,"A Source Input FILE was not found. (Filename %s).\n",nm); break; case ERROR_INPUT_NOT_FOUND: fprintf(stderr,"The Main Input FILE was not found. (Filename %s).\n",nm); break; case ERROR_LIBRARY_NOT_FOUND: fprintf(stderr,"The Library Input FILE was not found (Filename %s).\n",nm); break; case ERROR_MULTIPLE_INPUT_FILES: fprintf(stderr,"The Command Line found more than one input file.\n"); break; case ERROR_SYMBOLS_ON_CQ: fprintf(stderr,"Symbols cannot be specified on the command line with the -Z option.\n"); fprintf(stderr,"Circuit compilation not performed.\n"); break; case ERROR_COMPILER_FILE_COULDNT_OPEN: fprintf(stderr,"The Circuit Compiler was unable to open the output file (%s).\n",nm); break; case ERROR_FILE_FFT_CANNOT_OPEN: fprintf(stderr,"The FFT Print Routine was unable to open the output file (%s).\n",nm); break; case ERROR_FILE_PRINT_CANNOT_OPEN: fprintf(stderr,"The Print Routine was unable to open the output file (%s).\n",nm); break; case ERROR_COMPILER_FILE_NOT_FOUND: fprintf(stderr,"The Quick Compiler couldn't find the compiled circuit file (%s).\n"); break; case ERROR_COMPILER_TICKS_INCONSISTENT: fprintf(stderr,"The Quick Compiler found an inconsistent number of clock phases.\n"); break; case ERROR_COMPILER_VARS_INCONSISTENT: fprintf(stderr,"The Quick Compiler found an inconsistent number of Variables.\n"); break; /* "broken" */ case ERROR_BAD_PRINTSPEC: fprintf(stderr,"Print Card Specification is confusing.\n"); fprintf(stderr,"Print variables are \"v\" or \"i\"\n"); fprintf(stderr,"Prototype: .PRINT V(1,2) V(Output) I(R1)\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_BAD_FFTSPEC: fprintf(stderr,"FFT Card Specification is confusing.\n"); fprintf(stderr,"FFT variables are \"v\" or \"i\"\n"); fprintf(stderr,"Prototype: .FFT V(1,2) V(Output) I(R1)\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_SIN_CARD_BROKEN: fprintf(stderr,"Card parser unable to resolve card.\n"); fprintf(stderr,"Source specification for SIN card is confusing.\n"); fprintf(stderr,"Prototype:\n Vyyyy <node_1> <node_2> SIN <amplitude> <frequency> [<delay>]\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_COMB_CARD_BROKEN: fprintf(stderr,"Card parser unable to resolve card.\n"); fprintf(stderr,"Source specification for COMB card is confusing.\n"); fprintf(stderr,"Prototype:\n Vyyyy <node_1> <node_2> COMB <amplitude> <start_f> <delta_f> <#_of_freq>\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_PULSE_CARD_BROKEN: fprintf(stderr,"Card parser unable to resolve card.\n"); fprintf(stderr,"Source specification for PULSE card is confusing.\n"); fprintf(stderr,"Prototype:\n Vyyyy <node_1> <node_2> PULSE <unpulsed_value> <pulsed_value> <period>\n <delay> <rise_time> <duration_high> <fall_time>\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_ADDER_CARD_BROKEN: fprintf(stderr,"Card parser unable to resolve card.\n"); fprintf(stderr,"Digital ADDER card is confusing--check syntax please.\n"); fprintf(stderr,"Prototype:\n @AYYYY <n_output> <n_input1> <n_input2> <value1> <value2>\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; case ERROR_LOGIC_CARD_BROKEN: fprintf(stderr,"Card parser unable to resolve card.\n"); fprintf(stderr,"Digital LOGIC card is confusing--check syntax please.\n"); fprintf(stderr,"Prototype:\n $YYYY <n_output> <n_input> <node_0> ... <node_M> <Table> <0|1>\n <v_th> <v_lo> <v_hi>\n"); fprintf(stderr,"Your Card:\n %s\n",rcard.Card); break; /* out of memory errors */ case ERROR_REALLOC_MODEL: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Memory request when parsing a MODEL failed.\n"); break; case ERROR_REALLOC_DELAY: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Memory request when creating a DELAY element failed.\n"); break; case ERROR_REALLOC_NODE_MANAGER: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Memory request when creating additional space for NODES failed.\n"); break; case ERROR_REALLOC_NODE_ID: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Memory request when creating additional space for the NODE MANAGER failed.\n"); break; case ERROR_C_MALLOC_VOID: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Generic Memory allocation call failed.\n"); break; case ERROR_REALLOC_SYMBOL: fprintf(stderr,"Out of Memory!\n"); fprintf(stderr,"A Memory request when allocating space for a SYMBOL failed.\n"); break; /* internal errors */ case ERROR_GAUSSIAN_UNKNOWN_ELEMENT: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"Gaussian Elimination Routine is unable to resolve the BRANCH (%s)\n", nm); break; case ERROR_C_MALLOC_SIZE_ZERO: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"A request to allocate memory of size ZERO occurred.\n"); break; case ERROR_LOGICAL_LIST_COMPILER_ERROR: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"Contact your program support representative for assistance.\n"); fprintf(stderr,"Error Code %ld\n",ERROR_LOGICAL_LIST_COMPILER_ERROR); break; case ERROR_GET_SYMBOL_VALUE: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"The SYMBOL name requested was blank.\n"); break; case ERROR_SYMBOL_UNRESOLVED: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"An internal attempt to find a SYMBOL failed.\n"); break; case ERROR_SYMBOL_CHECK: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"The SYMBOL checking routine was handed a blank name.\n"); break; case ERROR_SYMBOL_CREATION_NULL: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"The routine which creates a SYMBOL was handed a blank name.\n"); break; default: fprintf(stderr,"Internal Circuit Compiler Error!\n"); fprintf(stderr,"Contact your program support representative for assistance.\n"); fprintf(stderr,"Error Code \"DEFAULT\"\n"); break; } exit_now(); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.