Thomas Jollans wrote: > On Tuesday 14 August 2007, stef mientki wrote: > >> hello, >> >> I've the idea that the "else" syntax is not always handled correctly, >> or I'm overlooking something. >> >> This pieces of code are automatic translation from another language, >> sometimes it works, sometimes it doesn't ??? >> >> This piece of code works nice: >> >> a = 2 >> >> def JSM (line_nr): >> print line_nr >> >> if a>3: >> print 'asddas' >> else: JSM(230) ; \ <== this is the problem line, that's ok here >> print 'aaps' >> >> While this piece of code gives a syntax error: >> >> #Function button_antidender(bit in pin,sbyte in out >> Button_Counter_Temp,byte in demp) return bit is >> def button_antidender ( pin, button_counter_temp, demp ): >> #serial_hw_write(counter) >> Serial_HW_Write ( button_counter_temp ) ;JSM(226) >> if JSM(227) and ( button_counter_temp >= 0 ): >> if JSM(228) and ( pin == on ): >> button_counter_temp = button_counter_temp + 1 >> ;JSM(229) >> else: JSM(230) ; >> \ <=== SYNTAX ERROR >> > > is there a newline before the backslash ? Or a space after the backslash but > before the newline ? > > I investigated this some further in a hex editor, and indeed sometimes there's a space, ok that's my stupid mistake.
But I found a situation that also in the very simple example always gives a syntax error a = 2 b = 5 def JSM (line_nr): print line_nr if a>3: print 'asddas' else: JSM(230) ; \ if b>3: <== SYNTAX ERROR pointing to the "f" of if print 'bbbbb' else: print 'ccccc' print 'aaps' And I don't see the syntax error. And if you're interested in the hex file data: 65 6C 73 65 3A 20 4A 53 4D 28 32 33 30 29 20 3B 20 5C 0D 0A btw, I now split the else line over more than 1 line, and everything is perfect. thanks, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list