9#include <metalang99/priv/util.h>
34#define ML99_catEval(a, b) ML99_call(ML99_catEval, a, b)
53#define ML99_cat(a, b) ML99_call(ML99_cat, a, b)
58#define ML99_cat3(a, b, c) ML99_call(ML99_cat3, a, b, c)
63#define ML99_cat4(a, b, c, d) ML99_call(ML99_cat4, a, b, c, d)
77#define ML99_stringify(...) ML99_call(ML99_stringify, __VA_ARGS__)
82#define ML99_empty(...) ML99_callUneval(ML99_empty, )
96#define ML99_id(...) ML99_call(ML99_id, __VA_ARGS__)
110#define ML99_const(x, a) ML99_call(ML99_const, x, a)
124#define ML99_flip(f) ML99_call(ML99_flip, f)
138#define ML99_uncomma(...) ML99_call(ML99_uncomma, __VA_ARGS__)
165#define ML99_reify(f) ML99_call(ML99_reify, f)
184#define ML99_todo(f) ML99_call(ML99_todo, f)
200#define ML99_todoWithMsg(f, message) ML99_call(ML99_todoWithMsg, f, message)
220#define ML99_unimplemented(f) ML99_call(ML99_unimplemented, f)
236#define ML99_unimplementedWithMsg(f, message) ML99_call(ML99_unimplementedWithMsg, f, message)
270#define ML99_GEN_SYM(prefix, id) ML99_CAT4(prefix, id, _, __COUNTER__)
295#define ML99_TRAILING_SEMICOLON(...) struct ml99_priv_trailing_semicolon
312#define ML99_CAT_PRIMITIVE(a, b) a##b
317#define ML99_CAT3_PRIMITIVE(a, b, c) a##b##c
322#define ML99_CAT4_PRIMITIVE(a, b, c, d) a##b##c##d
339#define ML99_STRINGIFY_PRIMITIVE(...) #__VA_ARGS__
352#define ML99_LPAREN(...) (
359#define ML99_RPAREN(...) )
364#define ML99_COMMA(...) ,
369#define ML99_GCC_PRAGMA(str) ML99_PRIV_GCC_PRAGMA(str)
374#define ML99_CLANG_PRAGMA(str) ML99_PRIV_CLANG_PRAGMA(str)
376#define ML99_CAT(a, b) ML99_CAT_PRIMITIVE(a, b)
377#define ML99_CAT3(a, b, c) ML99_CAT3_PRIMITIVE(a, b, c)
378#define ML99_CAT4(a, b, c, d) ML99_CAT4_PRIMITIVE(a, b, c, d)
379#define ML99_STRINGIFY(...) ML99_STRINGIFY_PRIMITIVE(__VA_ARGS__)
380#define ML99_EMPTY(...)
381#define ML99_ID(...) __VA_ARGS__
383#ifndef DOXYGEN_IGNORE
385#define ML99_catEval_IMPL(a, b) a##b
386#define ML99_cat_IMPL(a, b) v(a##b)
387#define ML99_cat3_IMPL(a, b, c) v(a##b##c)
388#define ML99_cat4_IMPL(a, b, c, d) v(a##b##c##d)
389#define ML99_stringify_IMPL(...) v(ML99_STRINGIFY(__VA_ARGS__))
390#define ML99_empty_IMPL(...) v(ML99_EMPTY())
391#define ML99_id_IMPL(...) v(ML99_ID(__VA_ARGS__))
392#define ML99_const_IMPL(x, _a) v(x)
393#define ML99_flip_IMPL(f) ML99_appl_IMPL(ML99_PRIV_flip, f)
394#define ML99_PRIV_flip_IMPL(f, a, b) ML99_appl2_IMPL(f, b, a)
395#define ML99_uncomma_IMPL(...) __VA_ARGS__
397#define ML99_reify_IMPL(f) ML99_appl_IMPL(ML99_PRIV_reify, f)
398#define ML99_PRIV_reify_IMPL(f, ...) v(f(__VA_ARGS__))
401#define ML99_todo_IMPL(f) ML99_fatal(f, not yet implemented)
402#define ML99_todoWithMsg_IMPL(f, message) ML99_fatal(f, not yet implemented: message)
404#define ML99_unimplemented_IMPL(f) ML99_fatal(f, not implemented)
405#define ML99_unimplementedWithMsg_IMPL(f, message) ML99_fatal(f, not implemented: message)
408#if defined(__GNUC__) && !defined(__clang__)
409#define ML99_PRIV_GCC_PRAGMA(str) _Pragma(str)
411#define ML99_PRIV_GCC_PRAGMA(str)
414#if defined(__clang__)
415#define ML99_PRIV_CLANG_PRAGMA(str) _Pragma(str)
417#define ML99_PRIV_CLANG_PRAGMA(str)
422#define ML99_catEval_ARITY 2
423#define ML99_cat_ARITY 2
424#define ML99_cat3_ARITY 3
425#define ML99_cat4_ARITY 4
426#define ML99_stringify_ARITY 1
427#define ML99_empty_ARITY 1
428#define ML99_id_ARITY 1
429#define ML99_const_ARITY 2
430#define ML99_flip_ARITY 1
431#define ML99_uncomma_ARITY 1
432#define ML99_reify_ARITY 1
433#define ML99_todo_ARITY 1
434#define ML99_todoWithMsg_ARITY 2
435#define ML99_unimplemented_ARITY 1
436#define ML99_unimplementedWithMsg_ARITY 2
438#define ML99_PRIV_flip_ARITY 3
439#define ML99_PRIV_reify_ARITY 2
Identifiers: [a-zA-Z0-9_]+.