
package(
    default_visibility = ["//visibility:public"],
)

cc_binary(
    name = "ragelc",
    srcs = [
        "ragel/rubycodegen.cpp",
        "ragel/goipgoto.h",
        "ragel/cdtable.h",
        "ragel/rubycodegen.h",
        "ragel/gotable.h",
        "ragel/gocodegen.cpp",
        "ragel/rubyfflat.cpp",
        "ragel/common.cpp",
        "ragel/gofflat.cpp",
        "ragel/cdtable.cpp",
        "ragel/cdsplit.cpp",
        "ragel/rlparse.cpp",
        "ragel/csfgoto.cpp",
        "ragel/javacodegen.cpp",
        "ragel/gocodegen.h",
        "ragel/mlgoto.cpp",
        "ragel/fsmgraph.cpp",
        "ragel/version.h",
        "ragel/mlfflat.h",
        "ragel/fsmgraph.h",
        "ragel/fsmbase.cpp",
        "ragel/fsmstate.cpp",
        "ragel/gotablish.cpp",
        "ragel/rubyflat.cpp",
        "ragel/cdfgoto.h",
        "ragel/cscodegen.h",
        "ragel/mlflat.cpp",
        "ragel/rubyflat.h",
        "ragel/goftable.h",
        "ragel/rbxgoto.cpp",
        "ragel/csfflat.cpp",
        "ragel/gofgoto.cpp",
        "ragel/gofgoto.h",
        "ragel/ragel.h",
        "ragel/goftable.cpp",
        "ragel/cdcodegen.cpp",
        "ragel/rlparse.h",
        "ragel/cdsplit.h",
        "ragel/xmlcodegen.cpp",
        "ragel/goipgoto.cpp",
        "ragel/dotcodegen.h",
        "ragel/gogoto.cpp",
        "ragel/csflat.h",
        "ragel/csfflat.h",
        #"ragel/config.h.in",
        "ragel/csipgoto.cpp",
        "ragel/mltable.cpp",
        "ragel/mlflat.h",
        "ragel/csftable.cpp",
        "ragel/cdgoto.h",
        "ragel/goflat.cpp",
        "ragel/rubyfflat.h",
        "ragel/mlftable.h",
        "ragel/rubyftable.h",
        "ragel/fsmap.cpp",
        "ragel/redfsm.cpp",
        "ragel/goflat.h",
        "ragel/parsetree.cpp",
        "ragel/fsmmin.cpp",
        "ragel/dotcodegen.cpp",
        "ragel/redfsm.h",
        "ragel/mlcodegen.cpp",
        "ragel/cdfgoto.cpp",
        "ragel/cssplit.cpp",
        "ragel/cstable.cpp",
        "ragel/javacodegen.h",
        "ragel/parsedata.cpp",
        "ragel/buffer.h",
        "ragel/gogoto.h",
        "ragel/csgoto.h",
        "ragel/pcheck.h",
        "ragel/rubyftable.cpp",
        "ragel/csfgoto.h",
        "ragel/common.h",
        "ragel/cdftable.h",
        "ragel/mlgoto.h",
        "ragel/csgoto.cpp",
        "ragel/cdflat.h",
        "ragel/cdipgoto.h",
        "ragel/cstable.h",
        "ragel/gendata.h",
        "ragel/cdfflat.cpp",
        "ragel/gotable.cpp",
        "ragel/cdcodegen.h",
        "ragel/gendata.cpp",
        "ragel/rubytable.h",
        "ragel/csflat.cpp",
        "ragel/inputdata.h",
        "ragel/inputdata.cpp",
        "ragel/rubytable.cpp",
        "ragel/fsmattach.cpp",
        "ragel/csipgoto.h",
        "ragel/cscodegen.cpp",
        "ragel/cdfflat.h",
        "ragel/rbxgoto.h",
        "ragel/xmlcodegen.h",
        "ragel/gofflat.h",
        "ragel/parsedata.h",
        "ragel/mlfgoto.h",
        "ragel/cdflat.cpp",
        "ragel/config.h",
        "ragel/rlscan.cpp",
        "ragel/mlcodegen.h",
        "ragel/mlfflat.cpp",
        "ragel/mlftable.cpp",
        "ragel/mltable.h",
        "ragel/cdipgoto.cpp",
        "ragel/cdftable.cpp",
        "ragel/parsetree.h",
        "ragel/rlscan.h",
        "ragel/main.cpp",
        "ragel/cssplit.h",
        "ragel/mlfgoto.cpp",
        "ragel/csftable.h",
        "ragel/gotablish.h",
        "ragel/cdgoto.cpp",
        "aapl/avlmelkey.h",
        "aapl/dlistmel.h",
        "aapl/avliset.h",
        "aapl/avlkeyless.h",
        "aapl/sbstset.h",
        "aapl/sbsttable.h",
        "aapl/quicksort.h",
        "aapl/avlitree.h",
        "aapl/avlcommon.h",
        "aapl/bstset.h",
        "aapl/avlmel.h",
        "aapl/insertsort.h",
        "aapl/dlist.h",
        "aapl/avlmap.h",
        "aapl/mergesort.h",
        "aapl/resize.h",
        "aapl/bstcommon.h",
        "aapl/bstmap.h",
        "aapl/compare.h",
        "aapl/svector.h",
        "aapl/avlset.h",
        "aapl/bsttable.h",
        "aapl/avlikeyless.h",
        "aapl/bubblesort.h",
        "aapl/table.h",
        "aapl/avlbasic.h",
        "aapl/vector.h",
        "aapl/avlimap.h",
        "aapl/dlistval.h",
        "aapl/dlcommon.h",
        "aapl/avlibasic.h",
        "aapl/sbstmap.h",
        "aapl/avlimel.h",
        "aapl/avlimelkey.h",
        "aapl/avltree.h",
    ],
    includes = ["ragel", "aapl"],
)

config_h_contents = """
#define PACKAGE "ragel"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""

/* Define to the full name of this package. */
#define PACKAGE_NAME "ragel"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "ragel 6.10"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "ragel"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "6.10"

/* Version number of package */
#define VERSION "6.10"
"""

genrule(
    name = "gen_config_h",
    outs = ["ragel/config.h"],
    cmd = "(cat <<'HEREDOC'\n%s\nHEREDOC\n) > $@" % config_h_contents,
)
