struct unit;

void Unit_cmp();
void Unit_exponent(int);
void Unit_push(char*);
void append(Item* ql, Item* q);
void check_num();
void clear_compartlist();
void consistency();
void consreact_push(Item*);
void debugitem(Item*);
void decdim(Symbol*, Item*);
void declare(long subtype, Item* q, Item* qa);
void declare_array(Symbol*);
void declare_implied();
void declare_indep(Symbol*);
void define_value(Item* q1, Item* q2);
void remove(Item* item);
void deltokens(Item* q1, Item* q2);
void diag(char*, char*);
void dimensionless();
void freelist(List**);
void func_unit(Item* q1, Item* q2);
void ifcnvfac(Item*);
void include_file(Item*);
void init();
void install_cfactor(Item*, Item*, Item*);
void install_local(Item* q, Item* qdim);
void install_units(char*, char*);
void internal_error(Item* q, char* file, int line);
void kinunits(Item* type, int pass);
void lex_start();
void lex_units();
void memory_usage();
void modl_units();
void move(Item*, Item*, Item*);
void movelist(Item* q1, Item* q2, List* s);
void nrn_list(Item*, Item*);
void nrn_unit_chk();
void nrn_unit_init();
void nrn_use(Item* q1, Item* q2, Item* q3);
void parse_restart(Item* q, int i);
void parsepass(int);
void pop_file_stack();
void poplocal();
void print_unit_expr(int);
void printitem(Item* q, FILE* fp);
void printitems(Item* q1, Item* q2);
void printlist(List*);
void punit();
void pushlocal(Item* q1, Item* qdim);
void replacstr(Item* q, char* s);
void symbol_init();
void ucopypop(struct unit*);
void ucopypush(struct unit*);
void unit_chk_arg(Item* q1, Item* q2);
void unit_cmp(Item* q1, Item* q2, Item* q3);
void unit_compartlist(Item*);
void unit_del(int);
void unit_div();
void unit_done_args();
void unit_exponent(Item* y, Item* lastok);
void unit_init();
void unit_ldifuslist(Item*, int);
void unit_less();
void unit_logic(int type, Item* q1, Item* q2, Item* q3);
void unit_mag_mul(double);
void unit_mul();
void unit_pop();
void unit_push(Item*);
void unit_push_args(Item*);
void unit_push_num(double);
void unit_stk_clean();
void unit_swap();
void unitcheck(char*);
void ureactadd(Item*);
