12329ecc3SAlex Crichton// hello �� world
2*fd3a827eSAlex Crichtonpackage foo:foo;
32329ecc3SAlex Crichton
42329ecc3SAlex Crichtoninterface conventions {
5*fd3a827eSAlex Crichton  kebab-case: func();
62329ecc3SAlex Crichton
72329ecc3SAlex Crichton  record ludicrous-speed {
82329ecc3SAlex Crichton    how-fast-are-you-going: u32,
92329ecc3SAlex Crichton    i-am-going-extremely-slow: u64,
102329ecc3SAlex Crichton  }
112329ecc3SAlex Crichton
12*fd3a827eSAlex Crichton  foo: func(x: ludicrous-speed);
13*fd3a827eSAlex Crichton  %function-with-dashes: func();
14*fd3a827eSAlex Crichton  %function-with-no-weird-characters: func();
152329ecc3SAlex Crichton
16*fd3a827eSAlex Crichton  apple: func();
17*fd3a827eSAlex Crichton  apple-pear: func();
18*fd3a827eSAlex Crichton  apple-pear-grape: func();
19*fd3a827eSAlex Crichton  a0: func();
202329ecc3SAlex Crichton
212329ecc3SAlex Crichton  // Comment out identifiers that collide when mapped to snake_case, for now; see
222329ecc3SAlex Crichton  // https://github.com/WebAssembly/component-model/issues/118
232329ecc3SAlex Crichton  //APPLE: func()
242329ecc3SAlex Crichton  //APPLE-pear-GRAPE: func()
252329ecc3SAlex Crichton  //apple-PEAR-grape: func()
262329ecc3SAlex Crichton
27*fd3a827eSAlex Crichton  is-XML: func();
282329ecc3SAlex Crichton
29*fd3a827eSAlex Crichton  %explicit: func();
30*fd3a827eSAlex Crichton  %explicit-kebab: func();
312329ecc3SAlex Crichton
322329ecc3SAlex Crichton  // Identifiers with the same name as keywords are quoted.
33*fd3a827eSAlex Crichton  %bool: func();
342329ecc3SAlex Crichton}
352329ecc3SAlex Crichton
3641417d9eSAlex Crichtonworld the-world {
37*fd3a827eSAlex Crichton  import conventions;
38*fd3a827eSAlex Crichton  export conventions;
392329ecc3SAlex Crichton}
40