* This file must be processed with yacc/bison. */
/*
- * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2001 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
if (is_lexer_symbol_predefined($1))
$$ = $1.eval();
else
- throw (std::runtime_error("unknown symbol '" + ex_to_symbol($1).getname() + "'"));
+ throw (std::runtime_error("unknown symbol '" + ex_to_symbol($1).get_name() + "'"));
}
| T_LITERAL {$$ = $1;}
| T_DIGITS {$$ = $1;}
| T_SYMBOL '(' exprseq ')' {
- unsigned i = function::find_function(ex_to_symbol($1).getname(), $3.nops());
+ unsigned i = function::find_function(ex_to_symbol($1).get_name(), $3.nops());
$$ = function(i, static_cast<const exprseq &>(*($3.bp))).eval(1);
}
| exp T_EQUAL exp {$$ = $1 == $3;}
| exp '-' exp {$$ = $1 - $3;}
| exp '*' exp {$$ = $1 * $3;}
| exp '/' exp {$$ = $1 / $3;}
- | exp '%' exp {$$ = $1 % $3;}
| '-' exp %prec NEG {$$ = -$2;}
| '+' exp %prec NEG {$$ = $2;}
| exp '^' exp {$$ = pow($1, $3);}
| exp '!' {$$ = factorial($1);}
| '(' exp ')' {$$ = $2;}
| '[' list_or_empty ']' {$$ = $2;}
- | T_MATRIX_BEGIN matrix T_MATRIX_END {$$ = lst_to_matrix($2);}
+ | T_MATRIX_BEGIN matrix T_MATRIX_END {$$ = lst_to_matrix(ex_to_lst($2));}
;
exprseq : exp {$$ = exprseq($1);}
int ginac_yyerror(char *s)
{
parser_error = std::string(s) + " at " + std::string(ginac_yytext);
+ return 0;
}