public override bool Parse(IItemFactory itemFactory, ITextProvider text, ITokenStream stream) { if (AtRule.IsRule(text, stream, "mixin")) { Rule = AtRule.CreateParsed(itemFactory, text, stream); if (Rule != null) Children.Add(Rule); Name = MixinName.CreateParsed(itemFactory, text, stream, SassClassifierType.MixinDefinition); if (Name != null) Children.Add(Name); if (stream.Current.Type == TokenType.OpenFunctionBrace) OpenBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); while (!IsArgumentTerminator(stream.Current.Type)) { var argument = itemFactory.CreateSpecific<FunctionArgumentDefinition>(this, text, stream); if (argument == null || !argument.Parse(itemFactory, text, stream)) break; _Arguments.Add(argument); Children.Add(argument); } if (stream.Current.Type == TokenType.CloseFunctionBrace) CloseBrace = Children.AddCurrentAndAdvance(stream, SassClassifierType.FunctionBrace); var body = new MixinDefinitionBody(); if (body.Parse(itemFactory, text, stream)) { Body = body; Children.Add(body); } } return Children.Count > 0; }