⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variables.h

📁 Full support for extended regular expressions (those with intersection and complement); Support for
💻 H
字号:

#ifndef __DOLPHIN__VARIABLES_H

#define __DOLPHIN__VARIABLES_H

#include "variable.h"

struct Variables
{
	std::map<const char *, variable_base *, NullTerminatedStringCompare> database;
	
	variable<bool> my_new_variable;
	variable<char *> another_variable;
	
	bool unicode;
	int alphabet_cardinality;
	char *internal_char_type; // "char", "wchar_t" or some user type.
	char *internal_string_type; // "std::string", "std::wstring", "std::basic_string<...>" or some user type.
	
	bool start_conditions_enabled;
	bool compress_action_vectors;
	bool generate_verbose_prints;
	bool generate_sanity_checks;
	bool eat_one_character_upon_lexical_error;
	bool store_lexeme_in_string;
	bool append_data_member;
	bool case_insensitive;
	bool line_directives;
	bool allow_inclusion_cycle_between_whale_and_dolphin;
	
	bool compress_tables;
	int table_compression_exception_width;
	
	enum OutputLanguage { LANGUAGE_CPP, LANGUAGE_VINTAGE_CPP };
	OutputLanguage output_language;
	
	char *dolphin_class_name;
	
	bool using_whale;
	bool whale_emulation_mode;
	char *whale_namespace;
	char *whale_file;
	
	int dump_nfa_to_file;
	int dump_dfa_to_file;
	bool dump_nfas_for_expressions;
	bool dump_nfas_for_start_conditions;
	bool dump_dfas_for_start_conditions;
	int dump_minimized_dfa_to_file;
	
	char *analyzer_state_type;
	char *get_token_function_return_value;
	char *get_token_function_parameters;
	char *input_stream_class;
	char *input_character_class;
	
	char *how_to_get_actual_character;
	char *how_to_check_eof;
	char *how_to_check_stream_error;
	char *how_to_get_character_from_stream;
	char *how_to_return_token;
	
	char *code_in_h_before_all;
	char *code_in_h;
	char *code_in_h_after_all;
	char *code_in_cpp_before_all;
	char *code_in_cpp;
	char *code_in_cpp_after_all;
	char *code_in_class_before_all;
	char *code_in_class;
	char *code_in_class_after_all;
	char *code_in_constructor;
	
	Variables();
	bool check_database_integrity();
	
	// these variables cannot be directly accessed by assignment statements.
	
	bool generate_fixed_length_lookahead_support;
	bool generate_arbitrary_lookahead_support;
	bool generate_eof_lookahead_support;
	
	bool generate_table_of_actions;
	bool input_stream_is_FILE_asterisk;
	
	bool using_layer2; // should make it accessible
	bool access_transitions_through_a_method;
	
	bool internal_char_type_is_char;
	bool internal_char_type_is_wchar_t;
};

bool variable_exists(char *s);
bool assign_values_to_variables_stage_zero();
bool assign_values_to_variables_stage_one();
bool assign_values_to_variables_stage_two();

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -