*
* Global definitions for ginsh.
*
- * GiNaC Copyright (C) 1999 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2004 Johannes Gutenberg University Mainz, Germany
*
* 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
#ifndef GINSH_H
#define GINSH_H
-// yacc semantic type
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <map>
+#include <iostream>
+#include <string>
+
+using namespace std;
+
+#ifdef HAVE_READLINE_READLINE_H
+extern "C" {
+#include <readline/readline.h>
+}
+#endif
+
+#ifdef HAVE_READLINE_HISTORY_H
+extern "C" {
+#include <readline/history.h>
+}
+#endif
+
+#ifdef IN_GINAC
+#include "ginac.h"
+#else
+#include <ginac/ginac.h>
+#endif
+
+using namespace GiNaC;
+
+// yacc stack type
#define YYSTYPE ex
// lex functions/variables
#else
extern char yytext[];
#endif
+extern FILE *yyin;
+
+// List of input files to be processed
+extern int num_files;
+extern char **file_list;
// Table of all used symbols
typedef map<string, symbol> sym_tab;
extern sym_tab syms;
-// Prototypes for missing functions
-#ifndef HAVE_STRDUP
-extern char *strdup(const char *s);
-#endif
+// Type of symbols to generate (real or complex)
+extern unsigned symboltype;
#endif