On 2009-05-30 21:02, Greg Ewing wrote: > Robert Kern wrote: > >> The 'single' mode, which is used for the REPL, is a bit different than >> 'exec', which is used for modules. This difference lets you insert >> "blank" lines of whitespace into a function definition without exiting >> the definition. > > All that means is that the REPL needs to keep reading > lines until it gets a completely blank one. I don't > see why the compiler has to treat the source any > differently once the REPL has decided how much text > to feed it. Not true. The REPL will keep reading lines until compile(code,'<string>','single') passes without a SyntaxError. You can put in blank lines when line continuation is implicit, like in the middle of a list. This is the reason that there is a 'single' mode in the first place, to determine when you've stopped typing. It's easier to add the grammar rule that a block does not end with a line of whitespace to the compiler than to implement all of the context-specific special cases for pure empty lines outside of the compiler. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4