diff options
author | dos-reis <gdr@axiomatics.org> | 2007-12-13 14:34:08 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-12-13 14:34:08 +0000 |
commit | 2f2cf5024ab894aa083d87f1e008528d5a5c717b (patch) | |
tree | 9c7487c2e90c37104a75bc312cbd433e30a442b9 /src | |
parent | 0735647191a08b7f50d4e3c7ffe94bd370ebd68b (diff) | |
download | open-axiom-2f2cf5024ab894aa083d87f1e008528d5a5c717b.tar.gz |
* c-util.boot (isAlmostSimple): A `case' expresion with a simple
identified as first operand is a simple-expression.
Diffstat (limited to 'src')
-rw-r--r-- | src/interp/ChangeLog | 5 | ||||
-rw-r--r-- | src/interp/c-util.boot | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index 84afa26c..81b92178 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,3 +1,8 @@ +2007-12-13 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * c-util.boot (isAlmostSimple): A `case' expresion with a simple + identified as first operand is a simple-expression. + 2007-12-12 Gabriel Dos Reis <gdr@cs.tamu.edu> * parse.boot: Register parsers by name, not by pointers. diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index d5b8492e..05a65bb7 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -382,6 +382,7 @@ isAlmostSimple x == op="LET" => IDENTP y => (setAssignment LIST x; y) (setAssignment [["LET",g:= genVariable(),:l],["LET",y,g]]; g) + op = "case" and IDENTP y => x isSideEffectFree op => [op,:mapInto(rest x, function fn)] $assignmentList:= "failed" setAssignment x == |