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
571b4c226SZixu Wang // RUN: %clang -extract-api -target arm64-apple-macosx \
671b4c226SZixu Wang // RUN: %t/input.h -o %t/output.json | FileCheck -allow-empty %s
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 // CHECK-NOT: error:
1471b4c226SZixu Wang // CHECK-NOT: warning:
1571b4c226SZixu Wang 
1671b4c226SZixu Wang //--- input.h
1771b4c226SZixu Wang /// Kinds of vehicles
1871b4c226SZixu Wang enum Vehicle {
1971b4c226SZixu Wang   Bicycle,
2071b4c226SZixu Wang   Car,
2171b4c226SZixu Wang   Train, ///< Move this to the top! -Sheldon
2271b4c226SZixu Wang   Ship,
2371b4c226SZixu Wang   Airplane,
2471b4c226SZixu Wang };
2571b4c226SZixu Wang 
2671b4c226SZixu Wang enum Direction : unsigned char {
2771b4c226SZixu Wang   North = 0,
2871b4c226SZixu Wang   East,
2971b4c226SZixu Wang   South,
3071b4c226SZixu Wang   West
3171b4c226SZixu Wang };
3271b4c226SZixu Wang 
33*7443a504SDaniel Grumberg enum {
34*7443a504SDaniel Grumberg   Constant = 1
35*7443a504SDaniel Grumberg };
36*7443a504SDaniel Grumberg 
37*7443a504SDaniel Grumberg enum {
38*7443a504SDaniel Grumberg   OtherConstant = 2
39*7443a504SDaniel Grumberg };
40*7443a504SDaniel Grumberg 
4171b4c226SZixu Wang //--- reference.output.json.in
4271b4c226SZixu Wang {
4371b4c226SZixu Wang   "metadata": {
4471b4c226SZixu Wang     "formatVersion": {
4571b4c226SZixu Wang       "major": 0,
4671b4c226SZixu Wang       "minor": 5,
4771b4c226SZixu Wang       "patch": 3
4871b4c226SZixu Wang     },
4971b4c226SZixu Wang     "generator": "?"
5071b4c226SZixu Wang   },
5171b4c226SZixu Wang   "module": {
5271b4c226SZixu Wang     "name": "",
5371b4c226SZixu Wang     "platform": {
5471b4c226SZixu Wang       "architecture": "arm64",
5571b4c226SZixu Wang       "operatingSystem": {
5671b4c226SZixu Wang         "minimumVersion": {
5771b4c226SZixu Wang           "major": 11,
5871b4c226SZixu Wang           "minor": 0,
5971b4c226SZixu Wang           "patch": 0
6071b4c226SZixu Wang         },
6171b4c226SZixu Wang         "name": "macosx"
6271b4c226SZixu Wang       },
6371b4c226SZixu Wang       "vendor": "apple"
6471b4c226SZixu Wang     }
6571b4c226SZixu Wang   },
6628d79314SDaniel Grumberg   "relationships": [
6771b4c226SZixu Wang     {
6871b4c226SZixu Wang       "kind": "memberOf",
6971b4c226SZixu Wang       "source": "c:@E@Vehicle@Bicycle",
7071b4c226SZixu Wang       "target": "c:@E@Vehicle"
7171b4c226SZixu Wang     },
7271b4c226SZixu Wang     {
7371b4c226SZixu Wang       "kind": "memberOf",
7471b4c226SZixu Wang       "source": "c:@E@Vehicle@Car",
7571b4c226SZixu Wang       "target": "c:@E@Vehicle"
7671b4c226SZixu Wang     },
7771b4c226SZixu Wang     {
7871b4c226SZixu Wang       "kind": "memberOf",
7971b4c226SZixu Wang       "source": "c:@E@Vehicle@Train",
8071b4c226SZixu Wang       "target": "c:@E@Vehicle"
8171b4c226SZixu Wang     },
8271b4c226SZixu Wang     {
8371b4c226SZixu Wang       "kind": "memberOf",
8471b4c226SZixu Wang       "source": "c:@E@Vehicle@Ship",
8571b4c226SZixu Wang       "target": "c:@E@Vehicle"
8671b4c226SZixu Wang     },
8771b4c226SZixu Wang     {
8871b4c226SZixu Wang       "kind": "memberOf",
8971b4c226SZixu Wang       "source": "c:@E@Vehicle@Airplane",
9071b4c226SZixu Wang       "target": "c:@E@Vehicle"
9171b4c226SZixu Wang     },
9271b4c226SZixu Wang     {
9371b4c226SZixu Wang       "kind": "memberOf",
9471b4c226SZixu Wang       "source": "c:@E@Direction@North",
9571b4c226SZixu Wang       "target": "c:@E@Direction"
9671b4c226SZixu Wang     },
9771b4c226SZixu Wang     {
9871b4c226SZixu Wang       "kind": "memberOf",
9971b4c226SZixu Wang       "source": "c:@E@Direction@East",
10071b4c226SZixu Wang       "target": "c:@E@Direction"
10171b4c226SZixu Wang     },
10271b4c226SZixu Wang     {
10371b4c226SZixu Wang       "kind": "memberOf",
10471b4c226SZixu Wang       "source": "c:@E@Direction@South",
10571b4c226SZixu Wang       "target": "c:@E@Direction"
10671b4c226SZixu Wang     },
10771b4c226SZixu Wang     {
10871b4c226SZixu Wang       "kind": "memberOf",
10971b4c226SZixu Wang       "source": "c:@E@Direction@West",
11071b4c226SZixu Wang       "target": "c:@E@Direction"
111*7443a504SDaniel Grumberg     },
112*7443a504SDaniel Grumberg     {
113*7443a504SDaniel Grumberg       "kind": "memberOf",
114*7443a504SDaniel Grumberg       "source": "c:@Ea@Constant@Constant",
115*7443a504SDaniel Grumberg       "target": "c:@Ea@Constant"
116*7443a504SDaniel Grumberg     },
117*7443a504SDaniel Grumberg     {
118*7443a504SDaniel Grumberg       "kind": "memberOf",
119*7443a504SDaniel Grumberg       "source": "c:@Ea@OtherConstant@OtherConstant",
120*7443a504SDaniel Grumberg       "target": "c:@Ea@OtherConstant"
12171b4c226SZixu Wang     }
12271b4c226SZixu Wang   ],
12371b4c226SZixu Wang   "symbols": [
12471b4c226SZixu Wang     {
12528d79314SDaniel Grumberg       "accessLevel": "public",
12671b4c226SZixu Wang       "declarationFragments": [
12771b4c226SZixu Wang         {
12871b4c226SZixu Wang           "kind": "keyword",
12971b4c226SZixu Wang           "spelling": "enum"
13071b4c226SZixu Wang         },
13171b4c226SZixu Wang         {
13271b4c226SZixu Wang           "kind": "text",
13371b4c226SZixu Wang           "spelling": " "
13471b4c226SZixu Wang         },
13571b4c226SZixu Wang         {
13671b4c226SZixu Wang           "kind": "identifier",
13771b4c226SZixu Wang           "spelling": "Vehicle"
13871b4c226SZixu Wang         },
13971b4c226SZixu Wang         {
14071b4c226SZixu Wang           "kind": "text",
14171b4c226SZixu Wang           "spelling": ": "
14271b4c226SZixu Wang         },
14371b4c226SZixu Wang         {
14471b4c226SZixu Wang           "kind": "typeIdentifier",
14571b4c226SZixu Wang           "preciseIdentifier": "c:i",
14671b4c226SZixu Wang           "spelling": "unsigned int"
14771b4c226SZixu Wang         }
14871b4c226SZixu Wang       ],
14971b4c226SZixu Wang       "docComment": {
15071b4c226SZixu Wang         "lines": [
15171b4c226SZixu Wang           {
15271b4c226SZixu Wang             "range": {
15371b4c226SZixu Wang               "end": {
15471b4c226SZixu Wang                 "character": 22,
15571b4c226SZixu Wang                 "line": 1
15671b4c226SZixu Wang               },
15771b4c226SZixu Wang               "start": {
15871b4c226SZixu Wang                 "character": 5,
15971b4c226SZixu Wang                 "line": 1
16071b4c226SZixu Wang               }
16171b4c226SZixu Wang             },
16271b4c226SZixu Wang             "text": "Kinds of vehicles"
16371b4c226SZixu Wang           }
16471b4c226SZixu Wang         ]
16571b4c226SZixu Wang       },
16671b4c226SZixu Wang       "identifier": {
16771b4c226SZixu Wang         "interfaceLanguage": "c",
16871b4c226SZixu Wang         "precise": "c:@E@Vehicle"
16971b4c226SZixu Wang       },
17071b4c226SZixu Wang       "kind": {
17171b4c226SZixu Wang         "displayName": "Enumeration",
17271b4c226SZixu Wang         "identifier": "c.enum"
17371b4c226SZixu Wang       },
17471b4c226SZixu Wang       "location": {
17528d79314SDaniel Grumberg         "position": {
17671b4c226SZixu Wang           "character": 6,
17728d79314SDaniel Grumberg           "line": 2
17828d79314SDaniel Grumberg         },
17971b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
18071b4c226SZixu Wang       },
18171b4c226SZixu Wang       "names": {
18280ae3665SDaniel Grumberg         "navigator": [
18380ae3665SDaniel Grumberg           {
18480ae3665SDaniel Grumberg             "kind": "identifier",
18580ae3665SDaniel Grumberg             "spelling": "Vehicle"
18680ae3665SDaniel Grumberg           }
18780ae3665SDaniel Grumberg         ],
18871b4c226SZixu Wang         "subHeading": [
18971b4c226SZixu Wang           {
19071b4c226SZixu Wang             "kind": "identifier",
19171b4c226SZixu Wang             "spelling": "Vehicle"
19271b4c226SZixu Wang           }
19371b4c226SZixu Wang         ],
19471b4c226SZixu Wang         "title": "Vehicle"
19528d79314SDaniel Grumberg       },
19628d79314SDaniel Grumberg       "pathComponents": [
19728d79314SDaniel Grumberg         "Vehicle"
19828d79314SDaniel Grumberg       ]
19971b4c226SZixu Wang     },
20071b4c226SZixu Wang     {
20128d79314SDaniel Grumberg       "accessLevel": "public",
20271b4c226SZixu Wang       "declarationFragments": [
20371b4c226SZixu Wang         {
20471b4c226SZixu Wang           "kind": "identifier",
20571b4c226SZixu Wang           "spelling": "Bicycle"
20671b4c226SZixu Wang         }
20771b4c226SZixu Wang       ],
20871b4c226SZixu Wang       "identifier": {
20971b4c226SZixu Wang         "interfaceLanguage": "c",
21071b4c226SZixu Wang         "precise": "c:@E@Vehicle@Bicycle"
21171b4c226SZixu Wang       },
21271b4c226SZixu Wang       "kind": {
21371b4c226SZixu Wang         "displayName": "Enumeration Case",
21471b4c226SZixu Wang         "identifier": "c.enum.case"
21571b4c226SZixu Wang       },
21671b4c226SZixu Wang       "location": {
21728d79314SDaniel Grumberg         "position": {
21871b4c226SZixu Wang           "character": 3,
21928d79314SDaniel Grumberg           "line": 3
22028d79314SDaniel Grumberg         },
22171b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
22271b4c226SZixu Wang       },
22371b4c226SZixu Wang       "names": {
22480ae3665SDaniel Grumberg         "navigator": [
22580ae3665SDaniel Grumberg           {
22680ae3665SDaniel Grumberg             "kind": "identifier",
22780ae3665SDaniel Grumberg             "spelling": "Bicycle"
22880ae3665SDaniel Grumberg           }
22980ae3665SDaniel Grumberg         ],
23071b4c226SZixu Wang         "subHeading": [
23171b4c226SZixu Wang           {
23271b4c226SZixu Wang             "kind": "identifier",
23371b4c226SZixu Wang             "spelling": "Bicycle"
23471b4c226SZixu Wang           }
23571b4c226SZixu Wang         ],
23671b4c226SZixu Wang         "title": "Bicycle"
23728d79314SDaniel Grumberg       },
23828d79314SDaniel Grumberg       "pathComponents": [
23928d79314SDaniel Grumberg         "Vehicle",
24028d79314SDaniel Grumberg         "Bicycle"
24128d79314SDaniel Grumberg       ]
24271b4c226SZixu Wang     },
24371b4c226SZixu Wang     {
24428d79314SDaniel Grumberg       "accessLevel": "public",
24571b4c226SZixu Wang       "declarationFragments": [
24671b4c226SZixu Wang         {
24771b4c226SZixu Wang           "kind": "identifier",
24871b4c226SZixu Wang           "spelling": "Car"
24971b4c226SZixu Wang         }
25071b4c226SZixu Wang       ],
25171b4c226SZixu Wang       "identifier": {
25271b4c226SZixu Wang         "interfaceLanguage": "c",
25371b4c226SZixu Wang         "precise": "c:@E@Vehicle@Car"
25471b4c226SZixu Wang       },
25571b4c226SZixu Wang       "kind": {
25671b4c226SZixu Wang         "displayName": "Enumeration Case",
25771b4c226SZixu Wang         "identifier": "c.enum.case"
25871b4c226SZixu Wang       },
25971b4c226SZixu Wang       "location": {
26028d79314SDaniel Grumberg         "position": {
26171b4c226SZixu Wang           "character": 3,
26228d79314SDaniel Grumberg           "line": 4
26328d79314SDaniel Grumberg         },
26471b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
26571b4c226SZixu Wang       },
26671b4c226SZixu Wang       "names": {
26780ae3665SDaniel Grumberg         "navigator": [
26880ae3665SDaniel Grumberg           {
26980ae3665SDaniel Grumberg             "kind": "identifier",
27080ae3665SDaniel Grumberg             "spelling": "Car"
27180ae3665SDaniel Grumberg           }
27280ae3665SDaniel Grumberg         ],
27371b4c226SZixu Wang         "subHeading": [
27471b4c226SZixu Wang           {
27571b4c226SZixu Wang             "kind": "identifier",
27671b4c226SZixu Wang             "spelling": "Car"
27771b4c226SZixu Wang           }
27871b4c226SZixu Wang         ],
27971b4c226SZixu Wang         "title": "Car"
28028d79314SDaniel Grumberg       },
28128d79314SDaniel Grumberg       "pathComponents": [
28228d79314SDaniel Grumberg         "Vehicle",
28328d79314SDaniel Grumberg         "Car"
28428d79314SDaniel Grumberg       ]
28571b4c226SZixu Wang     },
28671b4c226SZixu Wang     {
28728d79314SDaniel Grumberg       "accessLevel": "public",
28871b4c226SZixu Wang       "declarationFragments": [
28971b4c226SZixu Wang         {
29071b4c226SZixu Wang           "kind": "identifier",
29171b4c226SZixu Wang           "spelling": "Train"
29271b4c226SZixu Wang         }
29371b4c226SZixu Wang       ],
29471b4c226SZixu Wang       "docComment": {
29571b4c226SZixu Wang         "lines": [
29671b4c226SZixu Wang           {
29771b4c226SZixu Wang             "range": {
29871b4c226SZixu Wang               "end": {
29971b4c226SZixu Wang                 "character": 45,
30071b4c226SZixu Wang                 "line": 5
30171b4c226SZixu Wang               },
30271b4c226SZixu Wang               "start": {
30371b4c226SZixu Wang                 "character": 15,
30471b4c226SZixu Wang                 "line": 5
30571b4c226SZixu Wang               }
30671b4c226SZixu Wang             },
30771b4c226SZixu Wang             "text": "Move this to the top! -Sheldon"
30871b4c226SZixu Wang           }
30971b4c226SZixu Wang         ]
31071b4c226SZixu Wang       },
31171b4c226SZixu Wang       "identifier": {
31271b4c226SZixu Wang         "interfaceLanguage": "c",
31371b4c226SZixu Wang         "precise": "c:@E@Vehicle@Train"
31471b4c226SZixu Wang       },
31571b4c226SZixu Wang       "kind": {
31671b4c226SZixu Wang         "displayName": "Enumeration Case",
31771b4c226SZixu Wang         "identifier": "c.enum.case"
31871b4c226SZixu Wang       },
31971b4c226SZixu Wang       "location": {
32028d79314SDaniel Grumberg         "position": {
32171b4c226SZixu Wang           "character": 3,
32228d79314SDaniel Grumberg           "line": 5
32328d79314SDaniel Grumberg         },
32471b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
32571b4c226SZixu Wang       },
32671b4c226SZixu Wang       "names": {
32780ae3665SDaniel Grumberg         "navigator": [
32880ae3665SDaniel Grumberg           {
32980ae3665SDaniel Grumberg             "kind": "identifier",
33080ae3665SDaniel Grumberg             "spelling": "Train"
33180ae3665SDaniel Grumberg           }
33280ae3665SDaniel Grumberg         ],
33371b4c226SZixu Wang         "subHeading": [
33471b4c226SZixu Wang           {
33571b4c226SZixu Wang             "kind": "identifier",
33671b4c226SZixu Wang             "spelling": "Train"
33771b4c226SZixu Wang           }
33871b4c226SZixu Wang         ],
33971b4c226SZixu Wang         "title": "Train"
34028d79314SDaniel Grumberg       },
34128d79314SDaniel Grumberg       "pathComponents": [
34228d79314SDaniel Grumberg         "Vehicle",
34328d79314SDaniel Grumberg         "Train"
34428d79314SDaniel Grumberg       ]
34571b4c226SZixu Wang     },
34671b4c226SZixu Wang     {
34728d79314SDaniel Grumberg       "accessLevel": "public",
34871b4c226SZixu Wang       "declarationFragments": [
34971b4c226SZixu Wang         {
35071b4c226SZixu Wang           "kind": "identifier",
35171b4c226SZixu Wang           "spelling": "Ship"
35271b4c226SZixu Wang         }
35371b4c226SZixu Wang       ],
35471b4c226SZixu Wang       "identifier": {
35571b4c226SZixu Wang         "interfaceLanguage": "c",
35671b4c226SZixu Wang         "precise": "c:@E@Vehicle@Ship"
35771b4c226SZixu Wang       },
35871b4c226SZixu Wang       "kind": {
35971b4c226SZixu Wang         "displayName": "Enumeration Case",
36071b4c226SZixu Wang         "identifier": "c.enum.case"
36171b4c226SZixu Wang       },
36271b4c226SZixu Wang       "location": {
36328d79314SDaniel Grumberg         "position": {
36471b4c226SZixu Wang           "character": 3,
36528d79314SDaniel Grumberg           "line": 6
36628d79314SDaniel Grumberg         },
36771b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
36871b4c226SZixu Wang       },
36971b4c226SZixu Wang       "names": {
37080ae3665SDaniel Grumberg         "navigator": [
37180ae3665SDaniel Grumberg           {
37280ae3665SDaniel Grumberg             "kind": "identifier",
37380ae3665SDaniel Grumberg             "spelling": "Ship"
37480ae3665SDaniel Grumberg           }
37580ae3665SDaniel Grumberg         ],
37671b4c226SZixu Wang         "subHeading": [
37771b4c226SZixu Wang           {
37871b4c226SZixu Wang             "kind": "identifier",
37971b4c226SZixu Wang             "spelling": "Ship"
38071b4c226SZixu Wang           }
38171b4c226SZixu Wang         ],
38271b4c226SZixu Wang         "title": "Ship"
38328d79314SDaniel Grumberg       },
38428d79314SDaniel Grumberg       "pathComponents": [
38528d79314SDaniel Grumberg         "Vehicle",
38628d79314SDaniel Grumberg         "Ship"
38728d79314SDaniel Grumberg       ]
38871b4c226SZixu Wang     },
38971b4c226SZixu Wang     {
39028d79314SDaniel Grumberg       "accessLevel": "public",
39171b4c226SZixu Wang       "declarationFragments": [
39271b4c226SZixu Wang         {
39371b4c226SZixu Wang           "kind": "identifier",
39471b4c226SZixu Wang           "spelling": "Airplane"
39571b4c226SZixu Wang         }
39671b4c226SZixu Wang       ],
39771b4c226SZixu Wang       "identifier": {
39871b4c226SZixu Wang         "interfaceLanguage": "c",
39971b4c226SZixu Wang         "precise": "c:@E@Vehicle@Airplane"
40071b4c226SZixu Wang       },
40171b4c226SZixu Wang       "kind": {
40271b4c226SZixu Wang         "displayName": "Enumeration Case",
40371b4c226SZixu Wang         "identifier": "c.enum.case"
40471b4c226SZixu Wang       },
40571b4c226SZixu Wang       "location": {
40628d79314SDaniel Grumberg         "position": {
40771b4c226SZixu Wang           "character": 3,
40828d79314SDaniel Grumberg           "line": 7
40928d79314SDaniel Grumberg         },
41071b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
41171b4c226SZixu Wang       },
41271b4c226SZixu Wang       "names": {
41380ae3665SDaniel Grumberg         "navigator": [
41480ae3665SDaniel Grumberg           {
41580ae3665SDaniel Grumberg             "kind": "identifier",
41680ae3665SDaniel Grumberg             "spelling": "Airplane"
41780ae3665SDaniel Grumberg           }
41880ae3665SDaniel Grumberg         ],
41971b4c226SZixu Wang         "subHeading": [
42071b4c226SZixu Wang           {
42171b4c226SZixu Wang             "kind": "identifier",
42271b4c226SZixu Wang             "spelling": "Airplane"
42371b4c226SZixu Wang           }
42471b4c226SZixu Wang         ],
42571b4c226SZixu Wang         "title": "Airplane"
42628d79314SDaniel Grumberg       },
42728d79314SDaniel Grumberg       "pathComponents": [
42828d79314SDaniel Grumberg         "Vehicle",
42928d79314SDaniel Grumberg         "Airplane"
43028d79314SDaniel Grumberg       ]
43171b4c226SZixu Wang     },
43271b4c226SZixu Wang     {
43328d79314SDaniel Grumberg       "accessLevel": "public",
43471b4c226SZixu Wang       "declarationFragments": [
43571b4c226SZixu Wang         {
43671b4c226SZixu Wang           "kind": "keyword",
43771b4c226SZixu Wang           "spelling": "enum"
43871b4c226SZixu Wang         },
43971b4c226SZixu Wang         {
44071b4c226SZixu Wang           "kind": "text",
44171b4c226SZixu Wang           "spelling": " "
44271b4c226SZixu Wang         },
44371b4c226SZixu Wang         {
44471b4c226SZixu Wang           "kind": "identifier",
44571b4c226SZixu Wang           "spelling": "Direction"
44671b4c226SZixu Wang         },
44771b4c226SZixu Wang         {
44871b4c226SZixu Wang           "kind": "text",
44971b4c226SZixu Wang           "spelling": ": "
45071b4c226SZixu Wang         },
45171b4c226SZixu Wang         {
45271b4c226SZixu Wang           "kind": "typeIdentifier",
45371b4c226SZixu Wang           "preciseIdentifier": "c:c",
45471b4c226SZixu Wang           "spelling": "unsigned char"
45571b4c226SZixu Wang         }
45671b4c226SZixu Wang       ],
45771b4c226SZixu Wang       "identifier": {
45871b4c226SZixu Wang         "interfaceLanguage": "c",
45971b4c226SZixu Wang         "precise": "c:@E@Direction"
46071b4c226SZixu Wang       },
46171b4c226SZixu Wang       "kind": {
46271b4c226SZixu Wang         "displayName": "Enumeration",
46371b4c226SZixu Wang         "identifier": "c.enum"
46471b4c226SZixu Wang       },
46571b4c226SZixu Wang       "location": {
46628d79314SDaniel Grumberg         "position": {
46771b4c226SZixu Wang           "character": 6,
46828d79314SDaniel Grumberg           "line": 10
46928d79314SDaniel Grumberg         },
47071b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
47171b4c226SZixu Wang       },
47271b4c226SZixu Wang       "names": {
47380ae3665SDaniel Grumberg         "navigator": [
47480ae3665SDaniel Grumberg           {
47580ae3665SDaniel Grumberg             "kind": "identifier",
47680ae3665SDaniel Grumberg             "spelling": "Direction"
47780ae3665SDaniel Grumberg           }
47880ae3665SDaniel Grumberg         ],
47971b4c226SZixu Wang         "subHeading": [
48071b4c226SZixu Wang           {
48171b4c226SZixu Wang             "kind": "identifier",
48271b4c226SZixu Wang             "spelling": "Direction"
48371b4c226SZixu Wang           }
48471b4c226SZixu Wang         ],
48571b4c226SZixu Wang         "title": "Direction"
48628d79314SDaniel Grumberg       },
48728d79314SDaniel Grumberg       "pathComponents": [
48828d79314SDaniel Grumberg         "Direction"
48928d79314SDaniel Grumberg       ]
49071b4c226SZixu Wang     },
49171b4c226SZixu Wang     {
49228d79314SDaniel Grumberg       "accessLevel": "public",
49371b4c226SZixu Wang       "declarationFragments": [
49471b4c226SZixu Wang         {
49571b4c226SZixu Wang           "kind": "identifier",
49671b4c226SZixu Wang           "spelling": "North"
49771b4c226SZixu Wang         }
49871b4c226SZixu Wang       ],
49971b4c226SZixu Wang       "identifier": {
50071b4c226SZixu Wang         "interfaceLanguage": "c",
50171b4c226SZixu Wang         "precise": "c:@E@Direction@North"
50271b4c226SZixu Wang       },
50371b4c226SZixu Wang       "kind": {
50471b4c226SZixu Wang         "displayName": "Enumeration Case",
50571b4c226SZixu Wang         "identifier": "c.enum.case"
50671b4c226SZixu Wang       },
50771b4c226SZixu Wang       "location": {
50828d79314SDaniel Grumberg         "position": {
50971b4c226SZixu Wang           "character": 3,
51028d79314SDaniel Grumberg           "line": 11
51128d79314SDaniel Grumberg         },
51271b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
51371b4c226SZixu Wang       },
51471b4c226SZixu Wang       "names": {
51580ae3665SDaniel Grumberg         "navigator": [
51680ae3665SDaniel Grumberg           {
51780ae3665SDaniel Grumberg             "kind": "identifier",
51880ae3665SDaniel Grumberg             "spelling": "North"
51980ae3665SDaniel Grumberg           }
52080ae3665SDaniel Grumberg         ],
52171b4c226SZixu Wang         "subHeading": [
52271b4c226SZixu Wang           {
52371b4c226SZixu Wang             "kind": "identifier",
52471b4c226SZixu Wang             "spelling": "North"
52571b4c226SZixu Wang           }
52671b4c226SZixu Wang         ],
52771b4c226SZixu Wang         "title": "North"
52828d79314SDaniel Grumberg       },
52928d79314SDaniel Grumberg       "pathComponents": [
53028d79314SDaniel Grumberg         "Direction",
53128d79314SDaniel Grumberg         "North"
53228d79314SDaniel Grumberg       ]
53371b4c226SZixu Wang     },
53471b4c226SZixu Wang     {
53528d79314SDaniel Grumberg       "accessLevel": "public",
53671b4c226SZixu Wang       "declarationFragments": [
53771b4c226SZixu Wang         {
53871b4c226SZixu Wang           "kind": "identifier",
53971b4c226SZixu Wang           "spelling": "East"
54071b4c226SZixu Wang         }
54171b4c226SZixu Wang       ],
54271b4c226SZixu Wang       "identifier": {
54371b4c226SZixu Wang         "interfaceLanguage": "c",
54471b4c226SZixu Wang         "precise": "c:@E@Direction@East"
54571b4c226SZixu Wang       },
54671b4c226SZixu Wang       "kind": {
54771b4c226SZixu Wang         "displayName": "Enumeration Case",
54871b4c226SZixu Wang         "identifier": "c.enum.case"
54971b4c226SZixu Wang       },
55071b4c226SZixu Wang       "location": {
55128d79314SDaniel Grumberg         "position": {
55271b4c226SZixu Wang           "character": 3,
55328d79314SDaniel Grumberg           "line": 12
55428d79314SDaniel Grumberg         },
55571b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
55671b4c226SZixu Wang       },
55771b4c226SZixu Wang       "names": {
55880ae3665SDaniel Grumberg         "navigator": [
55980ae3665SDaniel Grumberg           {
56080ae3665SDaniel Grumberg             "kind": "identifier",
56180ae3665SDaniel Grumberg             "spelling": "East"
56280ae3665SDaniel Grumberg           }
56380ae3665SDaniel Grumberg         ],
56471b4c226SZixu Wang         "subHeading": [
56571b4c226SZixu Wang           {
56671b4c226SZixu Wang             "kind": "identifier",
56771b4c226SZixu Wang             "spelling": "East"
56871b4c226SZixu Wang           }
56971b4c226SZixu Wang         ],
57071b4c226SZixu Wang         "title": "East"
57128d79314SDaniel Grumberg       },
57228d79314SDaniel Grumberg       "pathComponents": [
57328d79314SDaniel Grumberg         "Direction",
57428d79314SDaniel Grumberg         "East"
57528d79314SDaniel Grumberg       ]
57671b4c226SZixu Wang     },
57771b4c226SZixu Wang     {
57828d79314SDaniel Grumberg       "accessLevel": "public",
57971b4c226SZixu Wang       "declarationFragments": [
58071b4c226SZixu Wang         {
58171b4c226SZixu Wang           "kind": "identifier",
58271b4c226SZixu Wang           "spelling": "South"
58371b4c226SZixu Wang         }
58471b4c226SZixu Wang       ],
58571b4c226SZixu Wang       "identifier": {
58671b4c226SZixu Wang         "interfaceLanguage": "c",
58771b4c226SZixu Wang         "precise": "c:@E@Direction@South"
58871b4c226SZixu Wang       },
58971b4c226SZixu Wang       "kind": {
59071b4c226SZixu Wang         "displayName": "Enumeration Case",
59171b4c226SZixu Wang         "identifier": "c.enum.case"
59271b4c226SZixu Wang       },
59371b4c226SZixu Wang       "location": {
59428d79314SDaniel Grumberg         "position": {
59571b4c226SZixu Wang           "character": 3,
59628d79314SDaniel Grumberg           "line": 13
59728d79314SDaniel Grumberg         },
59871b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
59971b4c226SZixu Wang       },
60071b4c226SZixu Wang       "names": {
60180ae3665SDaniel Grumberg         "navigator": [
60280ae3665SDaniel Grumberg           {
60380ae3665SDaniel Grumberg             "kind": "identifier",
60480ae3665SDaniel Grumberg             "spelling": "South"
60580ae3665SDaniel Grumberg           }
60680ae3665SDaniel Grumberg         ],
60771b4c226SZixu Wang         "subHeading": [
60871b4c226SZixu Wang           {
60971b4c226SZixu Wang             "kind": "identifier",
61071b4c226SZixu Wang             "spelling": "South"
61171b4c226SZixu Wang           }
61271b4c226SZixu Wang         ],
61371b4c226SZixu Wang         "title": "South"
61428d79314SDaniel Grumberg       },
61528d79314SDaniel Grumberg       "pathComponents": [
61628d79314SDaniel Grumberg         "Direction",
61728d79314SDaniel Grumberg         "South"
61828d79314SDaniel Grumberg       ]
61971b4c226SZixu Wang     },
62071b4c226SZixu Wang     {
62128d79314SDaniel Grumberg       "accessLevel": "public",
62271b4c226SZixu Wang       "declarationFragments": [
62371b4c226SZixu Wang         {
62471b4c226SZixu Wang           "kind": "identifier",
62571b4c226SZixu Wang           "spelling": "West"
62671b4c226SZixu Wang         }
62771b4c226SZixu Wang       ],
62871b4c226SZixu Wang       "identifier": {
62971b4c226SZixu Wang         "interfaceLanguage": "c",
63071b4c226SZixu Wang         "precise": "c:@E@Direction@West"
63171b4c226SZixu Wang       },
63271b4c226SZixu Wang       "kind": {
63371b4c226SZixu Wang         "displayName": "Enumeration Case",
63471b4c226SZixu Wang         "identifier": "c.enum.case"
63571b4c226SZixu Wang       },
63671b4c226SZixu Wang       "location": {
63728d79314SDaniel Grumberg         "position": {
63871b4c226SZixu Wang           "character": 3,
63928d79314SDaniel Grumberg           "line": 14
64028d79314SDaniel Grumberg         },
64171b4c226SZixu Wang         "uri": "file://INPUT_DIR/input.h"
64271b4c226SZixu Wang       },
64371b4c226SZixu Wang       "names": {
64480ae3665SDaniel Grumberg         "navigator": [
64580ae3665SDaniel Grumberg           {
64680ae3665SDaniel Grumberg             "kind": "identifier",
64780ae3665SDaniel Grumberg             "spelling": "West"
64880ae3665SDaniel Grumberg           }
64980ae3665SDaniel Grumberg         ],
65071b4c226SZixu Wang         "subHeading": [
65171b4c226SZixu Wang           {
65271b4c226SZixu Wang             "kind": "identifier",
65371b4c226SZixu Wang             "spelling": "West"
65471b4c226SZixu Wang           }
65571b4c226SZixu Wang         ],
65671b4c226SZixu Wang         "title": "West"
65728d79314SDaniel Grumberg       },
65828d79314SDaniel Grumberg       "pathComponents": [
65928d79314SDaniel Grumberg         "Direction",
66028d79314SDaniel Grumberg         "West"
66128d79314SDaniel Grumberg       ]
662*7443a504SDaniel Grumberg     },
663*7443a504SDaniel Grumberg     {
664*7443a504SDaniel Grumberg       "accessLevel": "public",
665*7443a504SDaniel Grumberg       "declarationFragments": [
666*7443a504SDaniel Grumberg         {
667*7443a504SDaniel Grumberg           "kind": "keyword",
668*7443a504SDaniel Grumberg           "spelling": "enum"
669*7443a504SDaniel Grumberg         },
670*7443a504SDaniel Grumberg         {
671*7443a504SDaniel Grumberg           "kind": "text",
672*7443a504SDaniel Grumberg           "spelling": ": "
673*7443a504SDaniel Grumberg         },
674*7443a504SDaniel Grumberg         {
675*7443a504SDaniel Grumberg           "kind": "typeIdentifier",
676*7443a504SDaniel Grumberg           "preciseIdentifier": "c:i",
677*7443a504SDaniel Grumberg           "spelling": "unsigned int"
678*7443a504SDaniel Grumberg         }
679*7443a504SDaniel Grumberg       ],
680*7443a504SDaniel Grumberg       "identifier": {
681*7443a504SDaniel Grumberg         "interfaceLanguage": "c",
682*7443a504SDaniel Grumberg         "precise": "c:@Ea@Constant"
683*7443a504SDaniel Grumberg       },
684*7443a504SDaniel Grumberg       "kind": {
685*7443a504SDaniel Grumberg         "displayName": "Enumeration",
686*7443a504SDaniel Grumberg         "identifier": "c.enum"
687*7443a504SDaniel Grumberg       },
688*7443a504SDaniel Grumberg       "location": {
689*7443a504SDaniel Grumberg         "position": {
690*7443a504SDaniel Grumberg           "character": 1,
691*7443a504SDaniel Grumberg           "line": 17
692*7443a504SDaniel Grumberg         },
693*7443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
694*7443a504SDaniel Grumberg       },
695*7443a504SDaniel Grumberg       "names": {
696*7443a504SDaniel Grumberg         "navigator": [
697*7443a504SDaniel Grumberg           {
698*7443a504SDaniel Grumberg             "kind": "identifier",
699*7443a504SDaniel Grumberg             "spelling": "(anonymous)"
700*7443a504SDaniel Grumberg           }
701*7443a504SDaniel Grumberg         ],
702*7443a504SDaniel Grumberg         "title": "(anonymous)"
703*7443a504SDaniel Grumberg       },
704*7443a504SDaniel Grumberg       "pathComponents": [
705*7443a504SDaniel Grumberg         "(anonymous)"
706*7443a504SDaniel Grumberg       ]
707*7443a504SDaniel Grumberg     },
708*7443a504SDaniel Grumberg     {
709*7443a504SDaniel Grumberg       "accessLevel": "public",
710*7443a504SDaniel Grumberg       "declarationFragments": [
711*7443a504SDaniel Grumberg         {
712*7443a504SDaniel Grumberg           "kind": "identifier",
713*7443a504SDaniel Grumberg           "spelling": "Constant"
714*7443a504SDaniel Grumberg         }
715*7443a504SDaniel Grumberg       ],
716*7443a504SDaniel Grumberg       "identifier": {
717*7443a504SDaniel Grumberg         "interfaceLanguage": "c",
718*7443a504SDaniel Grumberg         "precise": "c:@Ea@Constant@Constant"
719*7443a504SDaniel Grumberg       },
720*7443a504SDaniel Grumberg       "kind": {
721*7443a504SDaniel Grumberg         "displayName": "Enumeration Case",
722*7443a504SDaniel Grumberg         "identifier": "c.enum.case"
723*7443a504SDaniel Grumberg       },
724*7443a504SDaniel Grumberg       "location": {
725*7443a504SDaniel Grumberg         "position": {
726*7443a504SDaniel Grumberg           "character": 3,
727*7443a504SDaniel Grumberg           "line": 18
728*7443a504SDaniel Grumberg         },
729*7443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
730*7443a504SDaniel Grumberg       },
731*7443a504SDaniel Grumberg       "names": {
732*7443a504SDaniel Grumberg         "navigator": [
733*7443a504SDaniel Grumberg           {
734*7443a504SDaniel Grumberg             "kind": "identifier",
735*7443a504SDaniel Grumberg             "spelling": "Constant"
736*7443a504SDaniel Grumberg           }
737*7443a504SDaniel Grumberg         ],
738*7443a504SDaniel Grumberg         "subHeading": [
739*7443a504SDaniel Grumberg           {
740*7443a504SDaniel Grumberg             "kind": "identifier",
741*7443a504SDaniel Grumberg             "spelling": "Constant"
742*7443a504SDaniel Grumberg           }
743*7443a504SDaniel Grumberg         ],
744*7443a504SDaniel Grumberg         "title": "Constant"
745*7443a504SDaniel Grumberg       },
746*7443a504SDaniel Grumberg       "pathComponents": [
747*7443a504SDaniel Grumberg         "(anonymous)",
748*7443a504SDaniel Grumberg         "Constant"
749*7443a504SDaniel Grumberg       ]
750*7443a504SDaniel Grumberg     },
751*7443a504SDaniel Grumberg     {
752*7443a504SDaniel Grumberg       "accessLevel": "public",
753*7443a504SDaniel Grumberg       "declarationFragments": [
754*7443a504SDaniel Grumberg         {
755*7443a504SDaniel Grumberg           "kind": "keyword",
756*7443a504SDaniel Grumberg           "spelling": "enum"
757*7443a504SDaniel Grumberg         },
758*7443a504SDaniel Grumberg         {
759*7443a504SDaniel Grumberg           "kind": "text",
760*7443a504SDaniel Grumberg           "spelling": ": "
761*7443a504SDaniel Grumberg         },
762*7443a504SDaniel Grumberg         {
763*7443a504SDaniel Grumberg           "kind": "typeIdentifier",
764*7443a504SDaniel Grumberg           "preciseIdentifier": "c:i",
765*7443a504SDaniel Grumberg           "spelling": "unsigned int"
766*7443a504SDaniel Grumberg         }
767*7443a504SDaniel Grumberg       ],
768*7443a504SDaniel Grumberg       "identifier": {
769*7443a504SDaniel Grumberg         "interfaceLanguage": "c",
770*7443a504SDaniel Grumberg         "precise": "c:@Ea@OtherConstant"
771*7443a504SDaniel Grumberg       },
772*7443a504SDaniel Grumberg       "kind": {
773*7443a504SDaniel Grumberg         "displayName": "Enumeration",
774*7443a504SDaniel Grumberg         "identifier": "c.enum"
775*7443a504SDaniel Grumberg       },
776*7443a504SDaniel Grumberg       "location": {
777*7443a504SDaniel Grumberg         "position": {
778*7443a504SDaniel Grumberg           "character": 1,
779*7443a504SDaniel Grumberg           "line": 21
780*7443a504SDaniel Grumberg         },
781*7443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
782*7443a504SDaniel Grumberg       },
783*7443a504SDaniel Grumberg       "names": {
784*7443a504SDaniel Grumberg         "navigator": [
785*7443a504SDaniel Grumberg           {
786*7443a504SDaniel Grumberg             "kind": "identifier",
787*7443a504SDaniel Grumberg             "spelling": "(anonymous)"
788*7443a504SDaniel Grumberg           }
789*7443a504SDaniel Grumberg         ],
790*7443a504SDaniel Grumberg         "title": "(anonymous)"
791*7443a504SDaniel Grumberg       },
792*7443a504SDaniel Grumberg       "pathComponents": [
793*7443a504SDaniel Grumberg         "(anonymous)"
794*7443a504SDaniel Grumberg       ]
795*7443a504SDaniel Grumberg     },
796*7443a504SDaniel Grumberg     {
797*7443a504SDaniel Grumberg       "accessLevel": "public",
798*7443a504SDaniel Grumberg       "declarationFragments": [
799*7443a504SDaniel Grumberg         {
800*7443a504SDaniel Grumberg           "kind": "identifier",
801*7443a504SDaniel Grumberg           "spelling": "OtherConstant"
802*7443a504SDaniel Grumberg         }
803*7443a504SDaniel Grumberg       ],
804*7443a504SDaniel Grumberg       "identifier": {
805*7443a504SDaniel Grumberg         "interfaceLanguage": "c",
806*7443a504SDaniel Grumberg         "precise": "c:@Ea@OtherConstant@OtherConstant"
807*7443a504SDaniel Grumberg       },
808*7443a504SDaniel Grumberg       "kind": {
809*7443a504SDaniel Grumberg         "displayName": "Enumeration Case",
810*7443a504SDaniel Grumberg         "identifier": "c.enum.case"
811*7443a504SDaniel Grumberg       },
812*7443a504SDaniel Grumberg       "location": {
813*7443a504SDaniel Grumberg         "position": {
814*7443a504SDaniel Grumberg           "character": 3,
815*7443a504SDaniel Grumberg           "line": 22
816*7443a504SDaniel Grumberg         },
817*7443a504SDaniel Grumberg         "uri": "file://INPUT_DIR/input.h"
818*7443a504SDaniel Grumberg       },
819*7443a504SDaniel Grumberg       "names": {
820*7443a504SDaniel Grumberg         "navigator": [
821*7443a504SDaniel Grumberg           {
822*7443a504SDaniel Grumberg             "kind": "identifier",
823*7443a504SDaniel Grumberg             "spelling": "OtherConstant"
824*7443a504SDaniel Grumberg           }
825*7443a504SDaniel Grumberg         ],
826*7443a504SDaniel Grumberg         "subHeading": [
827*7443a504SDaniel Grumberg           {
828*7443a504SDaniel Grumberg             "kind": "identifier",
829*7443a504SDaniel Grumberg             "spelling": "OtherConstant"
830*7443a504SDaniel Grumberg           }
831*7443a504SDaniel Grumberg         ],
832*7443a504SDaniel Grumberg         "title": "OtherConstant"
833*7443a504SDaniel Grumberg       },
834*7443a504SDaniel Grumberg       "pathComponents": [
835*7443a504SDaniel Grumberg         "(anonymous)",
836*7443a504SDaniel Grumberg         "OtherConstant"
837*7443a504SDaniel Grumberg       ]
83871b4c226SZixu Wang     }
83971b4c226SZixu Wang   ]
84071b4c226SZixu Wang }
841