syntax error, unexpected kOR

N

nonno_lele

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.
 
F

Florian Groß

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

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
 
J

Jano Svitok

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.
 
N

nonno_lele

CUT



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 :)



thank you for the answer.

Cheers,

Em.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,266
Latest member
DavidaAlla

Latest Threads

Top