diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/interp/i-analy.boot | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index cc5e60bc..9a81c214 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-05-18 Gabriel Dos Reis <gdr@cse.tamu.edu> + + * interp/i-analy.boot (bottomUpDefaultEval): A declared variable + with no definition may be a symbolic variable with a specified type. + 2009-05-18 Gabriel Dos Reis <gdr@cs.tamu.edu> * algebra/curve.spad.pamphlet: Use literal symbols. diff --git a/src/interp/i-analy.boot b/src/interp/i-analy.boot index 35c0ae0f..22dd4389 100644 --- a/src/interp/i-analy.boot +++ b/src/interp/i-analy.boot @@ -1,6 +1,6 @@ -- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd. -- All rights reserved. --- Copyright (C) 2007-2008, Gabriel Dos Reis. +-- Copyright (C) 2007-2009, Gabriel Dos Reis. -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without @@ -429,6 +429,14 @@ bottomUpDefaultEval(t,id,defaultMode,target,isSub) == (val := coerceInteractive(objNewWrap(id,['Variable,id]),m)) => putValue(t,val) [m] + + -- Hmm, assume it is a symbolic variable with a user-supplied type. + m' := ["Expression",m] + val := coerceInteractive(objNewWrap(id,$Symbol),m') => + putValue(t,val) + putMode(t, m') + [m'] + -- give up throwKeyedMsg('"S2IB0004",[id,m]) |