Oh, boy. I erroneously thought that operator= used the copy constructor by default...
treef428b0253738f64862e364e42244e0c75e6261d8
drwxr-xr-x - fridh
drwxr-xr-x - interpreter
drwxr-xr-x - lexer
-rw-r--r-- 1760 main.cpp
drwxr-xr-x - parser
drwxr-xr-x - shared
drwxr-xr-x - variable