Skip to content

Instantly share code, notes, and snippets.

@notfoundry
Created October 6, 2020 19:33
Show Gist options
  • Select an option

  • Save notfoundry/09664e49b48771b0dfee227518872aae to your computer and use it in GitHub Desktop.

Select an option

Save notfoundry/09664e49b48771b0dfee227518872aae to your computer and use it in GitHub Desktop.
#define PPTS_BIT_BASE 32
#define PPTS_TOKEN_l (l)
#define PPTS_TOKEN_o (o)
#define PPTS_TOKEN_n (n)
#define PPTS_TOKEN_g (g)
#define ORDER_PP_DEF_1ppts_choose_type_for_width \
ORDER_PP_FN(8fn(8N, 8print(8(_ExtInt) 8lparen 8to_lit(8mul(PPTS_BIT_BASE, 8N)) 8rparen)))
#define ORDER_PP_DEF_1ppts_parse_width \
ORDER_PP_FN(8fn(8S, \
8lets((8O, 8seq_pop_back(8seq_pop_back(8seq_tail(8S)))), \
8seq_size(8O))))
#define ORDER_PP_DEF_1ppts_tokenize ORDER_PP_FN(8fn(8T, 8tokens_to_seq_with(8(PPTS_TOKEN), 8T)))
#define $signed(...) ORDER_PP(1ppts_choose_type_for_width(1ppts_parse_width(1ppts_tokenize(8(__VA_ARGS__)))))
$signed (l o o o o o o o o o o o o o o o o n g) i = 0;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment