{
    "basic": {
        "source": ".test{@test;}",
        "ast": {
            "type": "Rule",
            "prelude": {
                "type": "SelectorList",
                "children": [
                    {
                        "type": "Selector",
                        "children": [
                            {
                                "type": "ClassSelector",
                                "name": "test"
                            }
                        ]
                    }
                ]
            },
            "block": {
                "type": "Block",
                "children": [
                    {
                        "type": "Atrule",
                        "name": "test",
                        "prelude": null,
                        "block": null
                    }
                ]
            }
        }
    },
    "with prelude": {
        "source": ".test{@test not(something);}",
        "ast": {
            "type": "Rule",
            "prelude": {
                "type": "SelectorList",
                "children": [
                    {
                        "type": "Selector",
                        "children": [
                            {
                                "type": "ClassSelector",
                                "name": "test"
                            }
                        ]
                    }
                ]
            },
            "block": {
                "type": "Block",
                "children": [
                    {
                        "type": "Atrule",
                        "name": "test",
                        "prelude": {
                            "type": "AtrulePrelude",
                            "children": [
                                {
                                    "type": "Function",
                                    "name": "not",
                                    "children": [
                                        {
                                            "type": "Identifier",
                                            "name": "something"
                                        }
                                    ]
                                }
                            ]
                        },
                        "block": null
                    }
                ]
            }
        }
    },
    "with block": {
        "source": ".test{@test foo{a:1}}",
        "ast": {
            "type": "Rule",
            "prelude": {
                "type": "SelectorList",
                "children": [
                    {
                        "type": "Selector",
                        "children": [
                            {
                                "type": "ClassSelector",
                                "name": "test"
                            }
                        ]
                    }
                ]
            },
            "block": {
                "type": "Block",
                "children": [
                    {
                        "type": "Atrule",
                        "name": "test",
                        "prelude": {
                            "type": "AtrulePrelude",
                            "children": [
                                {
                                    "type": "Identifier",
                                    "name": "foo"
                                }
                            ]
                        },
                        "block": {
                            "type": "Block",
                            "children": [
                                {
                                    "type": "Declaration",
                                    "important": false,
                                    "property": "a",
                                    "value": {
                                        "type": "Value",
                                        "children": [
                                            {
                                                "type": "Number",
                                                "value": "1"
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        }
    },
    "recursion": {
        "source": ".test{@test foo{@test foo{}}}",
        "ast": {
            "type": "Rule",
            "prelude": {
                "type": "SelectorList",
                "children": [
                    {
                        "type": "Selector",
                        "children": [
                            {
                                "type": "ClassSelector",
                                "name": "test"
                            }
                        ]
                    }
                ]
            },
            "block": {
                "type": "Block",
                "children": [
                    {
                        "type": "Atrule",
                        "name": "test",
                        "prelude": {
                            "type": "AtrulePrelude",
                            "children": [
                                {
                                    "type": "Identifier",
                                    "name": "foo"
                                }
                            ]
                        },
                        "block": {
                            "type": "Block",
                            "children": [
                                {
                                    "type": "Atrule",
                                    "name": "test",
                                    "prelude": {
                                        "type": "AtrulePrelude",
                                        "children": [
                                            {
                                                "type": "Identifier",
                                                "name": "foo"
                                            }
                                        ]
                                    },
                                    "block": {
                                        "type": "Block",
                                        "children": []
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        }
    }
}
