コード例 #1
0
        public override LessNode VisitSupportsAtRule(LessParser.SupportsAtRuleContext context)
        {
            SupportsCondition GetConditionList(LessParser.SupportsConditionListContext list, bool negate)
            {
                var conditions = list?.supportsCondition().Select(GetCondition);

                if (list?.AND().Length > 0)
                {
                    return(new ConjunctionSupportsCondition(negate, conditions));
                }

                if (list?.OR().Length > 0)
                {
                    return(new DisjunctionSupportsCondition(negate, conditions));
                }

                return(null);
            }

            SupportsCondition GetCondition(LessParser.SupportsConditionContext supports)
            {
                var negate = supports.NOT() != null;

                return(GetConditionList(supports.supportsConditionList(), negate)
                       ?? new PropertySupportsCondition(negate, (Rule)supports.property().Accept(this)));
            }

            var condition = GetConditionList(context.supportsDeclaration().supportsConditionList(), false)
                            ?? GetCondition(context.supportsDeclaration().supportsCondition());

            var block = (RuleBlock)context.block().Accept(this);

            return(new SupportsAtRule(condition, block));
        }
コード例 #2
0
 public virtual LessNode VisitSupportsAtRule(LessParser.SupportsAtRuleContext context)
 {
     throw new System.NotImplementedException();
 }