// Auto generated on 11th April 2003 // Generator parameters: csharp lexical_grammar // Generator author: Jon Jagger, {JSL} // URL http://www.jaggersoft.com // email jon@jaggersoft.com #ifndef CSHARP_LEXICAL_GRAMMAR_INCLUDED #define CSHARP_LEXICAL_GRAMMAR_INCLUDED #include "csharp/lexical_grammar_visitor.hpp" #include "grammar/base.hpp" #include "grammar/non_terminal_symbol_definition.hpp" #include "grammar/production_symbol_definition.hpp" #include "grammar/predicate_symbol_definition.hpp" namespace csharp { class lexical_grammar // <> : private ::grammar::base // {abstract} { public: // 'tors lexical_grammar(); // compiler generated non-virtual d'tor ok static const lexical_grammar & instance(); public: // associative look-up const ::grammar::non_terminal_symbol_definition * operator[](const char * name) const; public: // non-terminal data members ::grammar::non_terminal_symbol_definition input; ::grammar::non_terminal_symbol_definition input_section; ::grammar::non_terminal_symbol_definition input_section_part; ::grammar::non_terminal_symbol_definition input_elements; ::grammar::non_terminal_symbol_definition input_element; ::grammar::non_terminal_symbol_definition new_line; ::grammar::non_terminal_symbol_definition comment; ::grammar::non_terminal_symbol_definition single_line_comment; ::grammar::non_terminal_symbol_definition input_characters; ::grammar::non_terminal_symbol_definition delimited_comment; ::grammar::non_terminal_symbol_definition delimited_comment_text; ::grammar::non_terminal_symbol_definition delimited_comment_section; ::grammar::non_terminal_symbol_definition whitespace; ::grammar::non_terminal_symbol_definition token; ::grammar::non_terminal_symbol_definition unicode_escape_sequence; ::grammar::non_terminal_symbol_definition identifier; ::grammar::non_terminal_symbol_definition identifier_or_keyword; ::grammar::non_terminal_symbol_definition identifier_start_character; ::grammar::non_terminal_symbol_definition identifier_part_characters; ::grammar::non_terminal_symbol_definition identifier_part_character; ::grammar::non_terminal_symbol_definition keyword; ::grammar::non_terminal_symbol_definition literal; ::grammar::non_terminal_symbol_definition boolean_literal; ::grammar::non_terminal_symbol_definition integer_literal; ::grammar::non_terminal_symbol_definition decimal_integer_literal; ::grammar::non_terminal_symbol_definition decimal_digits; ::grammar::non_terminal_symbol_definition integer_type_suffix; ::grammar::non_terminal_symbol_definition hexadecimal_integer_literal; ::grammar::non_terminal_symbol_definition hex_digits; ::grammar::non_terminal_symbol_definition hex_digit; ::grammar::non_terminal_symbol_definition real_literal; ::grammar::non_terminal_symbol_definition exponent_part; ::grammar::non_terminal_symbol_definition sign; ::grammar::non_terminal_symbol_definition real_type_suffix; ::grammar::non_terminal_symbol_definition character_literal; ::grammar::non_terminal_symbol_definition character; ::grammar::non_terminal_symbol_definition single_character; ::grammar::non_terminal_symbol_definition simple_escape_sequence; ::grammar::non_terminal_symbol_definition hexadecimal_escape_sequence; ::grammar::non_terminal_symbol_definition string_literal; ::grammar::non_terminal_symbol_definition regular_string_literal; ::grammar::non_terminal_symbol_definition regular_string_literal_characters; ::grammar::non_terminal_symbol_definition regular_string_literal_character; ::grammar::non_terminal_symbol_definition single_regular_string_literal_character; ::grammar::non_terminal_symbol_definition verbatim_string_literal; ::grammar::non_terminal_symbol_definition verbatim_string_literal_characters; ::grammar::non_terminal_symbol_definition verbatim_string_literal_character; ::grammar::non_terminal_symbol_definition single_verbatim_string_literal_character; ::grammar::non_terminal_symbol_definition quote_escape_sequence; ::grammar::non_terminal_symbol_definition null_literal; ::grammar::non_terminal_symbol_definition operator_or_punctuator; ::grammar::non_terminal_symbol_definition pp_directive; ::grammar::non_terminal_symbol_definition pp_expression; ::grammar::non_terminal_symbol_definition pp_or_expression; ::grammar::non_terminal_symbol_definition pp_and_expression; ::grammar::non_terminal_symbol_definition pp_equality_expression; ::grammar::non_terminal_symbol_definition pp_unary_expression; ::grammar::non_terminal_symbol_definition pp_primary_expression; ::grammar::non_terminal_symbol_definition pp_declaration; ::grammar::non_terminal_symbol_definition pp_new_line; ::grammar::non_terminal_symbol_definition pp_conditional; ::grammar::non_terminal_symbol_definition pp_if_section; ::grammar::non_terminal_symbol_definition pp_elif_sections; ::grammar::non_terminal_symbol_definition pp_elif_section; ::grammar::non_terminal_symbol_definition pp_else_section; ::grammar::non_terminal_symbol_definition pp_endif; ::grammar::non_terminal_symbol_definition skipped_section; ::grammar::non_terminal_symbol_definition skipped_section_part; ::grammar::non_terminal_symbol_definition skipped_characters; ::grammar::non_terminal_symbol_definition pp_diagnostic; ::grammar::non_terminal_symbol_definition pp_message; ::grammar::non_terminal_symbol_definition pp_region; ::grammar::non_terminal_symbol_definition pp_start_region; ::grammar::non_terminal_symbol_definition pp_end_region; ::grammar::non_terminal_symbol_definition pp_line; ::grammar::non_terminal_symbol_definition line_indicator; ::grammar::non_terminal_symbol_definition file_name; ::grammar::non_terminal_symbol_definition file_name_characters; public: // predicate-non-terminal data members ::grammar::predicate_symbol_definition available_identifier; ::grammar::predicate_symbol_definition letter_character; ::grammar::predicate_symbol_definition decimal_digit_character; ::grammar::predicate_symbol_definition connecting_character; ::grammar::predicate_symbol_definition combining_character; ::grammar::predicate_symbol_definition formatting_character; ::grammar::predicate_symbol_definition conditional_symbol; ::grammar::predicate_symbol_definition conditional_section; private: // configuration void Configure_input(); void Configure_input_section(); void Configure_input_section_part(); void Configure_input_elements(); void Configure_input_element(); void Configure_new_line(); void Configure_comment(); void Configure_single_line_comment(); void Configure_input_characters(); void Configure_delimited_comment(); void Configure_delimited_comment_text(); void Configure_delimited_comment_section(); void Configure_whitespace(); void Configure_token(); void Configure_unicode_escape_sequence(); void Configure_identifier(); void Configure_identifier_or_keyword(); void Configure_identifier_start_character(); void Configure_identifier_part_characters(); void Configure_identifier_part_character(); void Configure_keyword(); void Configure_literal(); void Configure_boolean_literal(); void Configure_integer_literal(); void Configure_decimal_integer_literal(); void Configure_decimal_digits(); void Configure_integer_type_suffix(); void Configure_hexadecimal_integer_literal(); void Configure_hex_digits(); void Configure_hex_digit(); void Configure_real_literal(); void Configure_exponent_part(); void Configure_sign(); void Configure_real_type_suffix(); void Configure_character_literal(); void Configure_character(); void Configure_single_character(); void Configure_simple_escape_sequence(); void Configure_hexadecimal_escape_sequence(); void Configure_string_literal(); void Configure_regular_string_literal(); void Configure_regular_string_literal_characters(); void Configure_regular_string_literal_character(); void Configure_single_regular_string_literal_character(); void Configure_verbatim_string_literal(); void Configure_verbatim_string_literal_characters(); void Configure_verbatim_string_literal_character(); void Configure_single_verbatim_string_literal_character(); void Configure_quote_escape_sequence(); void Configure_null_literal(); void Configure_operator_or_punctuator(); void Configure_pp_directive(); void Configure_pp_expression(); void Configure_pp_or_expression(); void Configure_pp_and_expression(); void Configure_pp_equality_expression(); void Configure_pp_unary_expression(); void Configure_pp_primary_expression(); void Configure_pp_declaration(); void Configure_pp_new_line(); void Configure_pp_conditional(); void Configure_pp_if_section(); void Configure_pp_elif_sections(); void Configure_pp_elif_section(); void Configure_pp_else_section(); void Configure_pp_endif(); void Configure_skipped_section(); void Configure_skipped_section_part(); void Configure_skipped_characters(); void Configure_pp_diagnostic(); void Configure_pp_message(); void Configure_pp_region(); void Configure_pp_start_region(); void Configure_pp_end_region(); void Configure_pp_line(); void Configure_line_indicator(); void Configure_file_name(); void Configure_file_name_characters(); private: // inappropriate lexical_grammar(const lexical_grammar &); void operator=(const lexical_grammar &); }; } #endif