171b4c226SZixu Wang // RUN: rm -rf %t
271b4c226SZixu Wang // RUN: split-file %s %t
3e08c4354SZixu Wang // RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \
4e08c4354SZixu Wang // RUN: %t/reference.output.json.in >> %t/reference.output.json
5*c1e17c7dSDuncan P. N. Exon Smith // RUN: %clang_cc1 -extract-api -triple arm64-apple-macosx \
6*c1e17c7dSDuncan P. N. Exon Smith // RUN:   -x c-header %t/input.h -o %t/output.json -verify
771b4c226SZixu Wang 
871b4c226SZixu Wang // Generator version is not consistent across test runs, normalize it.
971b4c226SZixu Wang // RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \
1071b4c226SZixu Wang // RUN: %t/output.json >> %t/output-normalized.json
1171b4c226SZixu Wang // RUN: diff %t/reference.output.json %t/output-normalized.json
1271b4c226SZixu Wang 
1371b4c226SZixu Wang //--- input.h
1471b4c226SZixu Wang /// Kinds of vehicles
1571b4c226SZixu Wang enum Vehicle {
1671b4c226SZixu Wang   Bicycle,
1771b4c226SZixu Wang   Car,
1871b4c226SZixu Wang   Train, ///< Move this to the top! -Sheldon
1971b4c226SZixu Wang   Ship,
2071b4c226SZixu Wang   Airplane,
2171b4c226SZixu Wang };
2271b4c226SZixu Wang 
2371b4c226SZixu Wang enum Direction : unsigned char {
2471b4c226SZixu Wang   North = 0,
2571b4c226SZixu Wang   East,
2671b4c226SZixu Wang   South,
2771b4c226SZixu Wang   West
2871b4c226SZixu Wang };
2971b4c226SZixu Wang 
307443a504SDaniel Grumberg enum {
317443a504SDaniel Grumberg   Constant = 1
327443a504SDaniel Grumberg };
337443a504SDaniel Grumberg 
347443a504SDaniel Grumberg enum {
357443a504SDaniel Grumberg   OtherConstant = 2
367443a504SDaniel Grumberg };
37*c1e17c7dSDuncan P. N. Exon Smith // expected-no-diagnostics
387443a504SDaniel Grumberg 
3971b4c226SZixu Wang //--- reference.output.json.in
4071b4c226SZixu Wang {
4171b4c226SZixu Wang   "metadata": {
4271b4c226SZixu Wang     "formatVersion": {
4371b4c226SZixu Wang       "major": 0,
4471b4c226SZixu Wang       "minor": 5,
4571b4c226SZixu Wang       "patch": 3
4671b4c226SZixu Wang     },
4771b4c226SZixu Wang     "generator": "?"
4871b4c226SZixu Wang   },
4971b4c226SZixu Wang   "module": {
5071b4c226SZixu Wang     "name": "",
5171b4c226SZixu Wang     "platform": {
5271b4c226SZixu Wang       "architecture": "arm64",
5371b4c226SZixu Wang       "operatingSystem": {
5471b4c226SZixu Wang         "minimumVersion": {
5571b4c226SZixu Wang           "major": 11,
5671b4c226SZixu Wang           "minor": 0,
5771b4c226SZixu Wang           "patch": 0
5871b4c226SZixu Wang         },
5971b4c226SZixu Wang         "name": "macosx"
6071b4c226SZixu Wang       },
6171b4c226SZixu Wang       "vendor": "apple"
6271b4c226SZixu Wang     }
6371b4c226SZixu Wang   },
6428d79314SDaniel Grumberg   "relationships": [
6571b4c226SZixu Wang     {
6671b4c226SZixu Wang       "kind": "memberOf",
6771b4c226SZixu Wang       "source": "c:@E@Vehicle@Bicycle",
6871b4c226SZixu Wang       "target": "c:@E@Vehicle"
6971b4c226SZixu Wang     },
7071b4c226SZixu Wang     {
7171b4c226SZixu Wang       "kind": "memberOf",
7271b4c226SZixu Wang       "source": "c:@E@Vehicle@Car",
7371b4c226SZixu Wang       "target": "c:@E@Vehicle"
7471b4c226SZixu Wang     },
7571b4c226SZixu Wang     {
7671b4c226SZixu Wang       "kind": "memberOf",
7771b4c226SZixu Wang       "source": "c:@E@Vehicle@Train",
7871b4c226SZixu Wang       "target": "c:@E@Vehicle"
7971b4c226SZixu Wang     },
8071b4c226SZixu Wang     {
8171b4c226SZixu Wang       "kind": "memberOf",
8271b4c226SZixu Wang       "source": "c:@E@Vehicle@Ship",
8371b4c226SZixu Wang       "target": "c:@E@Vehicle"
8471b4c226SZixu Wang     },
8571b4c226SZixu Wang     {
8671b4c226SZixu Wang       "kind": "memberOf",
8771b4c226SZixu Wang       "source": "c:@E@Vehicle@Airplane",
8871b4c226SZixu Wang       "target": "c:@E@Vehicle"
8971b4c226SZixu Wang     },
9071b4c226SZixu Wang     {
9171b4c226SZixu Wang       "kind": "memberOf",
9271b4c226SZixu Wang       "source": "c:@E@Direction@North",
9371b4c226SZixu Wang       "target": "c:@E@Direction"
9471b4c226SZixu Wang     },
9571b4c226SZixu Wang     {
9671b4c226SZixu Wang       "kind": "memberOf",
9771b4c226SZixu Wang       "source": "c:@E@Direction@East",
9871b4c226SZixu Wang       "target": "c:@E@Direction"
9971b4c226SZixu Wang     },
10071b4c226SZixu Wang     {
10171b4c226SZixu Wang       "kind": "memberOf",
10271b4c226SZixu Wang       "source": "c:@E@Direction@South",
10371b4c226SZixu Wang       "target": "c:@E@Direction"
10471b4c226SZixu Wang     },
10571b4c226SZixu Wang     {
10671b4c226SZixu Wang       "kind": "memberOf",
10771b4c226SZixu Wang       "source": "c:@E@Direction@West",
10871b4c226SZixu Wang       "target": "c:@E@Direction"
1097443a504SDaniel Grumberg     },
1107443a504SDaniel Grumberg     {
1117443a504SDaniel Grumberg       "kind": "memberOf",
1127443a504SDaniel Grumberg       "source": "c:@Ea@Constant@Constant",
1137443a504SDaniel Grumberg       "target": "c:@Ea@Constant"
1147443a504SDaniel Grumberg     },
1157443a504SDaniel Grumberg     {
1167443a504SDaniel Grumberg       "kind": "memberOf",
1177443a504SDaniel Grumberg       "source": "c:@Ea@OtherConstant@OtherConstant",
1187443a504SDaniel Grumberg       "target": "c:@Ea@OtherConstant"
11971b4c226SZixu Wang     }
12071b4c226SZixu Wang   ],
12171b4c226SZixu Wang   "symbols": [
12271b4c226SZixu Wang     {
12328d79314SDaniel Grumberg       "accessLevel": "public",
12471b4c226SZixu Wang       "declarationFragments": [
12571b4c226SZixu Wang         {
12671b4c226SZixu Wang           "kind": "keyword",
12771b4c226SZixu Wang           "spelling": "enum"
12871b4c226SZixu Wang         },
12971b4c226SZixu Wang         {
13071b4c226SZixu Wang           "kind": "text",
13171b4c226SZixu Wang           "spelling": " "
13271b4c226SZixu Wang         },
13371b4c226SZixu Wang         {
13471b4c226SZixu Wang           "kind": "identifier",
13571b4c226SZixu Wang           "spelling": "Vehicle"
13671b4c226SZixu Wang         },
13771b4c226SZixu Wang         {
13871b4c226SZixu Wang           "kind": "text",
13971b4c226SZixu Wang           "spelling": ": "
14071b4c226SZixu Wang         },
14171b4c226SZixu Wang         {
14271b4c226SZixu Wang           "kind": "typeIdentifier",
14371b4c226SZixu Wang           "preciseIdentifier": "c:i",
14471b4c226SZixu Wang           "spelling": "unsigned int"
14571b4c226SZixu Wang         }
14671b4c226SZixu Wang       ],
14771b4c226SZixu Wang       "docComment": {
14871b4c226SZixu Wang         "lines": [
14971b4c226SZixu Wang           {
15071b4c226SZixu Wang             "range": {
15171b4c226SZixu Wang               "end": {
15271b4c226SZixu Wang                 "character": 22,
15371b4c226SZixu Wang                 "line": 1
15471b4c226SZixu Wang               },
15571b4c226SZixu Wang               "start": {
15671b4c226SZixu Wang                 "character": 5,
15771b4c226SZixu Wang                 "line": 1
15871b4c226SZixu Wang               }
15971b4c226SZixu Wang             },
16071b4c226SZixu Wang             "text": "Kinds of vehicles"
16171b4c226SZixu Wang           }
16271b4c226SZixu Wang         ]
16371b4c226SZixu Wang       },
16471b4c226SZixu Wang       "identifier": {
16571b4c226SZixu Wang         "interfaceLanguage": "c",
16671b4c226SZixu Wang         "precise": "c:@E@Vehicle"
16771b4c226SZixu Wang       },
16871b4c226SZixu Wang       "kind": {
16971b4c226SZixu Wang         "displayName": "Enumeration",
17071b4c226SZixu Wang         "identifier": "c.enum"
17171b4c226SZixu Wang       },
17271b4c226SZixu Wang       "location": {
17328d79314SDaniel Grumberg         "position": {
17471b4c226SZixu Wang           "character": 6,
17528d79314SDaniel Grumberg           "line": 2
17628d79314SDaniel Grumberg         },
17771b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
17871b4c226SZixu Wang       },
17971b4c226SZixu Wang       "names": {
18080ae3665SDaniel Grumberg         "navigator": [
18180ae3665SDaniel Grumberg           {
18280ae3665SDaniel Grumberg             "kind": "identifier",
18380ae3665SDaniel Grumberg             "spelling": "Vehicle"
18480ae3665SDaniel Grumberg           }
18580ae3665SDaniel Grumberg         ],
18671b4c226SZixu Wang         "subHeading": [
18771b4c226SZixu Wang           {
18871b4c226SZixu Wang             "kind": "identifier",
18971b4c226SZixu Wang             "spelling": "Vehicle"
19071b4c226SZixu Wang           }
19171b4c226SZixu Wang         ],
19271b4c226SZixu Wang         "title": "Vehicle"
19328d79314SDaniel Grumberg       },
19428d79314SDaniel Grumberg       "pathComponents": [
19528d79314SDaniel Grumberg         "Vehicle"
19628d79314SDaniel Grumberg       ]
19771b4c226SZixu Wang     },
19871b4c226SZixu Wang     {
19928d79314SDaniel Grumberg       "accessLevel": "public",
20071b4c226SZixu Wang       "declarationFragments": [
20171b4c226SZixu Wang         {
20271b4c226SZixu Wang           "kind": "identifier",
20371b4c226SZixu Wang           "spelling": "Bicycle"
20471b4c226SZixu Wang         }
20571b4c226SZixu Wang       ],
20671b4c226SZixu Wang       "identifier": {
20771b4c226SZixu Wang         "interfaceLanguage": "c",
20871b4c226SZixu Wang         "precise": "c:@E@Vehicle@Bicycle"
20971b4c226SZixu Wang       },
21071b4c226SZixu Wang       "kind": {
21171b4c226SZixu Wang         "displayName": "Enumeration Case",
21271b4c226SZixu Wang         "identifier": "c.enum.case"
21371b4c226SZixu Wang       },
21471b4c226SZixu Wang       "location": {
21528d79314SDaniel Grumberg         "position": {
21671b4c226SZixu Wang           "character": 3,
21728d79314SDaniel Grumberg           "line": 3
21828d79314SDaniel Grumberg         },
21971b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
22071b4c226SZixu Wang       },
22171b4c226SZixu Wang       "names": {
22280ae3665SDaniel Grumberg         "navigator": [
22380ae3665SDaniel Grumberg           {
22480ae3665SDaniel Grumberg             "kind": "identifier",
22580ae3665SDaniel Grumberg             "spelling": "Bicycle"
22680ae3665SDaniel Grumberg           }
22780ae3665SDaniel Grumberg         ],
22871b4c226SZixu Wang         "subHeading": [
22971b4c226SZixu Wang           {
23071b4c226SZixu Wang             "kind": "identifier",
23171b4c226SZixu Wang             "spelling": "Bicycle"
23271b4c226SZixu Wang           }
23371b4c226SZixu Wang         ],
23471b4c226SZixu Wang         "title": "Bicycle"
23528d79314SDaniel Grumberg       },
23628d79314SDaniel Grumberg       "pathComponents": [
23728d79314SDaniel Grumberg         "Vehicle",
23828d79314SDaniel Grumberg         "Bicycle"
23928d79314SDaniel Grumberg       ]
24071b4c226SZixu Wang     },
24171b4c226SZixu Wang     {
24228d79314SDaniel Grumberg       "accessLevel": "public",
24371b4c226SZixu Wang       "declarationFragments": [
24471b4c226SZixu Wang         {
24571b4c226SZixu Wang           "kind": "identifier",
24671b4c226SZixu Wang           "spelling": "Car"
24771b4c226SZixu Wang         }
24871b4c226SZixu Wang       ],
24971b4c226SZixu Wang       "identifier": {
25071b4c226SZixu Wang         "interfaceLanguage": "c",
25171b4c226SZixu Wang         "precise": "c:@E@Vehicle@Car"
25271b4c226SZixu Wang       },
25371b4c226SZixu Wang       "kind": {
25471b4c226SZixu Wang         "displayName": "Enumeration Case",
25571b4c226SZixu Wang         "identifier": "c.enum.case"
25671b4c226SZixu Wang       },
25771b4c226SZixu Wang       "location": {
25828d79314SDaniel Grumberg         "position": {
25971b4c226SZixu Wang           "character": 3,
26028d79314SDaniel Grumberg           "line": 4
26128d79314SDaniel Grumberg         },
26271b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
26371b4c226SZixu Wang       },
26471b4c226SZixu Wang       "names": {
26580ae3665SDaniel Grumberg         "navigator": [
26680ae3665SDaniel Grumberg           {
26780ae3665SDaniel Grumberg             "kind": "identifier",
26880ae3665SDaniel Grumberg             "spelling": "Car"
26980ae3665SDaniel Grumberg           }
27080ae3665SDaniel Grumberg         ],
27171b4c226SZixu Wang         "subHeading": [
27271b4c226SZixu Wang           {
27371b4c226SZixu Wang             "kind": "identifier",
27471b4c226SZixu Wang             "spelling": "Car"
27571b4c226SZixu Wang           }
27671b4c226SZixu Wang         ],
27771b4c226SZixu Wang         "title": "Car"
27828d79314SDaniel Grumberg       },
27928d79314SDaniel Grumberg       "pathComponents": [
28028d79314SDaniel Grumberg         "Vehicle",
28128d79314SDaniel Grumberg         "Car"
28228d79314SDaniel Grumberg       ]
28371b4c226SZixu Wang     },
28471b4c226SZixu Wang     {
28528d79314SDaniel Grumberg       "accessLevel": "public",
28671b4c226SZixu Wang       "declarationFragments": [
28771b4c226SZixu Wang         {
28871b4c226SZixu Wang           "kind": "identifier",
28971b4c226SZixu Wang           "spelling": "Train"
29071b4c226SZixu Wang         }
29171b4c226SZixu Wang       ],
29271b4c226SZixu Wang       "docComment": {
29371b4c226SZixu Wang         "lines": [
29471b4c226SZixu Wang           {
29571b4c226SZixu Wang             "range": {
29671b4c226SZixu Wang               "end": {
29771b4c226SZixu Wang                 "character": 45,
29871b4c226SZixu Wang                 "line": 5
29971b4c226SZixu Wang               },
30071b4c226SZixu Wang               "start": {
30171b4c226SZixu Wang                 "character": 15,
30271b4c226SZixu Wang                 "line": 5
30371b4c226SZixu Wang               }
30471b4c226SZixu Wang             },
30571b4c226SZixu Wang             "text": "Move this to the top! -Sheldon"
30671b4c226SZixu Wang           }
30771b4c226SZixu Wang         ]
30871b4c226SZixu Wang       },
30971b4c226SZixu Wang       "identifier": {
31071b4c226SZixu Wang         "interfaceLanguage": "c",
31171b4c226SZixu Wang         "precise": "c:@E@Vehicle@Train"
31271b4c226SZixu Wang       },
31371b4c226SZixu Wang       "kind": {
31471b4c226SZixu Wang         "displayName": "Enumeration Case",
31571b4c226SZixu Wang         "identifier": "c.enum.case"
31671b4c226SZixu Wang       },
31771b4c226SZixu Wang       "location": {
31828d79314SDaniel Grumberg         "position": {
31971b4c226SZixu Wang           "character": 3,
32028d79314SDaniel Grumberg           "line": 5
32128d79314SDaniel Grumberg         },
32271b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
32371b4c226SZixu Wang       },
32471b4c226SZixu Wang       "names": {
32580ae3665SDaniel Grumberg         "navigator": [
32680ae3665SDaniel Grumberg           {
32780ae3665SDaniel Grumberg             "kind": "identifier",
32880ae3665SDaniel Grumberg             "spelling": "Train"
32980ae3665SDaniel Grumberg           }
33080ae3665SDaniel Grumberg         ],
33171b4c226SZixu Wang         "subHeading": [
33271b4c226SZixu Wang           {
33371b4c226SZixu Wang             "kind": "identifier",
33471b4c226SZixu Wang             "spelling": "Train"
33571b4c226SZixu Wang           }
33671b4c226SZixu Wang         ],
33771b4c226SZixu Wang         "title": "Train"
33828d79314SDaniel Grumberg       },
33928d79314SDaniel Grumberg       "pathComponents": [
34028d79314SDaniel Grumberg         "Vehicle",
34128d79314SDaniel Grumberg         "Train"
34228d79314SDaniel Grumberg       ]
34371b4c226SZixu Wang     },
34471b4c226SZixu Wang     {
34528d79314SDaniel Grumberg       "accessLevel": "public",
34671b4c226SZixu Wang       "declarationFragments": [
34771b4c226SZixu Wang         {
34871b4c226SZixu Wang           "kind": "identifier",
34971b4c226SZixu Wang           "spelling": "Ship"
35071b4c226SZixu Wang         }
35171b4c226SZixu Wang       ],
35271b4c226SZixu Wang       "identifier": {
35371b4c226SZixu Wang         "interfaceLanguage": "c",
35471b4c226SZixu Wang         "precise": "c:@E@Vehicle@Ship"
35571b4c226SZixu Wang       },
35671b4c226SZixu Wang       "kind": {
35771b4c226SZixu Wang         "displayName": "Enumeration Case",
35871b4c226SZixu Wang         "identifier": "c.enum.case"
35971b4c226SZixu Wang       },
36071b4c226SZixu Wang       "location": {
36128d79314SDaniel Grumberg         "position": {
36271b4c226SZixu Wang           "character": 3,
36328d79314SDaniel Grumberg           "line": 6
36428d79314SDaniel Grumberg         },
36571b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
36671b4c226SZixu Wang       },
36771b4c226SZixu Wang       "names": {
36880ae3665SDaniel Grumberg         "navigator": [
36980ae3665SDaniel Grumberg           {
37080ae3665SDaniel Grumberg             "kind": "identifier",
37180ae3665SDaniel Grumberg             "spelling": "Ship"
37280ae3665SDaniel Grumberg           }
37380ae3665SDaniel Grumberg         ],
37471b4c226SZixu Wang         "subHeading": [
37571b4c226SZixu Wang           {
37671b4c226SZixu Wang             "kind": "identifier",
37771b4c226SZixu Wang             "spelling": "Ship"
37871b4c226SZixu Wang           }
37971b4c226SZixu Wang         ],
38071b4c226SZixu Wang         "title": "Ship"
38128d79314SDaniel Grumberg       },
38228d79314SDaniel Grumberg       "pathComponents": [
38328d79314SDaniel Grumberg         "Vehicle",
38428d79314SDaniel Grumberg         "Ship"
38528d79314SDaniel Grumberg       ]
38671b4c226SZixu Wang     },
38771b4c226SZixu Wang     {
38828d79314SDaniel Grumberg       "accessLevel": "public",
38971b4c226SZixu Wang       "declarationFragments": [
39071b4c226SZixu Wang         {
39171b4c226SZixu Wang           "kind": "identifier",
39271b4c226SZixu Wang           "spelling": "Airplane"
39371b4c226SZixu Wang         }
39471b4c226SZixu Wang       ],
39571b4c226SZixu Wang       "identifier": {
39671b4c226SZixu Wang         "interfaceLanguage": "c",
39771b4c226SZixu Wang         "precise": "c:@E@Vehicle@Airplane"
39871b4c226SZixu Wang       },
39971b4c226SZixu Wang       "kind": {
40071b4c226SZixu Wang         "displayName": "Enumeration Case",
40171b4c226SZixu Wang         "identifier": "c.enum.case"
40271b4c226SZixu Wang       },
40371b4c226SZixu Wang       "location": {
40428d79314SDaniel Grumberg         "position": {
40571b4c226SZixu Wang           "character": 3,
40628d79314SDaniel Grumberg           "line": 7
40728d79314SDaniel Grumberg         },
40871b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
40971b4c226SZixu Wang       },
41071b4c226SZixu Wang       "names": {
41180ae3665SDaniel Grumberg         "navigator": [
41280ae3665SDaniel Grumberg           {
41380ae3665SDaniel Grumberg             "kind": "identifier",
41480ae3665SDaniel Grumberg             "spelling": "Airplane"
41580ae3665SDaniel Grumberg           }
41680ae3665SDaniel Grumberg         ],
41771b4c226SZixu Wang         "subHeading": [
41871b4c226SZixu Wang           {
41971b4c226SZixu Wang             "kind": "identifier",
42071b4c226SZixu Wang             "spelling": "Airplane"
42171b4c226SZixu Wang           }
42271b4c226SZixu Wang         ],
42371b4c226SZixu Wang         "title": "Airplane"
42428d79314SDaniel Grumberg       },
42528d79314SDaniel Grumberg       "pathComponents": [
42628d79314SDaniel Grumberg         "Vehicle",
42728d79314SDaniel Grumberg         "Airplane"
42828d79314SDaniel Grumberg       ]
42971b4c226SZixu Wang     },
43071b4c226SZixu Wang     {
43128d79314SDaniel Grumberg       "accessLevel": "public",
43271b4c226SZixu Wang       "declarationFragments": [
43371b4c226SZixu Wang         {
43471b4c226SZixu Wang           "kind": "keyword",
43571b4c226SZixu Wang           "spelling": "enum"
43671b4c226SZixu Wang         },
43771b4c226SZixu Wang         {
43871b4c226SZixu Wang           "kind": "text",
43971b4c226SZixu Wang           "spelling": " "
44071b4c226SZixu Wang         },
44171b4c226SZixu Wang         {
44271b4c226SZixu Wang           "kind": "identifier",
44371b4c226SZixu Wang           "spelling": "Direction"
44471b4c226SZixu Wang         },
44571b4c226SZixu Wang         {
44671b4c226SZixu Wang           "kind": "text",
44771b4c226SZixu Wang           "spelling": ": "
44871b4c226SZixu Wang         },
44971b4c226SZixu Wang         {
45071b4c226SZixu Wang           "kind": "typeIdentifier",
45171b4c226SZixu Wang           "preciseIdentifier": "c:c",
45271b4c226SZixu Wang           "spelling": "unsigned char"
45371b4c226SZixu Wang         }
45471b4c226SZixu Wang       ],
45571b4c226SZixu Wang       "identifier": {
45671b4c226SZixu Wang         "interfaceLanguage": "c",
45771b4c226SZixu Wang         "precise": "c:@E@Direction"
45871b4c226SZixu Wang       },
45971b4c226SZixu Wang       "kind": {
46071b4c226SZixu Wang         "displayName": "Enumeration",
46171b4c226SZixu Wang         "identifier": "c.enum"
46271b4c226SZixu Wang       },
46371b4c226SZixu Wang       "location": {
46428d79314SDaniel Grumberg         "position": {
46571b4c226SZixu Wang           "character": 6,
46628d79314SDaniel Grumberg           "line": 10
46728d79314SDaniel Grumberg         },
46871b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
46971b4c226SZixu Wang       },
47071b4c226SZixu Wang       "names": {
47180ae3665SDaniel Grumberg         "navigator": [
47280ae3665SDaniel Grumberg           {
47380ae3665SDaniel Grumberg             "kind": "identifier",
47480ae3665SDaniel Grumberg             "spelling": "Direction"
47580ae3665SDaniel Grumberg           }
47680ae3665SDaniel Grumberg         ],
47771b4c226SZixu Wang         "subHeading": [
47871b4c226SZixu Wang           {
47971b4c226SZixu Wang             "kind": "identifier",
48071b4c226SZixu Wang             "spelling": "Direction"
48171b4c226SZixu Wang           }
48271b4c226SZixu Wang         ],
48371b4c226SZixu Wang         "title": "Direction"
48428d79314SDaniel Grumberg       },
48528d79314SDaniel Grumberg       "pathComponents": [
48628d79314SDaniel Grumberg         "Direction"
48728d79314SDaniel Grumberg       ]
48871b4c226SZixu Wang     },
48971b4c226SZixu Wang     {
49028d79314SDaniel Grumberg       "accessLevel": "public",
49171b4c226SZixu Wang       "declarationFragments": [
49271b4c226SZixu Wang         {
49371b4c226SZixu Wang           "kind": "identifier",
49471b4c226SZixu Wang           "spelling": "North"
49571b4c226SZixu Wang         }
49671b4c226SZixu Wang       ],
49771b4c226SZixu Wang       "identifier": {
49871b4c226SZixu Wang         "interfaceLanguage": "c",
49971b4c226SZixu Wang         "precise": "c:@E@Direction@North"
50071b4c226SZixu Wang       },
50171b4c226SZixu Wang       "kind": {
50271b4c226SZixu Wang         "displayName": "Enumeration Case",
50371b4c226SZixu Wang         "identifier": "c.enum.case"
50471b4c226SZixu Wang       },
50571b4c226SZixu Wang       "location": {
50628d79314SDaniel Grumberg         "position": {
50771b4c226SZixu Wang           "character": 3,
50828d79314SDaniel Grumberg           "line": 11
50928d79314SDaniel Grumberg         },
51071b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
51171b4c226SZixu Wang       },
51271b4c226SZixu Wang       "names": {
51380ae3665SDaniel Grumberg         "navigator": [
51480ae3665SDaniel Grumberg           {
51580ae3665SDaniel Grumberg             "kind": "identifier",
51680ae3665SDaniel Grumberg             "spelling": "North"
51780ae3665SDaniel Grumberg           }
51880ae3665SDaniel Grumberg         ],
51971b4c226SZixu Wang         "subHeading": [
52071b4c226SZixu Wang           {
52171b4c226SZixu Wang             "kind": "identifier",
52271b4c226SZixu Wang             "spelling": "North"
52371b4c226SZixu Wang           }
52471b4c226SZixu Wang         ],
52571b4c226SZixu Wang         "title": "North"
52628d79314SDaniel Grumberg       },
52728d79314SDaniel Grumberg       "pathComponents": [
52828d79314SDaniel Grumberg         "Direction",
52928d79314SDaniel Grumberg         "North"
53028d79314SDaniel Grumberg       ]
53171b4c226SZixu Wang     },
53271b4c226SZixu Wang     {
53328d79314SDaniel Grumberg       "accessLevel": "public",
53471b4c226SZixu Wang       "declarationFragments": [
53571b4c226SZixu Wang         {
53671b4c226SZixu Wang           "kind": "identifier",
53771b4c226SZixu Wang           "spelling": "East"
53871b4c226SZixu Wang         }
53971b4c226SZixu Wang       ],
54071b4c226SZixu Wang       "identifier": {
54171b4c226SZixu Wang         "interfaceLanguage": "c",
54271b4c226SZixu Wang         "precise": "c:@E@Direction@East"
54371b4c226SZixu Wang       },
54471b4c226SZixu Wang       "kind": {
54571b4c226SZixu Wang         "displayName": "Enumeration Case",
54671b4c226SZixu Wang         "identifier": "c.enum.case"
54771b4c226SZixu Wang       },
54871b4c226SZixu Wang       "location": {
54928d79314SDaniel Grumberg         "position": {
55071b4c226SZixu Wang           "character": 3,
55128d79314SDaniel Grumberg           "line": 12
55228d79314SDaniel Grumberg         },
55371b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
55471b4c226SZixu Wang       },
55571b4c226SZixu Wang       "names": {
55680ae3665SDaniel Grumberg         "navigator": [
55780ae3665SDaniel Grumberg           {
55880ae3665SDaniel Grumberg             "kind": "identifier",
55980ae3665SDaniel Grumberg             "spelling": "East"
56080ae3665SDaniel Grumberg           }
56180ae3665SDaniel Grumberg         ],
56271b4c226SZixu Wang         "subHeading": [
56371b4c226SZixu Wang           {
56471b4c226SZixu Wang             "kind": "identifier",
56571b4c226SZixu Wang             "spelling": "East"
56671b4c226SZixu Wang           }
56771b4c226SZixu Wang         ],
56871b4c226SZixu Wang         "title": "East"
56928d79314SDaniel Grumberg       },
57028d79314SDaniel Grumberg       "pathComponents": [
57128d79314SDaniel Grumberg         "Direction",
57228d79314SDaniel Grumberg         "East"
57328d79314SDaniel Grumberg       ]
57471b4c226SZixu Wang     },
57571b4c226SZixu Wang     {
57628d79314SDaniel Grumberg       "accessLevel": "public",
57771b4c226SZixu Wang       "declarationFragments": [
57871b4c226SZixu Wang         {
57971b4c226SZixu Wang           "kind": "identifier",
58071b4c226SZixu Wang           "spelling": "South"
58171b4c226SZixu Wang         }
58271b4c226SZixu Wang       ],
58371b4c226SZixu Wang       "identifier": {
58471b4c226SZixu Wang         "interfaceLanguage": "c",
58571b4c226SZixu Wang         "precise": "c:@E@Direction@South"
58671b4c226SZixu Wang       },
58771b4c226SZixu Wang       "kind": {
58871b4c226SZixu Wang         "displayName": "Enumeration Case",
58971b4c226SZixu Wang         "identifier": "c.enum.case"
59071b4c226SZixu Wang       },
59171b4c226SZixu Wang       "location": {
59228d79314SDaniel Grumberg         "position": {
59371b4c226SZixu Wang           "character": 3,
59428d79314SDaniel Grumberg           "line": 13
59528d79314SDaniel Grumberg         },
59671b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
59771b4c226SZixu Wang       },
59871b4c226SZixu Wang       "names": {
59980ae3665SDaniel Grumberg         "navigator": [
60080ae3665SDaniel Grumberg           {
60180ae3665SDaniel Grumberg             "kind": "identifier",
60280ae3665SDaniel Grumberg             "spelling": "South"
60380ae3665SDaniel Grumberg           }
60480ae3665SDaniel Grumberg         ],
60571b4c226SZixu Wang         "subHeading": [
60671b4c226SZixu Wang           {
60771b4c226SZixu Wang             "kind": "identifier",
60871b4c226SZixu Wang             "spelling": "South"
60971b4c226SZixu Wang           }
61071b4c226SZixu Wang         ],
61171b4c226SZixu Wang         "title": "South"
61228d79314SDaniel Grumberg       },
61328d79314SDaniel Grumberg       "pathComponents": [
61428d79314SDaniel Grumberg         "Direction",
61528d79314SDaniel Grumberg         "South"
61628d79314SDaniel Grumberg       ]
61771b4c226SZixu Wang     },
61871b4c226SZixu Wang     {
61928d79314SDaniel Grumberg       "accessLevel": "public",
62071b4c226SZixu Wang       "declarationFragments": [
62171b4c226SZixu Wang         {
62271b4c226SZixu Wang           "kind": "identifier",
62371b4c226SZixu Wang           "spelling": "West"
62471b4c226SZixu Wang         }
62571b4c226SZixu Wang       ],
62671b4c226SZixu Wang       "identifier": {
62771b4c226SZixu Wang         "interfaceLanguage": "c",
62871b4c226SZixu Wang         "precise": "c:@E@Direction@West"
62971b4c226SZixu Wang       },
63071b4c226SZixu Wang       "kind": {
63171b4c226SZixu Wang         "displayName": "Enumeration Case",
63271b4c226SZixu Wang         "identifier": "c.enum.case"
63371b4c226SZixu Wang       },
63471b4c226SZixu Wang       "location": {
63528d79314SDaniel Grumberg         "position": {
63671b4c226SZixu Wang           "character": 3,
63728d79314SDaniel Grumberg           "line": 14
63828d79314SDaniel Grumberg         },
63971b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
64071b4c226SZixu Wang       },
64171b4c226SZixu Wang       "names": {
64280ae3665SDaniel Grumberg         "navigator": [
64380ae3665SDaniel Grumberg           {
64480ae3665SDaniel Grumberg             "kind": "identifier",
64580ae3665SDaniel Grumberg             "spelling": "West"
64680ae3665SDaniel Grumberg           }
64780ae3665SDaniel Grumberg         ],
64871b4c226SZixu Wang         "subHeading": [
64971b4c226SZixu Wang           {
65071b4c226SZixu Wang             "kind": "identifier",
65171b4c226SZixu Wang             "spelling": "West"
65271b4c226SZixu Wang           }
65371b4c226SZixu Wang         ],
65471b4c226SZixu Wang         "title": "West"
65528d79314SDaniel Grumberg       },
65628d79314SDaniel Grumberg       "pathComponents": [
65728d79314SDaniel Grumberg         "Direction",
65828d79314SDaniel Grumberg         "West"
65928d79314SDaniel Grumberg       ]
6607443a504SDaniel Grumberg     },
6617443a504SDaniel Grumberg     {
6627443a504SDaniel Grumberg       "accessLevel": "public",
6637443a504SDaniel Grumberg       "declarationFragments": [
6647443a504SDaniel Grumberg         {
6657443a504SDaniel Grumberg           "kind": "keyword",
6667443a504SDaniel Grumberg           "spelling": "enum"
6677443a504SDaniel Grumberg         },
6687443a504SDaniel Grumberg         {
6697443a504SDaniel Grumberg           "kind": "text",
6707443a504SDaniel Grumberg           "spelling": ": "
6717443a504SDaniel Grumberg         },
6727443a504SDaniel Grumberg         {
6737443a504SDaniel Grumberg           "kind": "typeIdentifier",
6747443a504SDaniel Grumberg           "preciseIdentifier": "c:i",
6757443a504SDaniel Grumberg           "spelling": "unsigned int"
6767443a504SDaniel Grumberg         }
6777443a504SDaniel Grumberg       ],
6787443a504SDaniel Grumberg       "identifier": {
6797443a504SDaniel Grumberg         "interfaceLanguage": "c",
6807443a504SDaniel Grumberg         "precise": "c:@Ea@Constant"
6817443a504SDaniel Grumberg       },
6827443a504SDaniel Grumberg       "kind": {
6837443a504SDaniel Grumberg         "displayName": "Enumeration",
6847443a504SDaniel Grumberg         "identifier": "c.enum"
6857443a504SDaniel Grumberg       },
6867443a504SDaniel Grumberg       "location": {
6877443a504SDaniel Grumberg         "position": {
6887443a504SDaniel Grumberg           "character": 1,
6897443a504SDaniel Grumberg           "line": 17
6907443a504SDaniel Grumberg         },
6917443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
6927443a504SDaniel Grumberg       },
6937443a504SDaniel Grumberg       "names": {
6947443a504SDaniel Grumberg         "navigator": [
6957443a504SDaniel Grumberg           {
6967443a504SDaniel Grumberg             "kind": "identifier",
6977443a504SDaniel Grumberg             "spelling": "(anonymous)"
6987443a504SDaniel Grumberg           }
6997443a504SDaniel Grumberg         ],
7007443a504SDaniel Grumberg         "title": "(anonymous)"
7017443a504SDaniel Grumberg       },
7027443a504SDaniel Grumberg       "pathComponents": [
7037443a504SDaniel Grumberg         "(anonymous)"
7047443a504SDaniel Grumberg       ]
7057443a504SDaniel Grumberg     },
7067443a504SDaniel Grumberg     {
7077443a504SDaniel Grumberg       "accessLevel": "public",
7087443a504SDaniel Grumberg       "declarationFragments": [
7097443a504SDaniel Grumberg         {
7107443a504SDaniel Grumberg           "kind": "identifier",
7117443a504SDaniel Grumberg           "spelling": "Constant"
7127443a504SDaniel Grumberg         }
7137443a504SDaniel Grumberg       ],
7147443a504SDaniel Grumberg       "identifier": {
7157443a504SDaniel Grumberg         "interfaceLanguage": "c",
7167443a504SDaniel Grumberg         "precise": "c:@Ea@Constant@Constant"
7177443a504SDaniel Grumberg       },
7187443a504SDaniel Grumberg       "kind": {
7197443a504SDaniel Grumberg         "displayName": "Enumeration Case",
7207443a504SDaniel Grumberg         "identifier": "c.enum.case"
7217443a504SDaniel Grumberg       },
7227443a504SDaniel Grumberg       "location": {
7237443a504SDaniel Grumberg         "position": {
7247443a504SDaniel Grumberg           "character": 3,
7257443a504SDaniel Grumberg           "line": 18
7267443a504SDaniel Grumberg         },
7277443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
7287443a504SDaniel Grumberg       },
7297443a504SDaniel Grumberg       "names": {
7307443a504SDaniel Grumberg         "navigator": [
7317443a504SDaniel Grumberg           {
7327443a504SDaniel Grumberg             "kind": "identifier",
7337443a504SDaniel Grumberg             "spelling": "Constant"
7347443a504SDaniel Grumberg           }
7357443a504SDaniel Grumberg         ],
7367443a504SDaniel Grumberg         "subHeading": [
7377443a504SDaniel Grumberg           {
7387443a504SDaniel Grumberg             "kind": "identifier",
7397443a504SDaniel Grumberg             "spelling": "Constant"
7407443a504SDaniel Grumberg           }
7417443a504SDaniel Grumberg         ],
7427443a504SDaniel Grumberg         "title": "Constant"
7437443a504SDaniel Grumberg       },
7447443a504SDaniel Grumberg       "pathComponents": [
7457443a504SDaniel Grumberg         "(anonymous)",
7467443a504SDaniel Grumberg         "Constant"
7477443a504SDaniel Grumberg       ]
7487443a504SDaniel Grumberg     },
7497443a504SDaniel Grumberg     {
7507443a504SDaniel Grumberg       "accessLevel": "public",
7517443a504SDaniel Grumberg       "declarationFragments": [
7527443a504SDaniel Grumberg         {
7537443a504SDaniel Grumberg           "kind": "keyword",
7547443a504SDaniel Grumberg           "spelling": "enum"
7557443a504SDaniel Grumberg         },
7567443a504SDaniel Grumberg         {
7577443a504SDaniel Grumberg           "kind": "text",
7587443a504SDaniel Grumberg           "spelling": ": "
7597443a504SDaniel Grumberg         },
7607443a504SDaniel Grumberg         {
7617443a504SDaniel Grumberg           "kind": "typeIdentifier",
7627443a504SDaniel Grumberg           "preciseIdentifier": "c:i",
7637443a504SDaniel Grumberg           "spelling": "unsigned int"
7647443a504SDaniel Grumberg         }
7657443a504SDaniel Grumberg       ],
7667443a504SDaniel Grumberg       "identifier": {
7677443a504SDaniel Grumberg         "interfaceLanguage": "c",
7687443a504SDaniel Grumberg         "precise": "c:@Ea@OtherConstant"
7697443a504SDaniel Grumberg       },
7707443a504SDaniel Grumberg       "kind": {
7717443a504SDaniel Grumberg         "displayName": "Enumeration",
7727443a504SDaniel Grumberg         "identifier": "c.enum"
7737443a504SDaniel Grumberg       },
7747443a504SDaniel Grumberg       "location": {
7757443a504SDaniel Grumberg         "position": {
7767443a504SDaniel Grumberg           "character": 1,
7777443a504SDaniel Grumberg           "line": 21
7787443a504SDaniel Grumberg         },
7797443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
7807443a504SDaniel Grumberg       },
7817443a504SDaniel Grumberg       "names": {
7827443a504SDaniel Grumberg         "navigator": [
7837443a504SDaniel Grumberg           {
7847443a504SDaniel Grumberg             "kind": "identifier",
7857443a504SDaniel Grumberg             "spelling": "(anonymous)"
7867443a504SDaniel Grumberg           }
7877443a504SDaniel Grumberg         ],
7887443a504SDaniel Grumberg         "title": "(anonymous)"
7897443a504SDaniel Grumberg       },
7907443a504SDaniel Grumberg       "pathComponents": [
7917443a504SDaniel Grumberg         "(anonymous)"
7927443a504SDaniel Grumberg       ]
7937443a504SDaniel Grumberg     },
7947443a504SDaniel Grumberg     {
7957443a504SDaniel Grumberg       "accessLevel": "public",
7967443a504SDaniel Grumberg       "declarationFragments": [
7977443a504SDaniel Grumberg         {
7987443a504SDaniel Grumberg           "kind": "identifier",
7997443a504SDaniel Grumberg           "spelling": "OtherConstant"
8007443a504SDaniel Grumberg         }
8017443a504SDaniel Grumberg       ],
8027443a504SDaniel Grumberg       "identifier": {
8037443a504SDaniel Grumberg         "interfaceLanguage": "c",
8047443a504SDaniel Grumberg         "precise": "c:@Ea@OtherConstant@OtherConstant"
8057443a504SDaniel Grumberg       },
8067443a504SDaniel Grumberg       "kind": {
8077443a504SDaniel Grumberg         "displayName": "Enumeration Case",
8087443a504SDaniel Grumberg         "identifier": "c.enum.case"
8097443a504SDaniel Grumberg       },
8107443a504SDaniel Grumberg       "location": {
8117443a504SDaniel Grumberg         "position": {
8127443a504SDaniel Grumberg           "character": 3,
8137443a504SDaniel Grumberg           "line": 22
8147443a504SDaniel Grumberg         },
8157443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
8167443a504SDaniel Grumberg       },
8177443a504SDaniel Grumberg       "names": {
8187443a504SDaniel Grumberg         "navigator": [
8197443a504SDaniel Grumberg           {
8207443a504SDaniel Grumberg             "kind": "identifier",
8217443a504SDaniel Grumberg             "spelling": "OtherConstant"
8227443a504SDaniel Grumberg           }
8237443a504SDaniel Grumberg         ],
8247443a504SDaniel Grumberg         "subHeading": [
8257443a504SDaniel Grumberg           {
8267443a504SDaniel Grumberg             "kind": "identifier",
8277443a504SDaniel Grumberg             "spelling": "OtherConstant"
8287443a504SDaniel Grumberg           }
8297443a504SDaniel Grumberg         ],
8307443a504SDaniel Grumberg         "title": "OtherConstant"
8317443a504SDaniel Grumberg       },
8327443a504SDaniel Grumberg       "pathComponents": [
8337443a504SDaniel Grumberg         "(anonymous)",
8347443a504SDaniel Grumberg         "OtherConstant"
8357443a504SDaniel Grumberg       ]
83671b4c226SZixu Wang     }
83771b4c226SZixu Wang   ]
83871b4c226SZixu Wang }
839