X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginsh%2Fginsh_parser.yy;h=6931d18944f3d64dbada3089b77723bb17db51fe;hp=fb6edb05ed92d98526b70988e4025f801a927a4e;hb=6a0b4545189926492f657b201e3ed1b9de1dd897;hpb=cbc11c7f58c923953c54fcba798bf97e7deb81a3 diff --git a/ginsh/ginsh_parser.yy b/ginsh/ginsh_parser.yy index fb6edb05..6931d189 100644 --- a/ginsh/ginsh_parser.yy +++ b/ginsh/ginsh_parser.yy @@ -86,7 +86,7 @@ static ex lst2matrix(const ex &l); %token T_NUMBER T_SYMBOL T_LITERAL T_DIGITS T_QUOTE T_QUOTE2 T_QUOTE3 %token T_EQUAL T_NOTEQ T_LESSEQ T_GREATEREQ T_MATRIX_BEGIN T_MATRIX_END -%token T_QUIT T_PRINT T_READ T_WRITE T_TIME T_XYZZY T_INVENTORY T_LOOK T_SCORE +%token T_QUIT T_WARRANTY T_PRINT T_READ T_WRITE T_TIME T_XYZZY T_INVENTORY T_LOOK T_SCORE /* Operator precedence and associativity */ %right '=' @@ -139,6 +139,19 @@ line : ';' | '?' T_SYMBOL {print_help(ex_to_symbol($2).getname());} | '?' '?' {print_help_topics();} | T_QUIT {YYACCEPT;} + | T_WARRANTY { + cout << "This program is free software; you can redistribute it and/or modify it under\n"; + cout << "the terms of the GNU General Public License as published by the Free Software\n"; + cout << "Foundation; either version 2 of the License, or (at your option) any later\n"; + cout << "version.\n"; + cout << "This program is distributed in the hope that it will be useful, but WITHOUT\n"; + cout << "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n"; + cout << "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n"; + cout << "details.\n"; + cout << "You should have received a copy of the GNU General Public License along with\n"; + cout << "this program. If not, write to the Free Software Foundation, 675 Mass Ave,\n"; + cout << "Cambridge, MA 02139, USA.\n"; + } | T_XYZZY {cout << "Nothing happens.\n";} | T_INVENTORY {cout << "You're not carrying anything.\n";} | T_LOOK {cout << "You're in a twisty little maze of passages, all alike.\n";} @@ -407,23 +420,10 @@ static ex f_rem(const exprseq &e) return rem(e[0], e[1], ex_to_symbol(e[2])); } -static ex f_series2(const exprseq &e) -{ - CHECK_ARG(1, symbol, series); - return e[0].series(ex_to_symbol(e[1]), ex(0)); -} - -static ex f_series3(const exprseq &e) -{ - CHECK_ARG(1, symbol, series); - return e[0].series(ex_to_symbol(e[1]), e[2]); -} - -static ex f_series4(const exprseq &e) +static ex f_series(const exprseq &e) { - CHECK_ARG(1, symbol, series); - CHECK_ARG(3, numeric, series); - return e[0].series(ex_to_symbol(e[1]), e[2], ex_to_numeric(e[3]).to_int()); + CHECK_ARG(2, numeric, series); + return e[0].series(e[1], ex_to_numeric(e[2]).to_int()); } static ex f_sqrfree(const exprseq &e) @@ -516,9 +516,7 @@ static const fcn_init builtin_fcns[] = { {"primpart", fcn_desc(f_primpart, 2)}, {"quo", fcn_desc(f_quo, 3)}, {"rem", fcn_desc(f_rem, 3)}, - {"series", fcn_desc(f_series2, 2)}, - {"series", fcn_desc(f_series3, 3)}, - {"series", fcn_desc(f_series4, 4)}, + {"series", fcn_desc(f_series, 3)}, {"sqrfree", fcn_desc(f_sqrfree, 2)}, {"sqrt", fcn_desc(f_sqrt, 1)}, {"subs", fcn_desc(f_subs2, 2)}, @@ -558,10 +556,10 @@ void GiNaC::ginsh_get_ginac_functions(void) void ginsh_get_ginac_functions(void) #endif // ndef NO_NAMESPACE_GINAC { - vector::const_iterator i = function::registered_functions().begin(), end = function::registered_functions().end(); + vector::const_iterator i = function::registered_functions().begin(), end = function::registered_functions().end(); unsigned serial = 0; while (i != end) { - fcns.insert(make_pair(i->name, fcn_desc(f_ginac_function, i->nparams, serial))); + fcns.insert(make_pair(i->get_name(), fcn_desc(f_ginac_function, i->get_nparams(), serial))); i++; serial++; } @@ -727,8 +725,8 @@ void greeting(void) cout << "ginsh - GiNaC Interactive Shell (" << PACKAGE << " V" << VERSION << ")" << endl; cout << " __, _______ Copyright (C) 1999-2000 Johannes Gutenberg University Mainz,\n" << " (__) * | Germany. This is free software with ABSOLUTELY NO WARRANTY.\n" - << " ._) i N a C | You are welcome to redistribute it under certain conditions;\n" - << "<-------------' see the file COPYING for details." << endl; + << " ._) i N a C | You are welcome to redistribute it under certain conditions.\n" + << "<-------------' For details type `warranty;'.\n" << endl; cout << "Type ?? for a list of help topics." << endl; } @@ -760,13 +758,13 @@ int main(int argc, char **argv) insert_fcn_help("atan", "inverse tangent function"); insert_fcn_help("atan2", "inverse tangent function with two arguments"); insert_fcn_help("atanh", "inverse hyperbolic tangent function"); - insert_fcn_help("beta", "beta function"); + insert_fcn_help("Beta", "Beta function"); insert_fcn_help("binomial", "binomial function"); insert_fcn_help("cos", "cosine function"); insert_fcn_help("cosh", "hyperbolic cosine function"); insert_fcn_help("exp", "exponential function"); insert_fcn_help("factorial", "factorial function"); - insert_fcn_help("gamma", "gamma function"); + insert_fcn_help("Gamma", "Gamma function"); insert_fcn_help("log", "natural logarithm"); insert_fcn_help("psi", "psi function\npsi(x) is the digamma function, psi(n,x) the nth polygamma function"); insert_fcn_help("sin", "sine function");