4

オクターブ3.6.2の次の行の構文エラーが発生します。

if(exist('OCTAVE_VERSION')~=0) more off; end

その間:

if(exist('OCTAVE_VERSION')~=0)
 more off;
end

大丈夫そうです。まだ:

if(exist('OCTAVE_VERSION')~=0) fflush(stdout); end

うまく動作します。

これは、括弧で囲まれていないmoreの引数に関連するバグ(?)ですか?

ありがとう

4

1 に答える 1

3

I also got the same results in Octave 3.4.3:

Seems to be a harmless compiler bug in octave, when you use the command 'more off' or 'more on' inside a 1 line if statement, a syntax error is thrown.

If you add a newline after the the conditional, or if you surround "more off" inside an eval(...), then it works correctly.

%works correctly, turns off paging screen output
if(1)
  more off;
end

%works correctly, prints 3.4.3
if(1) disp(OCTAVE_VERSION);  end

%works correctly, prints '1'
if(1) disp([1]); more off;  end

%syntax error when parsing "off" in 'more off'.
if(1) more off; endif

%syntax error on parsing 'off' in 'more off;'
if 1 more off;  endif

%works correctly, turns off paging screen output
if (1) eval("more off"); endif

The syntax error thrown is: "error: parse error while reading script file".

于 2012-07-09T17:02:32.820 に答える