WhileStmt and ForStmt ought to be Statements, not generic AstNodes.
WhileStmt and ForStmt should be saving their positions.
Implement variable and constant declaration statements.