import{LeftCurlyBracket as t}from"../../tokenizer/types.mjs";import"../../tokenizer/char-code-definitions.mjs";import"../../tokenizer/TokenStream.mjs";function e(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function o(){const e=this.SelectorList();return"Raw"!==e.type&&!1===this.eof&&this.tokenType!==t&&this.error(),e}const i="Rule",r="rule",n={prelude:["SelectorList","Raw"],block:["Block"]};function s(){const t=this.tokenIndex,i=this.tokenStart;let r,n;return r=this.parseRulePrelude?this.parseWithFallback(o,e):e.call(this,t),n=this.Block(!0),{type:"Rule",loc:this.getLocation(i,this.tokenStart),prelude:r,block:n}}function l(t){this.node(t.prelude),this.node(t.block)}export{l as generate,i as name,s as parse,n as structure,r as walkContext};