octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Functions in if (0) ... loops


From: John W. Eaton
Subject: Functions in if (0) ... loops
Date: Tue, 24 Feb 1998 12:44:41 -0600

On 24-Feb-1998, Michal Kaukic <address@hidden> wrote:

| Functions, contained in
| 
|    if (0)
|     ...
|    endif
| 
| blocks in script file get compiled after running that file.

Yes, the code is parsed and converted to Octave's internal syntax tree
representation.

| E.g. let facfun.m be the file:
| 
| ------------
| NOT_FUNCTIONAL_FILE=1;
| 
| if (0)
|    function y=facina(x)
|       y=x.^3;
|    endfunction
|   
|    B=2;
| 
| endif
| ------------
| 
| Running facfun causes the compilation of function facina, but variable B
| is not created. 
| Is this the expected behaviour of Octave?

When the syntax tree is created, the function `facina' is defined and
the symbol `B' is entered into the symbol table.  Octave does not know
yet whether it is a variable or a function.  When the syntax tree is
evaluated, the code inside the `if (0) ... endif' block is skipped, so
it is never assigned.

What behavior did you expect, and why?

jwe



reply via email to

[Prev in Thread] Current Thread [Next in Thread]