blob: 7168cb1b79bcaedab5753cec9c2a38d2c3741dc4 [file] [log] [blame]
/*
* Copyright 2014 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef COBALT_CSS_PARSER_GRAMMAR_H_
#define COBALT_CSS_PARSER_GRAMMAR_H_
// A wrapper around grammar_generated.h, the latter should never be included
// directly.
//
// This file confines violations of a C++ style guide caused by Bison to a
// single place. Bison does not generate header guards nor it allows to specify
// a namespace for generated code. This causes three problems:
//
// - files generated by Bison are not complete and cannot be included in
// the same way as headers that comply with style guide;
//
// - files generated by Bison should be included inside our namespace
// to avoid a polution of a global namespace;
//
// - as a corollary to the previous problem, header files that contain
// namespaces cannot be included from grammar (.y) as this will cause double
// nesting of included classes.
#include "cobalt/css_parser/animation_shorthand_property_parse_structures.h"
#include "cobalt/css_parser/background_shorthand_property_parse_structures.h"
#include "cobalt/css_parser/border_shorthand_property_parse_structures.h"
#include "cobalt/css_parser/font_shorthand_property_parse_structures.h"
#include "cobalt/css_parser/position_parse_structures.h"
#include "cobalt/css_parser/shadow_property_parse_structures.h"
#include "cobalt/css_parser/transition_shorthand_property_parse_structures.h"
#include "cobalt/css_parser/trivial_string_piece.h"
#include "cobalt/css_parser/trivial_type_pairs.h"
#include "cobalt/cssom/color_stop.h"
#include "cobalt/cssom/combinator.h"
#include "cobalt/cssom/complex_selector.h"
#include "cobalt/cssom/compound_selector.h"
#include "cobalt/cssom/css_declared_style_data.h"
#include "cobalt/cssom/css_font_face_rule.h"
#include "cobalt/cssom/css_keyframe_rule.h"
#include "cobalt/cssom/css_keyframes_rule.h"
#include "cobalt/cssom/css_media_rule.h"
#include "cobalt/cssom/css_style_declaration.h"
#include "cobalt/cssom/css_style_rule.h"
#include "cobalt/cssom/css_style_sheet.h"
#include "cobalt/cssom/integer_value.h"
#include "cobalt/cssom/keyword_value.h"
#include "cobalt/cssom/length_value.h"
#include "cobalt/cssom/linear_gradient_value.h"
#include "cobalt/cssom/local_src_value.h"
#include "cobalt/cssom/media_feature.h"
#include "cobalt/cssom/media_feature_keyword_value.h"
#include "cobalt/cssom/media_list.h"
#include "cobalt/cssom/media_query.h"
#include "cobalt/cssom/number_value.h"
#include "cobalt/cssom/percentage_value.h"
#include "cobalt/cssom/property_key_list_value.h"
#include "cobalt/cssom/property_list_value.h"
#include "cobalt/cssom/radial_gradient_value.h"
#include "cobalt/cssom/ratio_value.h"
#include "cobalt/cssom/selector.h"
#include "cobalt/cssom/shadow_value.h"
#include "cobalt/cssom/simple_selector.h"
#include "cobalt/cssom/time_list_value.h"
#include "cobalt/cssom/timing_function_list_value.h"
#include "cobalt/cssom/transform_function.h"
#include "cobalt/cssom/transform_function_list_value.h"
#include "cobalt/cssom/url_src_value.h"
namespace cobalt {
namespace css_parser {
struct MarginOrPaddingShorthand;
class ParserImpl;
struct PropertyDeclaration;
// Override the default source location type from Bison with our own.
struct cobalt_yyltype {
int first_line;
int first_column;
// A pointer to the start of the line the action or token was found on.
const char* line_start;
};
#define YYLTYPE cobalt::css_parser::cobalt_yyltype
#define YYLTYPE_IS_DECLARED 1
#define YYLTYPE_IS_TRIVIAL 0
#if defined(OS_STARBOARD)
#include "starboard/memory.h"
#define YYFREE SbMemoryFree
#define YYMALLOC SbMemoryAllocate
#endif
// A header generated by Bison must be included inside our namespace
// to avoid global namespace pollution.
#include "cobalt/css_parser/grammar_generated.h"
} // namespace css_parser
} // namespace cobalt
#endif // COBALT_CSS_PARSER_GRAMMAR_H_