<?php

$constants = get_defined_constants();
$constants['PHP_VERSION'] = 'HPHP';

print "<?php\n";
print "// Do NOT edit. Auto-generated by gen_constants\n\n";
foreach ($constants as $name => $value) {
  if (is_resource($value)) continue;

  print "define('$name', ";
  if (is_string($value) || preg_match('/^(INF|NAN)$/', $name)) {
    if (preg_match('|/usr/local/|', $value)) {
      $value = '';
    }
    $value = preg_replace('/\r/', "\r", $value);
    $value = preg_replace('/\n/', "\n", $value);

    print "'$value'";
  } else if (is_numeric($value)) {
    print $value;
  } else if (is_bool($value)) {
    print $value ? "true" : "false";
  } else if (is_null($value)) {
    print 'null';
  } else {
    exit('doh');
  }
  print ");\n";
}

print "// HPHP system constants\n";
print "define('HPHP_TRIM_CHARLIST', \" \\n\\r\\t\\v\\0\");\n";
print "define('CLOCK_REALTIME', 0);\n";
print "define('CLOCK_MONOTONIC', 1);\n";
print "define('CLOCK_PROCESS_CPUTIME_ID', 2);\n";
print "define('CLOCK_THREAD_CPUTIME_ID', 3);\n";
print "define('OPENSSL_KEYTYPE_EC', 3);\n";
