Syntax error, unexpected kOR

Hello there,

I'm newbie with ruby and to be onest I'm quite surprised about a
strange behaviour I found:

How the interpreter works with this lines looks odd to me:

def dummy?
(true or false )
end

This one has no problem... and also this one:

def dummy?
(true or
false )
end

But what happen when you split the boolean condition into 2 different
lines and u put the OR in the 2nd line??

def dummy?()
(true
or false )
end

U get *"syntax error, unexpected kOR, expecting ')' "*

I agree that the interpreter is not able to undestand this one:

def dummy?()
true
or false
end

because of the missing () and return... but using the ( ) it should
work.

At least using Return and ( ) should work..

def dummy?()
return (true
or false )
end

But it is not.

Where is my fault? Looks strange to me that an high level language
forces you to think about in which position you've to put the OR.

Is there a way to force the interpreter to evaluate the block inside
the () before anything else?

Thanks in advance ,

Regards,

Em.

PS: ive found an old discussion about the same error but I'm not sure
this answer my question:
http://tinyurl.com/2852ns

PS2: using || instead of OR gives the same result.

cheers.

Currently, it is the same as (true; or false).

This works:

puts((puts 'foo'; puts 'bar'; 'qux'))
# >> foo
# >> bar
# >> qux

And so does this:

puts((
  puts 'foo'
  puts 'bar'
  'qux'))
# >> foo
# >> bar
# >> qux

Kind regards,
Florian Gross

···

On Mar 26, 4:52 pm, "nonno_lele" <emanuel...@gmail.com> wrote:

I'm newbie with ruby and to be onest I'm quite surprised about a
strange behaviour I found: [...]

def dummy?()
(true
or false )
end

Hello there,

I'm newbie with ruby and to be onest I'm quite surprised about a
strange behaviour I found:

How the interpreter works with this lines looks odd to me:

def dummy?
(true or false )
end

This one has no problem... and also this one:

def dummy?
(true or
false )
end

But what happen when you split the boolean condition into 2 different
lines and u put the OR in the 2nd line??

def dummy?()
(true
or false )
end

U get *"syntax error, unexpected kOR, expecting ')' "*

I agree that the interpreter is not able to undestand this one:

def dummy?()
true
or false
end

because of the missing () and return... but using the ( ) it should
work.

At least using Return and ( ) should work..

def dummy?()
return (true
or false )
end

But it is not.

Where is my fault? Looks strange to me that an high level language
forces you to think about in which position you've to put the OR.

The problem is that interpreter needs to know somehow that the line
should continue.
Putting 'or' or '||' at the end of the line tells it that. Other way
is to use \ as the last character on the line.

Is there a way to force the interpreter to evaluate the block inside
the () before anything else?

Thanks in advance ,

Regards,

Em.

PS: ive found an old discussion about the same error but I'm not sure
this answer my question:
http://tinyurl.com/2852ns

this is another problem.

···

On 3/26/07, nonno_lele <emanueledf@gmail.com> wrote:

PS2: using || instead of OR gives the same result.

cheers.

CUT

> At least using Return and ( ) should work..

> def dummy?()
> return (true
> or false )
> end

> But it is not.
> Where is my fault? Looks strange to me that an high level language
> forces you to think about in which position you've to put the OR.

The problem is that interpreter needs to know somehow that the line
should continue.
Putting 'or' or '||' at the end of the line tells it that. Other way
is to use \ as the last character on the line.

Err.. in a ideal world the interpreter should understand it cause it
finds and open "(" without the closure..

obviusly IMHO :slight_smile:

thank you for the answer.

Cheers,

Em.

···

On 26 Mar, 17:05, "Jano Svitok" <jan.svi...@gmail.com> wrote:

On 3/26/07, nonno_lele <emanuel...@gmail.com> wrote: