Mercurial > hg > octave-nkf
diff src/pt-exp.cc @ 2900:5ed088015839
[project @ 1997-04-30 03:26:56 by jwe]
author | jwe |
---|---|
date | Wed, 30 Apr 1997 03:37:00 +0000 |
parents | 1a30f46e1870 |
children | 56be458e237f |
line wrap: on
line diff
--- a/src/pt-exp.cc +++ b/src/pt-exp.cc @@ -104,25 +104,26 @@ return retval; } -const char * +string tree_prefix_expression::oper (void) const { - static const char *op; + string retval = "<unknown>"; + switch (etype) { case increment: - op = "++"; + retval = "++"; break; case decrement: - op = "--"; + retval = "--"; break; default: - op = "<unknown>"; break; } - return op; + + return retval; } void @@ -130,7 +131,7 @@ { if (error_state > 0) ::error ("evaluating prefix operator `%s' near line %d, column %d", - oper (), line (), column ()); + oper () . c_str (), line (), column ()); } void @@ -183,25 +184,26 @@ return retval; } -const char * +string tree_postfix_expression::oper (void) const { - static const char *op; + string retval = "<unknown>"; + switch (etype) { case increment: - op = "++"; + retval = "++"; break; case decrement: - op = "--"; + retval = "--"; break; default: - op = "<unknown>"; break; } - return op; + + return retval; } void @@ -209,7 +211,7 @@ { if (error_state > 0) ::error ("evaluating postfix operator `%s' near line %d, column %d", - oper (), line (), column ()); + oper () . c_str (), line (), column ()); } void @@ -270,33 +272,34 @@ return retval; } -const char * +string tree_unary_expression::oper (void) const { - static const char *op; + string retval = "<unknown>"; + switch (etype) { case unot: - op = "!"; + retval = "!"; break; case uminus: - op = "-"; + retval = "-"; break; case transpose: - op = ".'"; + retval = ".'"; break; case hermitian: - op = "'"; + retval = "'"; break; default: - op = "<unknown>"; break; } - return op; + + return retval; } void @@ -304,7 +307,7 @@ { if (error_state > 0) ::error ("evaluating unary operator `%s' near line %d, column %d", - oper (), line (), column ()); + oper () . c_str (), line (), column ()); } void @@ -357,11 +360,10 @@ return retval; } -const char * +string tree_binary_expression::oper (void) const { - // XXX FIXME XXX - return octave_value::binary_op_as_string (etype) . c_str (); + return octave_value::binary_op_as_string (etype); } void @@ -369,7 +371,7 @@ { if (error_state > 0) ::error ("evaluating binary operator `%s' near line %d, column %d", - oper (), line (), column ()); + oper () . c_str (), line (), column ()); } void @@ -448,25 +450,26 @@ return retval; } -const char * +string tree_boolean_expression::oper (void) const { - static const char *op; + string retval = "<unknown>"; + switch (etype) { case bool_and: - op = "&&"; + retval = "&&"; break; case bool_or: - op = "||"; + retval = "||"; break; default: - op = "<unknown>"; break; } - return op; + + return retval; } // Simple assignment expressions. @@ -590,7 +593,7 @@ // undefined) print b = [ 0; 2 ], which is more Matlab-like. if (! error_state && print && lhs_val.is_defined ()) - lhs_val.print_with_name (lhs->name ()); + lhs_val.print_with_name (octave_stdout, lhs->name ()); return retval; } @@ -609,10 +612,10 @@ } } -const char * +string tree_simple_assignment_expression::oper (void) const { - return octave_value::assign_op_as_string (etype) . c_str (); + return octave_value::assign_op_as_string (etype); } void