#include <assert.h>
+#include <algorithm>
+#include <limits>
#include <queue>
#include <set>
-#include <vector>
#include <utility>
+#include <vector>
-#include "src/code/go.h"
#include "src/adfa/adfa.h"
+#include "src/code/go.h"
#include "src/dfa/dfa.h"
-#include "src/skeleton/skeleton.h"
#include "src/util/allocate.h"
namespace re2c
#include <set>
#include <string>
#include <valarray>
+#include <vector>
+#include "src/adfa/action.h"
#include "src/code/bitmap.h"
#include "src/code/go.h"
#include "src/code/label.h"
-#include "src/adfa/action.h"
+#include "src/dfa/tcmd.h"
#include "src/re/rule.h"
#include "src/re/tag.h"
#include "src/util/forbid_copy.h"
namespace re2c
{
-struct Output;
+struct opt_t;
class OutputFile;
+struct Output;
struct dfa_t;
struct State
+#include "src/util/c99_stdint.h"
#include <stdio.h>
+#include <string>
+#include <utility>
+#include <valarray>
+#include <vector>
-#include "src/dfa/dump.h"
+#include "src/adfa/action.h"
+#include "src/adfa/adfa.h"
#include "src/adfa/dump.h"
+#include "src/code/go.h"
+#include "src/dfa/dump.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
namespace re2c
{
namespace re2c
{
+struct DFA;
+
void dump_adfa(const DFA &dfa);
} // namespace re2c
+#include <assert.h>
#include "src/util/c99_stdint.h"
#include <string.h>
-#include <map>
+#include <algorithm>
+#include <utility>
+#include <valarray>
+#include <vector>
+#include "src/adfa/action.h"
+#include "src/adfa/adfa.h"
#include "src/code/bitmap.h"
#include "src/code/go.h"
#include "src/conf/msg.h"
-#include "src/adfa/action.h"
-#include "src/adfa/adfa.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/rule.h"
#include "src/util/allocate.h"
namespace re2c {
#include <limits>
#include "src/ast/ast.h"
+#include "src/util/free_list.h"
namespace re2c
{
namespace re2c
{
+struct Code;
+template <class _Ty> class free_list;
+
struct ASTChar
{
uint32_t chr;
+#include <string>
+#include <vector>
+
#include "src/ast/ast.h"
+#include "src/re/rule.h"
namespace re2c {
#include <set>
#include <string>
-#include "src/conf/msg.h"
#include "src/ast/ast.h"
-#include "src/conf/opt.h"
#include "src/ast/scanner.h"
+#include "src/conf/msg.h"
+#include "src/conf/opt.h"
namespace re2c
{
+class Scanner;
+struct Opt;
+
typedef std::set<std::string> CondList;
struct context_t
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
-#include <new>
-#include "src/conf/msg.h"
-#include "src/code/label.h"
-#include "src/code/output.h"
#include "src/ast/scanner.h"
-#include "src/util/counter.h"
+#include "src/conf/msg.h"
// used by Scanner::fatal_at and Scanner::fatalf
#if defined(_MSC_VER) && !defined(vsnprintf)
namespace re2c {
+class Warn;
+
const uint32_t Scanner::BSIZE = 8192;
ScannerState::ScannerState ()
#ifndef _RE2C_AST_SCANNER_
#define _RE2C_AST_SCANNER_
-#include "src/util/c99_stdint.h"
#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <sys/types.h>
#include <string>
+#include "src/ast/input.h"
#include "src/conf/opt.h"
#include "src/conf/warn.h"
-#include "src/ast/input.h"
+#include "src/re/encoding/enc.h"
#include "src/util/attribute.h"
#include "src/util/forbid_copy.h"
namespace re2c
{
+class Warn;
+struct Opt;
+struct conopt_t;
+class OutputFile;
class Range;
struct AST;
-class OutputFile;
struct ScannerState
{
-#include "src/conf/msg.h"
+#include "src/util/c99_stdint.h"
+#include <string>
+#include <vector>
+
#include "src/ast/ast.h"
+#include "src/ast/scanner.h"
+#include "src/conf/msg.h"
+#include "src/re/rule.h"
namespace re2c {
-#include <algorithm> // min
#include <string.h> // memset
+#include <algorithm> // min
#include "src/code/bitmap.h"
#include "src/code/go.h"
#include "src/code/output.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
namespace re2c
{
namespace re2c {
+class OutputFile;
struct Go;
struct Span;
struct State;
-class OutputFile;
struct bitmap_t
{
-#include "src/util/c99_stdint.h"
+#include <assert.h>
#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <iosfwd>
#include <set>
#include <string>
+#include <utility>
+#include <valarray>
+#include <vector>
+#include "src/adfa/action.h"
+#include "src/adfa/adfa.h"
#include "src/code/emit.h"
+#include "src/code/go.h"
#include "src/code/input_api.h"
+#include "src/code/label.h"
#include "src/code/output.h"
-#include "src/adfa/action.h"
-#include "src/adfa/adfa.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
#include "src/skeleton/skeleton.h"
#include "src/util/string_utils.h"
namespace re2c
{
-class label_t;
-
static void need (OutputFile &o, uint32_t ind, size_t some);
static void emit_accept_binary (OutputFile &o, uint32_t ind, const DFA &dfa, const accept_t &acc, size_t l, size_t r);
static void emit_accept (OutputFile &o, uint32_t ind, const DFA &dfa, const accept_t &acc);
-#include "src/util/c99_stdint.h"
#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <ostream>
#include <set>
#include <string>
#include <utility>
+#include <valarray>
#include <vector>
+#include "src/adfa/action.h"
+#include "src/adfa/adfa.h"
#include "src/code/bitmap.h"
#include "src/code/emit.h"
#include "src/code/go.h"
#include "src/code/input_api.h"
#include "src/code/label.h"
#include "src/code/output.h"
-#include "src/adfa/action.h"
-#include "src/adfa/adfa.h"
+#include "src/conf/opt.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
#include "src/skeleton/skeleton.h"
#include "src/util/counter.h"
#include "src/util/string_utils.h"
#include <utility>
#include <vector>
+#include "src/adfa/action.h"
+#include "src/adfa/adfa.h"
#include "src/code/bitmap.h"
#include "src/code/go.h"
-#include "src/adfa/adfa.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
#include "src/util/allocate.h"
namespace re2c
#include "src/util/c99_stdint.h"
-#include <utility>
-#include <vector>
#include "src/code/go.h"
#include <utility>
#include <vector>
+#include "src/adfa/adfa.h"
#include "src/code/bitmap.h"
-#include "src/code/go.h"
#include "src/code/emit.h"
-#include "src/code/input_api.h"
+#include "src/code/go.h"
#include "src/code/label.h"
#include "src/code/output.h"
#include "src/code/print.h"
-#include "src/adfa/adfa.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
#include "src/re/encoding/enc.h"
namespace re2c
#include <stddef.h>
#include "src/util/c99_stdint.h"
#include <set>
-#include <utility>
-#include <vector>
-#include "src/code/go.h"
-#include "src/code/label.h"
#include "src/adfa/adfa.h"
+#include "src/code/go.h"
namespace re2c
{
+class label_t;
+
void Cases::used_labels (std::set<label_t> & used) const
{
for (uint32_t i = 0; i < cases_size; ++i)
#include "src/code/emit.h"
#include "src/code/input_api.h"
+#include "src/conf/opt.h"
namespace re2c
{
#ifndef _RE2C_CODE_INPUT_API_
#define _RE2C_CODE_INPUT_API_
+#include <stddef.h>
#include "src/util/c99_stdint.h"
+#include <iosfwd>
#include <string>
namespace re2c
#ifndef _RE2C_CODE_LABEL_
#define _RE2C_CODE_LABEL_
-#include <iosfwd> // ostream
-
#include "src/util/c99_stdint.h"
+#include <iosfwd> // ostream
namespace re2c {
#include <time.h>
#include <iomanip>
+#include "config.h"
#include "src/code/emit.h"
+#include "src/code/input_api.h"
#include "src/code/output.h"
#include "src/code/print.h"
#include "src/conf/msg.h"
+#include "src/conf/opt.h"
+#include "src/conf/warn.h"
+#include "src/re/encoding/enc.h"
#include "src/util/string_utils.h"
+#include "src/util/uniq_vector.h"
namespace re2c
{
#ifndef _RE2C_CODE_OUTPUT_
#define _RE2C_CODE_OUTPUT_
-#include "src/util/c99_stdint.h"
#include <stddef.h>
+#include "src/util/c99_stdint.h"
#include <stdio.h>
#include <fstream>
#include <set>
namespace re2c
{
+class Warn;
+struct Opt;
+struct opt_t;
+template <typename value_t> class uniq_vector_t;
+
struct ConfTags
{
std::string format;
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
#include <algorithm>
#include <ostream>
-#include <set>
+#include <string>
+#include <vector>
-#include "src/code/output.h"
-#include "src/conf/msg.h"
-#include "src/compile.h"
#include "src/adfa/adfa.h"
#include "src/adfa/dump.h"
+#include "src/ast/ast.h"
#include "src/ast/parser.h"
+#include "src/ast/scanner.h"
+#include "src/code/label.h"
+#include "src/code/output.h"
+#include "src/compile.h"
+#include "src/conf/opt.h"
#include "src/dfa/dfa.h"
#include "src/dfa/dump.h"
#include "src/nfa/nfa.h"
#include "src/re/encoding/range_suffix.h"
+#include "src/re/re.h"
+#include "src/re/rule.h"
#include "src/skeleton/skeleton.h"
-#include "src/ast/ast.h"
+#include "src/util/counter.h"
+#include "src/util/free_list.h"
+#include "src/util/range.h"
#include "src/util/smart_ptr.h"
namespace re2c {
+class Warn;
+
static std::string make_name(const std::string &cond, uint32_t line)
{
std::ostringstream os;
namespace re2c
{
+class Scanner;
+struct Opt;
+struct Output;
+
void compile(Scanner &input, Output &output, Opt &opts);
} // namespace re2c
#ifndef _RE2C_CONF_MSG_
#define _RE2C_CONF_MSG_
+#include "src/util/c99_stdint.h"
#include <string>
#include "src/util/attribute.h"
-#include "src/util/c99_stdint.h"
namespace re2c {
#ifndef _RE2C_CONF_OPT_
#define _RE2C_CONF_OPT_
-#include "src/util/c99_stdint.h"
#include <stddef.h>
+#include "src/util/c99_stdint.h"
#include <string>
#include "src/code/input_api.h"
namespace re2c
{
+class Warn;
+
enum target_t
{
TARGET_CODE,
#include <stddef.h>
#include <stdio.h>
#include <algorithm>
-#include <utility>
+#include <set>
#include "src/conf/msg.h"
#include "src/conf/warn.h"
#include "src/skeleton/path.h"
+#include "src/re/rule.h"
#include "src/skeleton/skeleton.h"
namespace re2c {
#ifndef _RE2C_CONF_WARN_
#define _RE2C_CONF_WARN_
+#include <stddef.h>
#include "src/util/c99_stdint.h"
#include <string>
#include <vector>
namespace re2c {
class path_t;
+struct Rule;
struct Skeleton;
#define RE2C_WARNING_TYPES \
#include <string.h>
+#include <algorithm>
+#include <new>
+#include <valarray>
+#include <vector>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
#include "src/util/allocate.h"
namespace re2c
{
+struct Rule;
+struct tcmd_t;
+
static void map_arcs_to_bblocks(const dfa_t &dfa, cfg_ix_t *arc2bb, cfg_ix_t &nbbarc, cfg_ix_t &nbbfin, cfg_ix_t &nbbfall);
static cfg_bb_t *create_bblocks(dfa_t &dfa, const cfg_ix_t *arc2bb, cfg_ix_t nbbfin, cfg_ix_t nbbfall);
static void successors(const dfa_t &dfa, const cfg_ix_t *arc2bb, bool *been, cfg_ix_t *&succ, size_t x);
#ifndef _RE2C_DFA_CFG_CFG_
#define _RE2C_DFA_CFG_CFG_
-#include "src/util/forbid_copy.h"
+#include "src/util/c99_stdint.h"
+
#include "src/dfa/dfa.h"
+#include "src/re/tag.h"
+#include "src/util/forbid_copy.h"
namespace re2c {
+struct Rule;
+struct dfa_t;
+struct tcmd_t;
+
typedef uint32_t cfg_ix_t;
// basic block
+#include <stddef.h>
+#include <algorithm>
+#include <vector>
+
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
#include <stdio.h>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <stddef.h>
+#include <vector>
+
#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
namespace re2c
{
#include <string.h>
+#include <set>
+#include <vector>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
#include <assert.h>
#include <string.h>
+#include <vector>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
namespace re2c
{
#include <assert.h>
+#include "src/util/c99_stdint.h"
#include <string.h>
+#include <algorithm>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+
#include "src/dfa/cfg/cfg.h"
#include "src/dfa/dfa.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <stddef.h>
+#include <set>
+#include <vector>
+
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <algorithm>
#include <limits>
#include "src/dfa/cfg/cfg.h"
+#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <assert.h>
+#include "src/util/c99_stdint.h"
+#include <stdlib.h>
#include <string.h>
+#include <algorithm>
+#include <set>
+#include <stack>
+#include <utility>
+#include <valarray>
+#include "src/conf/opt.h"
#include "src/dfa/closure.h"
+#include "src/dfa/dfa.h"
#include "src/dfa/tagpool.h"
+#include "src/dfa/tcmd.h"
#include "src/nfa/nfa.h"
-#include "src/util/local_increment.h"
+#include "src/re/rule.h"
namespace re2c
{
#ifndef _RE2C_DFA_CLOSURE_
#define _RE2C_DFA_CLOSURE_
-#include "src/util/c99_stdint.h"
+#include <stddef.h>
#include <map>
+#include <vector>
#include "src/dfa/dfa.h"
+#include "src/dfa/tagtree.h"
#include "src/nfa/nfa.h"
+#include "src/re/tag.h"
namespace re2c
{
+struct Tagpool;
+struct dfa_t;
+struct tcmd_t;
+
struct clos_t
{
nfa_state_t *origin; // for debug only
#include <string.h>
+#include <set>
+#include <string>
+#include <valarray>
+#include <vector>
+#include "src/conf/warn.h"
#include "src/dfa/dfa.h"
+#include "src/re/rule.h"
#include "src/util/forbid_copy.h"
namespace re2c
{
+struct tcmd_t;
+
/* note [unreachable rules]
*
* DFA may contain useless final states. Such states may
-#include <limits>
+#include <assert.h>
+#include "src/util/c99_stdint.h"
#include <string.h>
+#include <algorithm>
+#include <limits>
+#include <set>
+#include <string>
+#include <valarray>
#include <vector>
#include "src/conf/opt.h"
+#include "src/conf/warn.h"
#include "src/dfa/closure.h"
#include "src/dfa/dfa.h"
#include "src/dfa/dump.h"
#include "src/dfa/find_state.h"
#include "src/dfa/tagpool.h"
+#include "src/dfa/tagtree.h"
+#include "src/dfa/tcmd.h"
#include "src/nfa/nfa.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
#include "src/util/range.h"
namespace re2c
#include <stdio.h>
+#include <stdlib.h>
+#include <string>
+#include <valarray>
+#include <vector>
+#include "src/conf/opt.h"
+#include "src/dfa/dfa.h"
#include "src/dfa/dump.h"
#include "src/dfa/tagpool.h"
+#include "src/dfa/tagtree.h"
+#include "src/dfa/tcmd.h"
+#include "src/nfa/nfa.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
namespace re2c
{
#ifndef _RE2C_DFA_DUMP_
#define _RE2C_DFA_DUMP_
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+
#include "src/dfa/closure.h"
#include "src/dfa/dfa.h"
+#include "src/util/forbid_copy.h"
namespace re2c
{
+struct Tagpool;
+struct dfa_t;
+struct nfa_state_t;
+struct nfa_t;
+struct tcmd_t;
+
struct dump_dfa_t
{
const bool debug;
+#include <stddef.h>
+#include <algorithm>
+#include <vector>
+
#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
+#include "src/re/tag.h"
namespace re2c
{
+#include <stddef.h>
#include <limits>
#include <stack>
#include <vector>
+#include <assert.h>
+#include <stdlib.h>
#include <string.h>
+#include <algorithm>
+#include <valarray>
+#include "src/dfa/dfa.h"
+#include "src/dfa/dump.h"
#include "src/dfa/find_state.h"
#include "src/dfa/tagpool.h"
+#include "src/dfa/tcmd.h"
+#include "src/nfa/nfa.h"
+#include "src/re/rule.h"
#include "src/util/hash32.h"
namespace re2c
#ifndef _RE2C_DFA_FIND_STATE_
#define _RE2C_DFA_FIND_STATE_
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <vector>
+
#include "src/dfa/closure.h"
#include "src/dfa/dump.h"
+#include "src/dfa/tagtree.h"
+#include "src/re/tag.h"
#include "src/util/forbid_copy.h"
#include "src/util/lookup.h"
namespace re2c
{
+class tcpool_t;
+struct Tagpool;
+struct dfa_t;
+struct dump_dfa_t;
+struct nfa_state_t;
+struct tcmd_t;
+
struct kernel_t
{
size_t size;
-#include <map>
#include <string.h>
+#include <map>
#include <utility>
#include <vector>
#include "src/dfa/dfa.h"
+#include "src/dfa/tcmd.h"
namespace re2c
{
+#include "src/util/c99_stdint.h"
#include <stdlib.h> // malloc
#include <string.h> // memcpy, memcmp
+#include <algorithm>
#include "src/dfa/tagpool.h"
#include "src/util/hash32.h"
#ifndef _RE2C_DFA_TAGPOOL_
#define _RE2C_DFA_TAGPOOL_
+#include <stddef.h>
#include <stack>
#include "src/dfa/closure.h"
#include "src/dfa/tagtree.h"
#include "src/re/tag.h"
-#include "src/util/lookup.h"
#include "src/util/forbid_copy.h"
+#include "src/util/lookup.h"
namespace re2c
{
+struct nfa_state_t;
struct opt_t;
static const size_t ZERO_TAGS = 0;
#include <assert.h>
#include <stdlib.h>
-#include <string.h>
#include "src/dfa/tagtree.h"
#ifndef _RE2C_DFA_TAGTREE_
#define _RE2C_DFA_TAGTREE_
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <sys/types.h>
#include <vector>
#include "src/re/tag.h"
#ifndef _RE2C_DFA_TCMD_
#define _RE2C_DFA_TCMD_
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+
#include "src/dfa/tagtree.h"
#include "src/re/tag.h"
-#include "src/util/c99_stdint.h"
#include "src/util/forbid_copy.h"
#include "src/util/lookup.h"
#include "src/util/slab_allocator.h"
-#include "src/util/c99_stdint.h"
-#include <string>
-
+#include "src/ast/input.h"
+#include "src/ast/scanner.h"
+#include "src/code/output.h"
#include "src/compile.h"
#include "src/conf/msg.h"
#include "src/conf/opt.h"
#include "src/conf/warn.h"
-#include "src/ast/input.h"
-#include "src/ast/scanner.h"
using namespace re2c;
+#include "src/util/c99_stdint.h"
#include <stdio.h>
+#include <string>
+#include <vector>
#include "src/nfa/nfa.h"
+#include "src/re/tag.h"
+#include "src/util/range.h"
namespace re2c
{
-#include "src/nfa/nfa.h"
+
+#include <stddef.h>
+#include <vector>
+
+#include "src/ast/ast.h"
+#include "src/re/re.h"
namespace re2c {
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <vector>
+
+#include "src/ast/ast.h"
#include "src/nfa/nfa.h"
+#include "src/re/re.h"
+#include "src/re/tag.h"
namespace re2c {
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
+#include <algorithm>
+#include <set>
+#include <string>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+#include "src/ast/ast.h"
#include "src/conf/msg.h"
-#include "src/re/re.h"
+#include "src/conf/opt.h"
+#include "src/conf/warn.h"
#include "src/re/empty_class_policy.h"
#include "src/re/encoding/case.h"
#include "src/re/encoding/enc.h"
#include "src/re/encoding/utf16/utf16_regexp.h"
#include "src/re/encoding/utf8/utf8_regexp.h"
+#include "src/re/re.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
+#include "src/util/range.h"
namespace re2c {
+#include <stddef.h>
+#include <vector>
+
#include "src/re/re.h"
namespace re2c {
#include "src/re/encoding/enc.h"
+
+#include <stddef.h>
+
#include "src/util/range.h"
namespace re2c {
#ifndef _RE2C_RE_ENCODING_RANGE_SUFFIX_
#define _RE2C_RE_ENCODING_RANGE_SUFFIX_
-#include "src/util/c99_stdint.h"
#include <stddef.h> // NULL
+#include "src/util/c99_stdint.h"
#include "src/re/re.h"
#include "src/util/forbid_copy.h"
#include "src/re/encoding/utf16/utf16_range.h"
+
+#include <stddef.h>
+
#include "src/re/encoding/range_suffix.h"
namespace re2c {
+#include <stddef.h>
#include "src/util/c99_stdint.h"
-#include "src/re/encoding/utf16/utf16_regexp.h"
#include "src/re/encoding/range_suffix.h"
#include "src/re/encoding/utf16/utf16_range.h"
+#include "src/re/encoding/utf16/utf16_regexp.h"
#include "src/util/range.h"
namespace re2c {
#include "src/re/encoding/utf8/utf8_range.h"
+
+#include <stddef.h>
+
#include "src/re/encoding/range_suffix.h"
namespace re2c {
+#include <stddef.h>
#include "src/util/c99_stdint.h"
-#include "src/re/encoding/utf8/utf8_regexp.h"
#include "src/re/encoding/range_suffix.h"
#include "src/re/encoding/utf8/utf8_range.h"
+#include "src/re/encoding/utf8/utf8_regexp.h"
#include "src/util/range.h"
namespace re2c {
+#include <stddef.h>
+#include <vector>
+
+#include "src/code/input_api.h"
+#include "src/conf/opt.h"
#include "src/re/re.h"
+#include "src/re/tag.h"
namespace re2c {
+#include <stddef.h>
+#include <string>
+#include <valarray>
+#include <vector>
+
+#include "src/conf/warn.h"
#include "src/re/re.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
namespace re2c {
#ifndef _RE2C_RE_RULE_
#define _RE2C_RE_RULE_
+#include <stddef.h>
#include "src/util/c99_stdint.h"
#include <set>
#include <string>
#include "src/re/tag.h"
-#include "src/util/free_list.h"
#include "src/util/forbid_copy.h"
+#include "src/util/free_list.h"
namespace re2c
{
#include "src/util/c99_stdint.h"
#include <set>
#include <stack>
+#include <vector>
+#include "src/conf/opt.h"
+#include "src/re/encoding/enc.h"
#include "src/re/re.h"
+#include "src/util/range.h"
namespace re2c {
#ifndef _RE2C_RE_TAG_
#define _RE2C_RE_TAG_
+#include <stddef.h>
+#include "src/util/c99_stdint.h"
#include <limits>
#include <string>
#include <vector>
-#include "src/util/c99_stdint.h"
-
namespace re2c
{
+#include "src/util/c99_stdint.h"
+#include <stdio.h>
+#include <map>
+#include <utility>
#include <valarray>
#include <vector>
+#include "src/conf/warn.h"
+#include "src/re/rule.h"
#include "src/skeleton/path.h"
#include "src/skeleton/skeleton.h"
#include "src/util/u32lim.h"
-#include "src/util/c99_stdint.h"
#include <stddef.h>
-#include <algorithm>
+#include "src/util/c99_stdint.h"
#include <set>
#include <string>
+#include <valarray>
+#include <vector>
+#include "src/adfa/adfa.h"
#include "src/code/bitmap.h"
#include "src/code/emit.h"
#include "src/code/output.h"
+#include "src/conf/opt.h"
#include "src/re/encoding/enc.h"
-#include "src/adfa/adfa.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
#include "src/skeleton/skeleton.h"
namespace re2c
-#include "src/util/c99_stdint.h"
#include <assert.h>
#include <stddef.h>
+#include "src/util/c99_stdint.h"
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#include <algorithm>
#include <map>
#include <string>
#include <utility>
+#include <valarray>
#include <vector>
#include "src/conf/msg.h"
+#include "src/conf/opt.h"
+#include "src/dfa/tcmd.h"
#include "src/re/encoding/enc.h"
+#include "src/re/rule.h"
+#include "src/re/tag.h"
#include "src/skeleton/path.h"
#include "src/skeleton/skeleton.h"
+#include "src/util/forbid_copy.h"
#include "src/util/u32lim.h"
+#include "src/util/wrap_iter.h"
namespace re2c
{
+#include <stddef.h>
#include "src/util/c99_stdint.h"
#include <algorithm>
#include <limits>
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
#include "src/conf/msg.h"
#include "src/skeleton/skeleton.h"
#include <assert.h>
#include <algorithm>
-#include <string.h>
#include "src/dfa/dfa.h"
-#include "src/skeleton/path.h"
#include "src/skeleton/skeleton.h"
namespace re2c
{
+struct opt_t;
+struct tcmd_t;
+
Node::Node()
: arcs()
, rule(Rule::NONE)
#include <map>
#include <set>
#include <string>
+#include <utility>
#include <valarray>
#include <vector>
-#include <utility>
#include "src/code/bitmap.h"
#include "src/conf/opt.h"
#include "src/dfa/tcmd.h"
#include "src/re/rule.h"
-#include "src/util/local_increment.h"
+#include "src/re/tag.h"
#include "src/util/forbid_copy.h"
+#include "src/util/local_increment.h"
#include "src/util/wrap_iter.h"
namespace re2c
{
-struct dfa_t;
-struct dfa_state_t;
-struct DFA;
class OutputFile;
class path_t;
+struct DFA;
+struct dfa_state_t;
+struct dfa_t;
+class Warn;
+class bitmaps_t;
+struct opt_t;
+struct tcmd_t;
typedef local_increment_t<uint8_t> local_inc;
#ifndef _RE2C_UTIL_RANGE_
#define _RE2C_UTIL_RANGE_
-#include "src/util/c99_stdint.h"
#include <assert.h>
#include <stddef.h> // NULL
+#include "src/util/c99_stdint.h"
#include "src/test/range/test.h"
#include "src/util/forbid_copy.h"
#ifndef _RE2C_UTIL_S_TO_N32_UNSAFE_
#define _RE2C_UTIL_S_TO_N32_UNSAFE_
-#include "src/util/attribute.h"
#include "src/util/c99_stdint.h"
+#include "src/util/attribute.h"
+
bool s_to_u32_unsafe (const char * s, const char * s_end, uint32_t & number) RE2C_GXX_ATTRIBUTE ((warn_unused_result));
bool s_to_i32_unsafe (const char * s, const char * s_end, int32_t & number) RE2C_GXX_ATTRIBUTE ((warn_unused_result));
set -e
+echo 'RUNME: configure CXX=include-what-you-use CXXFLAGS="--check-also" && make -k 2>log && python2 `which fix_inclydes.py` < log'
echo 'RUNME: cppcheck --enable=all --inconclusive --std=posix --quiet --force -I. src/'
echo 'RUNME: for h in $(find src/ -name ''*.h*''); do echo "CHECKING $h"; g++ -I. -c $h -o foo.o; done'
echo "RUNME: uselex `find <objdir> -type f -name '*.o'`"