const_expr.odin 444 B

12345678910111213141516171819202122232425
  1. package c_frontend_preprocess
  2. import "core:c/frontend/tokenizer"
  3. const_expr :: proc(rest: ^^Token, tok: ^Token) -> i64 {
  4. // TODO(bill): Handle const_expr correctly
  5. // This is effectively a mini-parser
  6. assert(rest != nil);
  7. assert(tok != nil);
  8. rest^ = tokenizer.new_eof(tok);
  9. switch v in tok.val {
  10. case i64:
  11. return v;
  12. case f64:
  13. return i64(v);
  14. case string:
  15. return 0;
  16. case []u16:
  17. // TODO
  18. case []u32:
  19. // TODO
  20. }
  21. return 0;
  22. }