Add more AST rules and tests