Rule Scope() {
        return Sequence(
                push(new ScopeNode()),
                ZeroOrMore(
                        FirstOf(
                                Declaration(),
                                MediaQuery(),
                                RuleSet(),
                                MixinReference(),
                                Sequence(push(new WhiteSpaceCollectionNode()), Sp1Nodes())
                        ),
                        peek(1).addChild(pop())
                )
        );
    }
Rule Scope ( ) { return Sequence ( push ( new ScopeNode ( ) ) , ZeroOrMore ( FirstOf ( Declaration ( ) , MediaQuery ( ) , RuleSet ( ) , MixinReference ( ) , Sequence ( push ( new WhiteSpaceCollectionNode ( ) ) , Sp1Nodes ( ) ) ) , peek ( 1 ) . addChild ( pop ( ) ) ) ) ; }
This is the high-level rule at some scope (either the root document or within a rule set / mixin).
Future: Imports