ast.py: preliminary version