dg
dg copied to clipboard
`break!` example leads to `dg.SyntaxError`
break!
seems to be broken. Executing the example in the REPL leads to this:
>>> ok = for x in range 10 =>
... if x == 5 => break!
... print x # 0..4
... print ok # False
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/dg/repl.dg", line 99, in runrepl
iterate (x -> x + '\n' + rdl.input sys.ps2) $ rdl.input sys.ps1
File "/usr/local/lib/python3.6/dist-packages/dg/repl.dg", line 98, in ((x,assignment))
map (x -> compilerepl x module.__dict__) $
File "/usr/local/lib/python3.6/dist-packages/dg/repl.dg", line 71, in compilerepl
if done => compileast tree globals, (tree :: Expression and tree.op == '=')
File "<core:5.compiler.dg>", line 36, in compileast
File "<core:5.compiler.dg>", line 308, in pushast
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 914, in prefix
File "<core:5.compiler.dg>", line 326, in pushlast
File "<core:5.compiler.dg>", line 335, in pushnone
File "<core:5.compiler.dg>", line 308, in pushast
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 59, in <lambda>
File "<core:5.compiler.dg>", line 915, in prefix
File "<core:5.compiler.dg>", line 794, in pushpop
File "<core:5.compiler.dg>", line 308, in pushast
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 59, in <lambda>
File "<core:5.compiler.dg>", line 1192, in prefix
File "<core:5.compiler.dg>", line 812, in loop
File "<core:5.compiler.dg>", line 1207, in <lambda>
File "<core:5.compiler.dg>", line 335, in pushnone
File "<core:5.compiler.dg>", line 308, in pushast
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 914, in prefix
File "<core:5.compiler.dg>", line 326, in pushlast
File "<core:5.compiler.dg>", line 335, in pushnone
File "<core:5.compiler.dg>", line 308, in pushast
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 913, in prefix
File "<core:5.compiler.dg>", line 412, in pushcall
File "<core:5.compiler.dg>", line 125, in <lambda>
File "<core:5.compiler.dg>", line 1259, in prefix
File "<core:5.compiler.dg>", line 1262, in jumps
File "<core:5.compiler.dg>", line 311, in pushast
File "<input>", line 2
if x == 5 => break!
^
dg.SyntaxError: pushed 0 items onto the stack
Python version is Python 3.6.9 and I've used the -b
option to create a bundle for that to get rid of the warning I got at startup.