From b9b6081bee80b1eb8d4118983b03e29733f188e0 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Fri, 9 Oct 2009 06:23:10 +0000 Subject: Fix SF/2875134 * interp/ptrees.boot: New. (pfIdSymbol): Use it. (pfSymbolSymbol): Likewise. (pfInfApplication): Likewise. * testsuite/interpreter/sf-2875134.input: New. --- configure | 18 +++++++++--------- configure.ac | 2 +- configure.ac.pamphlet | 2 +- src/ChangeLog | 9 +++++++++ src/interp/ptrees.boot | 19 ++++++++++++++++--- src/testsuite/interpreter/sf-2875134.input | 3 +++ 6 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 src/testsuite/interpreter/sf-2875134.input diff --git a/configure b/configure index ca48a79b..24e24127 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2009-10-01. +# Generated by GNU Autoconf 2.63 for OpenAxiom 1.4.0-2009-10-08. # # Report bugs to . # @@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='OpenAxiom' PACKAGE_TARNAME='openaxiom' -PACKAGE_VERSION='1.4.0-2009-10-01' -PACKAGE_STRING='OpenAxiom 1.4.0-2009-10-01' +PACKAGE_VERSION='1.4.0-2009-10-08' +PACKAGE_STRING='OpenAxiom 1.4.0-2009-10-08' PACKAGE_BUGREPORT='open-axiom-bugs@lists.sf.net' ac_unique_file="src/Makefile.pamphlet" @@ -1498,7 +1498,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures OpenAxiom 1.4.0-2009-10-01 to adapt to many kinds of systems. +\`configure' configures OpenAxiom 1.4.0-2009-10-08 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1568,7 +1568,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2009-10-01:";; + short | recursive ) echo "Configuration of OpenAxiom 1.4.0-2009-10-08:";; esac cat <<\_ACEOF @@ -1671,7 +1671,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OpenAxiom configure 1.4.0-2009-10-01 +OpenAxiom configure 1.4.0-2009-10-08 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1685,7 +1685,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OpenAxiom $as_me 1.4.0-2009-10-01, which was +It was created by OpenAxiom $as_me 1.4.0-2009-10-08, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -17062,7 +17062,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OpenAxiom $as_me 1.4.0-2009-10-01, which was +This file was extended by OpenAxiom $as_me 1.4.0-2009-10-08, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17125,7 +17125,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -OpenAxiom config.status 1.4.0-2009-10-01 +OpenAxiom config.status 1.4.0-2009-10-08 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.ac b/configure.ac index e51b7897..abcdb432 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.4.0-2009-10-01], +AC_INIT([OpenAxiom], [1.4.0-2009-10-08], [open-axiom-bugs@lists.sf.net]) AC_CONFIG_AUX_DIR(config) diff --git a/configure.ac.pamphlet b/configure.ac.pamphlet index aaa5ebf2..9da4c06d 100644 --- a/configure.ac.pamphlet +++ b/configure.ac.pamphlet @@ -1151,7 +1151,7 @@ information: <>= sinclude(config/open-axiom.m4) sinclude(config/aclocal.m4) -AC_INIT([OpenAxiom], [1.4.0-2009-10-01], +AC_INIT([OpenAxiom], [1.4.0-2009-10-08], [open-axiom-bugs@lists.sf.net]) @ diff --git a/src/ChangeLog b/src/ChangeLog index b79e9778..e52b5851 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2009-10-09 Gabriel Dos Reis + + Fix SF/2875134 + * interp/ptrees.boot: New. + (pfIdSymbol): Use it. + (pfSymbolSymbol): Likewise. + (pfInfApplication): Likewise. + * testsuite/interpreter/sf-2875134.input: New. + 2009-10-01 Gabriel Dos Reis * driver/Makefile.in (open_axiom_LDADD): Prefer libraries from build diff --git a/src/interp/ptrees.boot b/src/interp/ptrees.boot index b31ef8c4..0359ce41 100644 --- a/src/interp/ptrees.boot +++ b/src/interp/ptrees.boot @@ -71,13 +71,25 @@ pfSemiColon(pfbody) == pfTree('SemiColon, [pfbody]) pfSemiColon?(pf) == pfAbSynOp? (pf, 'SemiColon) pfSemiColonBody pf == second pf -- was ==> +--% Renaming. +--% We decided that the identifier "^" is syntactically synonymous to "**". +--% We could have banned the later and support only the former. +--% However, that would have made all exponentiation examples from +--% the Jenks&Sutor book invalid. Which would be infortunate. +--% Rather, we opt to the renaming here. This poses the danger that +--% any other AST scheme would need to do the same work. +--% --gdr, 2009-10-08. +pfRename x == + x = "^" => "**" + x + --% LEAVES pfId(expr) == pfLeaf('id, expr) pfIdPos(expr,pos) == pfLeaf('id,expr,pos) pfId? form == pfAbSynOp?(form,'id) or pfAbSynOp?(form,'idsy) pfSymbolVariable? form == pfAbSynOp?(form,'idsy) -pfIdSymbol form == tokPart form +pfIdSymbol form == pfRename tokPart form --pfAmpersand(amptok,name) == name pfDocument strings == pfLeaf('Document, strings) @@ -106,7 +118,8 @@ pfSymb(expr, :optpos) == pfSymbol? form == pfAbSynOp?(form, 'symbol) -pfSymbolSymbol form == tokPart form + +pfSymbolSymbol form == pfRename tokPart form --% TREES -- parser interface functions @@ -127,7 +140,7 @@ pfInfApplication(op,left,right)== pfWrong(pfDocument ['"infop as argument to infop"],pfListOf []) pfIdSymbol op = "and" => pfAnd (left,right) pfIdSymbol op = "or" => pfOr (left,right) - pfApplication(op,pfTuple pfListOf [left,right]) + pfApplication(pfRename op,pfTuple pfListOf [left,right]) pfCheckInfop form== false diff --git a/src/testsuite/interpreter/sf-2875134.input b/src/testsuite/interpreter/sf-2875134.input new file mode 100644 index 00000000..88492a93 --- /dev/null +++ b/src/testsuite/interpreter/sf-2875134.input @@ -0,0 +1,3 @@ +f := series(1/(1-z), z=0) +f^3 + -- cgit v1.2.3