diff options
Diffstat (limited to 'tiger-compiler/src/combine/tasks.hh')
| -rw-r--r-- | tiger-compiler/src/combine/tasks.hh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tiger-compiler/src/combine/tasks.hh b/tiger-compiler/src/combine/tasks.hh new file mode 100644 index 0000000..67cc169 --- /dev/null +++ b/tiger-compiler/src/combine/tasks.hh @@ -0,0 +1,56 @@ +/** + ** \file combine/tasks.hh + ** \brief Combine module related tasks. + */ + +#pragma once + +#include <overload/binder.hh> +#include <task/libtask.hh> + +namespace combine::tasks +{ + TASK_GROUP("Combine"); + + BOOLEAN_TASK_DECLARE("c-object", "combine objects", c_object_p, "object"); + BOOLEAN_TASK_DECLARE("c-bounds", "combine bounds checking", c_bounds_p, ""); + BOOLEAN_TASK_DECLARE("c-escapes", "combine escapes", c_escapes_p, ""); + BOOLEAN_TASK_DECLARE("c-desugar", + "combine for and string comparison desugaring", + c_desugar_p, + "desugar-for desugar-string-cmp"); + BOOLEAN_TASK_DECLARE("c-inline", "combine inlining", c_inline_p, ""); + BOOLEAN_TASK_DECLARE("c-prune", "combine pruning", c_prune_p, ""); + BOOLEAN_TASK_DECLARE("c-overload", "combine overloading", c_overload_p, ""); + + BOOLEAN_TASK_DECLARE( + "a|c-all", + "combine all compiler options", + c_all_p, + "c-object c-bounds c-escapes c-desugar c-inline c-prune c-overload"); + + TASK_DECLARE("combine-bindings-compute", + "bind the identifiers, " + "allowing various compiler options", + combine_bindings_compute, + "parse"); + + TASK_DECLARE("combine-types-compute", + "check for type violations, " + "allowing various compiler options", + combine_types_compute, + "combine-bindings-compute"); + + TASK_DECLARE("combine-rename", + "rename identifiers to unique names, " + "allowing various compiler options", + combine_rename, + "combine-types-compute"); + + TASK_DECLARE("c|combine-desugar", + "remove object and complex constructs from the program" + "allowing various compiler options", + combine_desugar, + "combine-rename"); + +} // namespace combine::tasks |
