chromium/third_party/blink/renderer/core/css/parser/container_query_parser.cc

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "third_party/blink/renderer/core/css/parser/container_query_parser.h"
#include "third_party/blink/renderer/core/css/css_identifier_value.h"
#include "third_party/blink/renderer/core/css/css_primitive_value_mappings.h"
#include "third_party/blink/renderer/core/css/css_value_list.h"
#include "third_party/blink/renderer/core/css/parser/css_parser_context.h"
#include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
#include "third_party/blink/renderer/core/css/parser/css_property_parser.h"
#include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
#include "third_party/blink/renderer/core/css/parser/css_variable_parser.h"
#include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
#include "third_party/blink/renderer/core/css/resolver/style_builder_converter.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"

namespace blink {

AtIdent;
ConsumeIfIdent;

namespace {

// not <func> | <func> [ and <func> ]* | <func> [ or <func> ]*
//
// For example, if <func> is a function that can parse <container-query>,
// then ConsumeNotAndOr can be used to parse <container-condition>:
//
// https://drafts.csswg.org/css-contain-3/#typedef-container-condition
template <typename Func>
const MediaQueryExpNode* ConsumeNotAndOr(Func func,
                                         CSSParserTokenRange& range) {}

class SizeFeatureSet : public MediaQueryParser::FeatureSet {};

class StyleFeatureSet : public MediaQueryParser::FeatureSet {};

class StateFeatureSet : public MediaQueryParser::FeatureSet {};

}  // namespace

ContainerQueryParser::ContainerQueryParser(const CSSParserContext& context)
    :{}

const MediaQueryExpNode* ContainerQueryParser::ParseCondition(String value) {}

const MediaQueryExpNode* ContainerQueryParser::ParseCondition(
    CSSParserTokenRange range,
    const CSSParserTokenOffsets& offsets) {}

// <query-in-parens> = ( <container-condition> )
//                   | ( <size-feature> )
//                   | style( <style-query> )
//                   | <general-enclosed>
const MediaQueryExpNode* ContainerQueryParser::ConsumeQueryInParens(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets) {}

const MediaQueryExpNode* ContainerQueryParser::ConsumeContainerCondition(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets) {}

const MediaQueryExpNode* ContainerQueryParser::ConsumeFeatureQuery(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets,
    const FeatureSet& feature_set) {}

const MediaQueryExpNode* ContainerQueryParser::ConsumeFeatureQueryInParens(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets,
    const FeatureSet& feature_set) {}

const MediaQueryExpNode* ContainerQueryParser::ConsumeFeatureCondition(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets,
    const FeatureSet& feature_set) {}

const MediaQueryExpNode* ContainerQueryParser::ConsumeFeature(
    CSSParserTokenRange& range,
    const CSSParserTokenOffsets& offsets,
    const FeatureSet& feature_set) {}

}  // namespace blink