<?hh
class :foo {
  attribute enum { 'bar', 'baz' } echo;
  attribute enum { 'bar', 'baz' } print;
  attribute enum { 'bar', 'baz' } and;
  attribute enum { 'bar', 'baz' } or;
  attribute enum { 'bar', 'baz' } xor;
  attribute enum { 'bar', 'baz' } array;
  attribute enum { 'bar', 'baz' } list;
  attribute enum { 'bar', 'baz' } function;
  attribute enum { 'bar', 'baz' } class;
  attribute enum { 'bar', 'baz' } interface;
  attribute enum { 'bar', 'baz' } trait;
  attribute enum { 'bar', 'baz' } namespace;
  attribute enum { 'bar', 'baz' } require;
  attribute enum { 'bar', 'baz' } require_once;
  attribute enum { 'bar', 'baz' } include;
  attribute enum { 'bar', 'baz' } include_once;
  attribute enum { 'bar', 'baz' } eval;
  attribute enum { 'bar', 'baz' } isset;
  attribute enum { 'bar', 'baz' } empty;
  attribute enum { 'bar', 'baz' } unset;
  attribute enum { 'bar', 'baz' } global;
  attribute enum { 'bar', 'baz' } static;
  attribute enum { 'bar', 'baz' } public;
  attribute enum { 'bar', 'baz' } protected;
  attribute enum { 'bar', 'baz' } private;
  attribute enum { 'bar', 'baz' } var;
  attribute enum { 'bar', 'baz' } const;
  attribute enum { 'bar', 'baz' } abstract;
  attribute enum { 'bar', 'baz' } final;
  attribute enum { 'bar', 'baz' } new;
  attribute enum { 'bar', 'baz' } instanceof;
  attribute enum { 'bar', 'baz' } clone;
  attribute enum { 'bar', 'baz' } if;
  attribute enum { 'bar', 'baz' } else;
  attribute enum { 'bar', 'baz' } elseif;
  attribute enum { 'bar', 'baz' } endif;
  attribute enum { 'bar', 'baz' } for;
  attribute enum { 'bar', 'baz' } endfor;
  attribute enum { 'bar', 'baz' } foreach;
  attribute enum { 'bar', 'baz' } endforeach;
  attribute enum { 'bar', 'baz' } while;
  attribute enum { 'bar', 'baz' } endwhile;
  attribute enum { 'bar', 'baz' } do;
  attribute enum { 'bar', 'baz' } break;
  attribute enum { 'bar', 'baz' } continue;
  attribute enum { 'bar', 'baz' } switch;
  attribute enum { 'bar', 'baz' } endswitch;
  attribute enum { 'bar', 'baz' } case;
  attribute enum { 'bar', 'baz' } default;
  attribute enum { 'bar', 'baz' } goto;
  attribute enum { 'bar', 'baz' } exit;
  attribute enum { 'bar', 'baz' } die;
  attribute enum { 'bar', 'baz' } return;
  attribute enum { 'bar', 'baz' } yield;
  attribute enum { 'bar', 'baz' } throw;
  attribute enum { 'bar', 'baz' } try;
  attribute enum { 'bar', 'baz' } catch;
  attribute enum { 'bar', 'baz' } finally;
  attribute enum { 'bar', 'baz' } declare;
  attribute enum { 'bar', 'baz' } enddeclare;
  attribute enum { 'bar', 'baz' } implements;
  attribute enum { 'bar', 'baz' } extends;
  attribute enum { 'bar', 'baz' } use;
  attribute enum { 'bar', 'baz' } as;
  attribute enum { 'bar', 'baz' } insteadof;
  attribute enum { 'bar', 'baz' } __FUNCTION__;
  attribute enum { 'bar', 'baz' } __METHOD__;
  attribute enum { 'bar', 'baz' } __CLASS__;
  attribute enum { 'bar', 'baz' } __TRAIT__;
  attribute enum { 'bar', 'baz' } __NAMESPACE__;
  attribute enum { 'bar', 'baz' } __LINE__;
  attribute enum { 'bar', 'baz' } __FILE__;
  attribute enum { 'bar', 'baz' } __DIR__;
  attribute enum { 'bar', 'baz' } __halt_compiler;
  attribute enum { 'bar', 'baz' } __compiler_halt_offset__;
  attribute enum { 'bar', 'baz' } attribute;
  attribute enum { 'bar', 'baz' } category;
  attribute enum { 'bar', 'baz' } children;
  attribute enum { 'bar', 'baz' } required;
  attribute enum { 'bar', 'baz' } enum;
  attribute enum { 'bar', 'baz' } type;
  attribute enum { 'bar', 'baz' } newtype;
  attribute enum { 'bar', 'baz' } shape;
}
echo "Done\n";
