modernc.org/cc@v1.0.1/ast_test.go (about) 1 // Code generated by yy. DO NOT EDIT. 2 3 // Copyright 2016 The CC Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package cc // import "modernc.org/cc" 8 9 import ( 10 "fmt" 11 ) 12 13 func ExampleAbstractDeclarator() { 14 fmt.Println(exampleAST(185, "\U00100001 ( _Bool * )")) 15 // Output: 16 // &cc.AbstractDeclarator{ 17 // · Pointer: &cc.Pointer{ 18 // · · Token: example185.c:1:10: '*', 19 // · }, 20 // } 21 } 22 23 func ExampleAbstractDeclarator_case1() { 24 fmt.Println(exampleAST(186, "\U00100001 ( _Bool ( ) )")) 25 // Output: 26 // &cc.AbstractDeclarator{ 27 // · Case: 1, 28 // · DirectAbstractDeclarator: &cc.DirectAbstractDeclarator{ 29 // · · Case: 6, 30 // · · Token: example186.c:1:10: '(', 31 // · · Token2: example186.c:1:12: ')', 32 // · }, 33 // } 34 } 35 36 func ExampleAbstractDeclaratorOpt() { 37 fmt.Println(exampleAST(187, "\U00100001 ( _Bool )") == (*AbstractDeclaratorOpt)(nil)) 38 // Output: 39 // true 40 } 41 42 func ExampleAbstractDeclaratorOpt_case1() { 43 fmt.Println(exampleAST(188, "\U00100001 ( _Bool * )")) 44 // Output: 45 // &cc.AbstractDeclaratorOpt{ 46 // · AbstractDeclarator: &cc.AbstractDeclarator{ 47 // · · Pointer: &cc.Pointer{ 48 // · · · Token: example188.c:1:10: '*', 49 // · · }, 50 // · }, 51 // } 52 } 53 54 func ExampleArgumentExpressionList() { 55 fmt.Println(exampleAST(8, "\U00100001 'a' ( 'b' )")) 56 // Output: 57 // &cc.ArgumentExpressionList{ 58 // · Expression: &cc.Expression{ 59 // · · Case: 1, 60 // · · Token: example8.c:1:8: CHARCONST "'b'", 61 // · }, 62 // } 63 } 64 65 func ExampleArgumentExpressionList_case1() { 66 fmt.Println(exampleAST(9, "\U00100001 'a' ( 'b' , 'c' )")) 67 // Output: 68 // &cc.ArgumentExpressionList{ 69 // · ArgumentExpressionList: &cc.ArgumentExpressionList{ 70 // · · Case: 1, 71 // · · Expression: &cc.Expression{ 72 // · · · Case: 1, 73 // · · · Token: example9.c:1:14: CHARCONST "'c'", 74 // · · }, 75 // · · Token: example9.c:1:12: ',', 76 // · }, 77 // · Expression: &cc.Expression{ 78 // · · Case: 1, 79 // · · Token: example9.c:1:8: CHARCONST "'b'", 80 // · }, 81 // } 82 } 83 84 func ExampleArgumentExpressionListOpt() { 85 fmt.Println(exampleAST(10, "\U00100001 'a' ( )") == (*ArgumentExpressionListOpt)(nil)) 86 // Output: 87 // true 88 } 89 90 func ExampleArgumentExpressionListOpt_case1() { 91 fmt.Println(exampleAST(11, "\U00100001 'a' ( 'b' )")) 92 // Output: 93 // &cc.ArgumentExpressionListOpt{ 94 // · ArgumentExpressionList: &cc.ArgumentExpressionList{ 95 // · · Expression: &cc.Expression{ 96 // · · · Case: 1, 97 // · · · Token: example11.c:1:8: CHARCONST "'b'", 98 // · · }, 99 // · }, 100 // } 101 } 102 103 func ExampleAssemblerInstructions() { 104 fmt.Println(exampleAST(265, "\U00100002 asm ( \"a\" )")) 105 // Output: 106 // &cc.AssemblerInstructions{ 107 // · Token: example265.c:1:8: STRINGLITERAL "\"a\"", 108 // } 109 } 110 111 func ExampleAssemblerInstructions_case1() { 112 fmt.Println(exampleAST(266, "\U00100002 asm ( \"a\" \"b\" )")) 113 // Output: 114 // &cc.AssemblerInstructions{ 115 // · AssemblerInstructions: &cc.AssemblerInstructions{ 116 // · · Case: 1, 117 // · · Token: example266.c:1:12: STRINGLITERAL "\"b\"", 118 // · }, 119 // · Token: example266.c:1:8: STRINGLITERAL "\"a\"", 120 // } 121 } 122 123 func ExampleAssemblerOperand() { 124 fmt.Println(exampleAST(270, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) )")) 125 // Output: 126 // &cc.AssemblerOperand{ 127 // · Expression: &cc.Expression{ 128 // · · Case: 1, 129 // · · Token: example270.c:1:22: CHARCONST "'d'", 130 // · }, 131 // · Token: example270.c:1:16: STRINGLITERAL "\"c\"", 132 // · Token2: example270.c:1:20: '(', 133 // · Token3: example270.c:1:26: ')', 134 // } 135 } 136 137 func ExampleAssemblerOperands() { 138 fmt.Println(exampleAST(271, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) )")) 139 // Output: 140 // &cc.AssemblerOperands{ 141 // · AssemblerOperand: &cc.AssemblerOperand{ 142 // · · Expression: &cc.Expression{ 143 // · · · Case: 1, 144 // · · · Token: example271.c:1:22: CHARCONST "'d'", 145 // · · }, 146 // · · Token: example271.c:1:16: STRINGLITERAL "\"c\"", 147 // · · Token2: example271.c:1:20: '(', 148 // · · Token3: example271.c:1:26: ')', 149 // · }, 150 // } 151 } 152 153 func ExampleAssemblerOperands_case1() { 154 fmt.Println(exampleAST(272, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) , \"e\" ( 'f' ) )")) 155 // Output: 156 // &cc.AssemblerOperands{ 157 // · AssemblerOperand: &cc.AssemblerOperand{ 158 // · · Expression: &cc.Expression{ 159 // · · · Case: 1, 160 // · · · Token: example272.c:1:22: CHARCONST "'d'", 161 // · · }, 162 // · · Token: example272.c:1:16: STRINGLITERAL "\"c\"", 163 // · · Token2: example272.c:1:20: '(', 164 // · · Token3: example272.c:1:26: ')', 165 // · }, 166 // · AssemblerOperands: &cc.AssemblerOperands{ 167 // · · AssemblerOperand: &cc.AssemblerOperand{ 168 // · · · Expression: &cc.Expression{ 169 // · · · · Case: 1, 170 // · · · · Token: example272.c:1:36: CHARCONST "'f'", 171 // · · · }, 172 // · · · Token: example272.c:1:30: STRINGLITERAL "\"e\"", 173 // · · · Token2: example272.c:1:34: '(', 174 // · · · Token3: example272.c:1:40: ')', 175 // · · }, 176 // · · Case: 1, 177 // · · Token: example272.c:1:28: ',', 178 // · }, 179 // } 180 } 181 182 func ExampleAssemblerStatement() { 183 fmt.Println(exampleAST(277, "\U00100002 a asm ( \"b\" ) !")) 184 // Output: 185 // &cc.AssemblerStatement{ 186 // · BasicAssemblerStatement: &cc.BasicAssemblerStatement{ 187 // · · AssemblerInstructions: &cc.AssemblerInstructions{ 188 // · · · Token: example277.c:1:10: STRINGLITERAL "\"b\"", 189 // · · }, 190 // · · Token: example277.c:1:4: ASM "asm", 191 // · · Token2: example277.c:1:8: '(', 192 // · · Token3: example277.c:1:14: ')', 193 // · }, 194 // } 195 } 196 197 func ExampleAssemblerStatement_case1() { 198 fmt.Println(exampleAST(278, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) ) !")) 199 // Output: 200 // &cc.AssemblerStatement{ 201 // · AssemblerInstructions: &cc.AssemblerInstructions{ 202 // · · Token: example278.c:1:10: STRINGLITERAL "\"b\"", 203 // · }, 204 // · AssemblerOperands: &cc.AssemblerOperands{ 205 // · · AssemblerOperand: &cc.AssemblerOperand{ 206 // · · · Expression: &cc.Expression{ 207 // · · · · Case: 1, 208 // · · · · Token: example278.c:1:22: CHARCONST "'d'", 209 // · · · }, 210 // · · · Token: example278.c:1:16: STRINGLITERAL "\"c\"", 211 // · · · Token2: example278.c:1:20: '(', 212 // · · · Token3: example278.c:1:26: ')', 213 // · · }, 214 // · }, 215 // · Case: 1, 216 // · Token: example278.c:1:4: ASM "asm", 217 // · Token2: example278.c:1:8: '(', 218 // · Token3: example278.c:1:14: ':', 219 // · Token4: example278.c:1:28: ')', 220 // } 221 } 222 223 func ExampleAssemblerStatement_case2() { 224 fmt.Println(exampleAST(279, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) : \"e\" ( 'f' ) ) !")) 225 // Output: 226 // &cc.AssemblerStatement{ 227 // · AssemblerInstructions: &cc.AssemblerInstructions{ 228 // · · Token: example279.c:1:10: STRINGLITERAL "\"b\"", 229 // · }, 230 // · AssemblerOperands: &cc.AssemblerOperands{ 231 // · · AssemblerOperand: &cc.AssemblerOperand{ 232 // · · · Expression: &cc.Expression{ 233 // · · · · Case: 1, 234 // · · · · Token: example279.c:1:22: CHARCONST "'d'", 235 // · · · }, 236 // · · · Token: example279.c:1:16: STRINGLITERAL "\"c\"", 237 // · · · Token2: example279.c:1:20: '(', 238 // · · · Token3: example279.c:1:26: ')', 239 // · · }, 240 // · }, 241 // · AssemblerOperands2: &cc.AssemblerOperands{ 242 // · · AssemblerOperand: &cc.AssemblerOperand{ 243 // · · · Expression: &cc.Expression{ 244 // · · · · Case: 1, 245 // · · · · Token: example279.c:1:36: CHARCONST "'f'", 246 // · · · }, 247 // · · · Token: example279.c:1:30: STRINGLITERAL "\"e\"", 248 // · · · Token2: example279.c:1:34: '(', 249 // · · · Token3: example279.c:1:40: ')', 250 // · · }, 251 // · }, 252 // · Case: 2, 253 // · Token: example279.c:1:4: ASM "asm", 254 // · Token2: example279.c:1:8: '(', 255 // · Token3: example279.c:1:14: ':', 256 // · Token4: example279.c:1:28: ':', 257 // · Token5: example279.c:1:42: ')', 258 // } 259 } 260 261 func ExampleAssemblerStatement_case3() { 262 fmt.Println(exampleAST(280, "\U00100002 a asm ( \"b\" : \"c\" ( 'd' ) : \"e\" ( 'f' ) : \"g\" ) !")) 263 // Output: 264 // &cc.AssemblerStatement{ 265 // · AssemblerInstructions: &cc.AssemblerInstructions{ 266 // · · Token: example280.c:1:10: STRINGLITERAL "\"b\"", 267 // · }, 268 // · AssemblerOperands: &cc.AssemblerOperands{ 269 // · · AssemblerOperand: &cc.AssemblerOperand{ 270 // · · · Expression: &cc.Expression{ 271 // · · · · Case: 1, 272 // · · · · Token: example280.c:1:22: CHARCONST "'d'", 273 // · · · }, 274 // · · · Token: example280.c:1:16: STRINGLITERAL "\"c\"", 275 // · · · Token2: example280.c:1:20: '(', 276 // · · · Token3: example280.c:1:26: ')', 277 // · · }, 278 // · }, 279 // · AssemblerOperands2: &cc.AssemblerOperands{ 280 // · · AssemblerOperand: &cc.AssemblerOperand{ 281 // · · · Expression: &cc.Expression{ 282 // · · · · Case: 1, 283 // · · · · Token: example280.c:1:36: CHARCONST "'f'", 284 // · · · }, 285 // · · · Token: example280.c:1:30: STRINGLITERAL "\"e\"", 286 // · · · Token2: example280.c:1:34: '(', 287 // · · · Token3: example280.c:1:40: ')', 288 // · · }, 289 // · }, 290 // · Case: 3, 291 // · Clobbers: &cc.Clobbers{ 292 // · · Token: example280.c:1:44: STRINGLITERAL "\"g\"", 293 // · }, 294 // · Token: example280.c:1:4: ASM "asm", 295 // · Token2: example280.c:1:8: '(', 296 // · Token3: example280.c:1:14: ':', 297 // · Token4: example280.c:1:28: ':', 298 // · Token5: example280.c:1:42: ':', 299 // · Token6: example280.c:1:48: ')', 300 // } 301 } 302 303 func ExampleAssemblerStatement_case4() { 304 fmt.Println(exampleAST(281, "\U00100002 a asm goto ( \"b\" : : \"c\" ( 'd' ) : \"e\" : f ) !")) 305 // Output: 306 // &cc.AssemblerStatement{ 307 // · AssemblerInstructions: &cc.AssemblerInstructions{ 308 // · · Token: example281.c:1:15: STRINGLITERAL "\"b\"", 309 // · }, 310 // · AssemblerOperands: &cc.AssemblerOperands{ 311 // · · AssemblerOperand: &cc.AssemblerOperand{ 312 // · · · Expression: &cc.Expression{ 313 // · · · · Case: 1, 314 // · · · · Token: example281.c:1:29: CHARCONST "'d'", 315 // · · · }, 316 // · · · Token: example281.c:1:23: STRINGLITERAL "\"c\"", 317 // · · · Token2: example281.c:1:27: '(', 318 // · · · Token3: example281.c:1:33: ')', 319 // · · }, 320 // · }, 321 // · Case: 4, 322 // · Clobbers: &cc.Clobbers{ 323 // · · Token: example281.c:1:37: STRINGLITERAL "\"e\"", 324 // · }, 325 // · IdentifierList: &cc.IdentifierList{ 326 // · · Token: example281.c:1:43: IDENTIFIER "f", 327 // · }, 328 // · Token: example281.c:1:4: ASM "asm", 329 // · Token2: example281.c:1:8: GOTO "goto", 330 // · Token3: example281.c:1:13: '(', 331 // · Token4: example281.c:1:19: ':', 332 // · Token5: example281.c:1:21: ':', 333 // · Token6: example281.c:1:35: ':', 334 // · Token7: example281.c:1:41: ':', 335 // · Token8: example281.c:1:45: ')', 336 // } 337 } 338 339 func ExampleAssemblerStatement_case5() { 340 fmt.Println(exampleAST(282, "\U00100002 a asm ( \"b\" : ) !")) 341 // Output: 342 // &cc.AssemblerStatement{ 343 // · AssemblerInstructions: &cc.AssemblerInstructions{ 344 // · · Token: example282.c:1:10: STRINGLITERAL "\"b\"", 345 // · }, 346 // · Case: 5, 347 // · Token: example282.c:1:4: ASM "asm", 348 // · Token2: example282.c:1:8: '(', 349 // · Token3: example282.c:1:14: ':', 350 // · Token4: example282.c:1:16: ')', 351 // } 352 } 353 354 func ExampleAssemblerStatement_case6() { 355 fmt.Println(exampleAST(283, "\U00100002 a asm ( \"b\" : : \"c\" ( 'd' ) ) !")) 356 // Output: 357 // &cc.AssemblerStatement{ 358 // · AssemblerInstructions: &cc.AssemblerInstructions{ 359 // · · Token: example283.c:1:10: STRINGLITERAL "\"b\"", 360 // · }, 361 // · AssemblerOperands: &cc.AssemblerOperands{ 362 // · · AssemblerOperand: &cc.AssemblerOperand{ 363 // · · · Expression: &cc.Expression{ 364 // · · · · Case: 1, 365 // · · · · Token: example283.c:1:24: CHARCONST "'d'", 366 // · · · }, 367 // · · · Token: example283.c:1:18: STRINGLITERAL "\"c\"", 368 // · · · Token2: example283.c:1:22: '(', 369 // · · · Token3: example283.c:1:28: ')', 370 // · · }, 371 // · }, 372 // · Case: 6, 373 // · Token: example283.c:1:4: ASM "asm", 374 // · Token2: example283.c:1:8: '(', 375 // · Token3: example283.c:1:14: ':', 376 // · Token4: example283.c:1:16: ':', 377 // · Token5: example283.c:1:30: ')', 378 // } 379 } 380 381 func ExampleAssemblerSymbolicNameOpt() { 382 fmt.Println(exampleAST(273, "\U00100002 a asm goto ( \"b\" : : \"c\"") == (*AssemblerSymbolicNameOpt)(nil)) 383 // Output: 384 // true 385 } 386 387 func ExampleAssemblerSymbolicNameOpt_case1() { 388 fmt.Println(exampleAST(274, "\U00100002 a asm ( \"b\" : [ c ] \"d\"")) 389 // Output: 390 // &cc.AssemblerSymbolicNameOpt{ 391 // · Token: example274.c:1:16: '[', 392 // · Token2: example274.c:1:18: IDENTIFIER "c", 393 // · Token3: example274.c:1:20: ']', 394 // } 395 } 396 397 func ExampleBasicAssemblerStatement() { 398 fmt.Println(exampleAST(267, "\U00100002 asm ( \"a\" ) !")) 399 // Output: 400 // &cc.BasicAssemblerStatement{ 401 // · AssemblerInstructions: &cc.AssemblerInstructions{ 402 // · · Token: example267.c:1:8: STRINGLITERAL "\"a\"", 403 // · }, 404 // · Token: example267.c:1:2: ASM "asm", 405 // · Token2: example267.c:1:6: '(', 406 // · Token3: example267.c:1:12: ')', 407 // } 408 } 409 410 func ExampleBlockItem() { 411 fmt.Println(exampleAST(230, "\U00100001 ( { auto ; !")) 412 // Output: 413 // &cc.BlockItem{ 414 // · Declaration: &cc.Declaration{ 415 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 416 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 417 // · · · · Case: 3, 418 // · · · · Token: example230.c:1:6: AUTO "auto", 419 // · · · }, 420 // · · }, 421 // · · Token: example230.c:1:11: ';', 422 // · }, 423 // } 424 } 425 426 func ExampleBlockItem_case1() { 427 fmt.Println(exampleAST(231, "\U00100001 ( { ; !")) 428 // Output: 429 // &cc.BlockItem{ 430 // · Case: 1, 431 // · Statement: &cc.Statement{ 432 // · · Case: 2, 433 // · · ExpressionStatement: &cc.ExpressionStatement{ 434 // · · · Token: example231.c:1:6: ';', 435 // · · }, 436 // · }, 437 // } 438 } 439 440 func ExampleBlockItemList() { 441 fmt.Println(exampleAST(226, "\U00100001 ( { ; !")) 442 // Output: 443 // &cc.BlockItemList{ 444 // · BlockItem: &cc.BlockItem{ 445 // · · Case: 1, 446 // · · Statement: &cc.Statement{ 447 // · · · Case: 2, 448 // · · · ExpressionStatement: &cc.ExpressionStatement{ 449 // · · · · Token: example226.c:1:6: ';', 450 // · · · }, 451 // · · }, 452 // · }, 453 // } 454 } 455 456 func ExampleBlockItemList_case1() { 457 fmt.Println(exampleAST(227, "\U00100001 ( { ; ; !")) 458 // Output: 459 // &cc.BlockItemList{ 460 // · BlockItem: &cc.BlockItem{ 461 // · · Case: 1, 462 // · · Statement: &cc.Statement{ 463 // · · · Case: 2, 464 // · · · ExpressionStatement: &cc.ExpressionStatement{ 465 // · · · · Token: example227.c:1:6: ';', 466 // · · · }, 467 // · · }, 468 // · }, 469 // · BlockItemList: &cc.BlockItemList{ 470 // · · BlockItem: &cc.BlockItem{ 471 // · · · Case: 1, 472 // · · · Statement: &cc.Statement{ 473 // · · · · Case: 2, 474 // · · · · ExpressionStatement: &cc.ExpressionStatement{ 475 // · · · · · Token: example227.c:1:8: ';', 476 // · · · · }, 477 // · · · }, 478 // · · }, 479 // · · Case: 1, 480 // · }, 481 // } 482 } 483 484 func ExampleBlockItemListOpt() { 485 fmt.Println(exampleAST(228, "\U00100001 ( { }") == (*BlockItemListOpt)(nil)) 486 // Output: 487 // true 488 } 489 490 func ExampleBlockItemListOpt_case1() { 491 fmt.Println(exampleAST(229, "\U00100001 ( { ; }")) 492 // Output: 493 // &cc.BlockItemListOpt{ 494 // · BlockItemList: &cc.BlockItemList{ 495 // · · BlockItem: &cc.BlockItem{ 496 // · · · Case: 1, 497 // · · · Statement: &cc.Statement{ 498 // · · · · Case: 2, 499 // · · · · ExpressionStatement: &cc.ExpressionStatement{ 500 // · · · · · Token: example229.c:1:6: ';', 501 // · · · · }, 502 // · · · }, 503 // · · }, 504 // · }, 505 // } 506 } 507 508 func ExampleClobbers() { 509 fmt.Println(exampleAST(275, "\U00100002 a asm goto ( \"b\" : : \"c\" ( 'd' ) : \"e\" )")) 510 // Output: 511 // &cc.Clobbers{ 512 // · Token: example275.c:1:37: STRINGLITERAL "\"e\"", 513 // } 514 } 515 516 func ExampleClobbers_case1() { 517 fmt.Println(exampleAST(276, "\U00100002 a asm goto ( \"b\" : : \"c\" ( 'd' ) : \"e\" , \"f\" )")) 518 // Output: 519 // &cc.Clobbers{ 520 // · Clobbers: &cc.Clobbers{ 521 // · · Case: 1, 522 // · · Token: example276.c:1:41: ',', 523 // · · Token2: example276.c:1:43: STRINGLITERAL "\"f\"", 524 // · }, 525 // · Token: example276.c:1:37: STRINGLITERAL "\"e\"", 526 // } 527 } 528 529 func ExampleCommaOpt() { 530 fmt.Println(exampleAST(135, "\U00100002 auto a = { }") == (*CommaOpt)(nil)) 531 // Output: 532 // true 533 } 534 535 func ExampleCommaOpt_case1() { 536 fmt.Println(exampleAST(136, "\U00100002 auto a = { , }")) 537 // Output: 538 // &cc.CommaOpt{ 539 // · Token: example136.c:1:13: ',', 540 // } 541 } 542 543 func ExampleCompoundStatement() { 544 fmt.Println(exampleAST(225, "\U00100001 ( { }")) 545 // Output: 546 // &cc.CompoundStatement{ 547 // · Token: example225.c:1:4: '{', 548 // · Token2: example225.c:1:6: '}', 549 // } 550 } 551 552 func ExampleConstantExpression() { 553 fmt.Println(exampleAST(79, "\U00100001 'a'")) 554 // Output: 555 // &cc.ConstantExpression{ 556 // · Type: int, 557 // · Value: 97, 558 // · Expression: &cc.Expression{ 559 // · · Type: int, 560 // · · Value: 97, 561 // · · Case: 1, 562 // · · Token: example79.c:1:2: CHARCONST "'a'", 563 // · }, 564 // } 565 } 566 567 func ExampleControlLine() { 568 fmt.Println(exampleAST(307, "\U00100000 \n#define a ")) 569 // Output: 570 // &cc.ControlLine{ 571 // · ReplacementList: []xc.Token{ // len 1 572 // · · 0: example307.c:2:10: ' ', 573 // · }, 574 // · Token: example307.c:2:2: PPDEFINE, 575 // · Token2: example307.c:2:9: IDENTIFIER "a", 576 // } 577 } 578 579 func ExampleControlLine_case01() { 580 fmt.Println(exampleAST(308, "\U00100000 \n#define a( ... ) ")) 581 // Output: 582 // &cc.ControlLine{ 583 // · Case: 1, 584 // · ReplacementList: []xc.Token{ // len 1 585 // · · 0: example308.c:2:17: ' ', 586 // · }, 587 // · Token: example308.c:2:2: PPDEFINE, 588 // · Token2: example308.c:2:9: IDENTIFIER_LPAREN "a(", 589 // · Token3: example308.c:2:12: DDD, 590 // · Token4: example308.c:2:16: ')', 591 // } 592 } 593 594 func ExampleControlLine_case02() { 595 fmt.Println(exampleAST(309, "\U00100000 \n#define a( b , ... ) ")) 596 // Output: 597 // &cc.ControlLine{ 598 // · Case: 2, 599 // · IdentifierList: &cc.IdentifierList{ 600 // · · Token: example309.c:2:12: IDENTIFIER "b", 601 // · }, 602 // · ReplacementList: []xc.Token{ // len 1 603 // · · 0: example309.c:2:21: ' ', 604 // · }, 605 // · Token: example309.c:2:2: PPDEFINE, 606 // · Token2: example309.c:2:9: IDENTIFIER_LPAREN "a(", 607 // · Token3: example309.c:2:14: ',', 608 // · Token4: example309.c:2:16: DDD, 609 // · Token5: example309.c:2:20: ')', 610 // } 611 } 612 613 func ExampleControlLine_case03() { 614 fmt.Println(exampleAST(310, "\U00100000 \n#define a( ) ")) 615 // Output: 616 // &cc.ControlLine{ 617 // · Case: 3, 618 // · ReplacementList: []xc.Token{ // len 1 619 // · · 0: example310.c:2:13: ' ', 620 // · }, 621 // · Token: example310.c:2:2: PPDEFINE, 622 // · Token2: example310.c:2:9: IDENTIFIER_LPAREN "a(", 623 // · Token3: example310.c:2:12: ')', 624 // } 625 } 626 627 func ExampleControlLine_case04() { 628 fmt.Println(exampleAST(311, "\U00100000 \n#error ")) 629 // Output: 630 // &cc.ControlLine{ 631 // · Case: 4, 632 // · PPTokenListOpt: []xc.Token{ // len 1 633 // · · 0: example311.c:2:7: ' ', 634 // · }, 635 // · Token: example311.c:2:2: PPERROR, 636 // } 637 } 638 639 func ExampleControlLine_case05() { 640 fmt.Println(exampleAST(312, "\U00100000 \n#")) 641 // Output: 642 // &cc.ControlLine{ 643 // · Case: 5, 644 // · Token: example312.c:2:2: PPHASH_NL, 645 // } 646 } 647 648 func ExampleControlLine_case06() { 649 fmt.Println(exampleAST(313, "\U00100000 \n#include other_a ")) 650 // Output: 651 // &cc.ControlLine{ 652 // · Case: 6, 653 // · PPTokenList: []xc.Token{ // len 3 654 // · · 0: example313.c:2:9: ' ', 655 // · · 1: example313.c:2:10: IDENTIFIER "other_a", 656 // · · 2: example313.c:2:17: ' ', 657 // · }, 658 // · Token: example313.c:2:2: PPINCLUDE, 659 // · Token2: example313.c:2:18: '\n', 660 // } 661 } 662 663 func ExampleControlLine_case07() { 664 fmt.Println(exampleAST(314, "\U00100000 \n#line other_a ")) 665 // Output: 666 // &cc.ControlLine{ 667 // · Case: 7, 668 // · PPTokenList: []xc.Token{ // len 3 669 // · · 0: example314.c:2:6: ' ', 670 // · · 1: example314.c:2:7: IDENTIFIER "other_a", 671 // · · 2: example314.c:2:14: ' ', 672 // · }, 673 // · Token: example314.c:2:2: PPLINE, 674 // · Token2: example314.c:2:15: '\n', 675 // } 676 } 677 678 func ExampleControlLine_case08() { 679 fmt.Println(exampleAST(315, "\U00100000 \n#pragma ")) 680 // Output: 681 // &cc.ControlLine{ 682 // · Case: 8, 683 // · PPTokenListOpt: []xc.Token{ // len 1 684 // · · 0: example315.c:2:8: ' ', 685 // · }, 686 // · Token: example315.c:2:2: PPPRAGMA, 687 // } 688 } 689 690 func ExampleControlLine_case09() { 691 fmt.Println(exampleAST(316, "\U00100000 \n#undef foo")) 692 // Output: 693 // &cc.ControlLine{ 694 // · Case: 9, 695 // · Token: example316.c:2:2: PPUNDEF, 696 // · Token2: example316.c:2:8: IDENTIFIER "foo", 697 // · Token3: example316.c:2:11: '\n', 698 // } 699 } 700 701 func ExampleControlLine_case10() { 702 fmt.Println(exampleAST(317, "\U00100000 \n#define a( b ... ) ")) 703 // Output: 704 // &cc.ControlLine{ 705 // · Case: 10, 706 // · IdentifierList: &cc.IdentifierList{ 707 // · · Token: example317.c:2:12: IDENTIFIER "b", 708 // · }, 709 // · ReplacementList: []xc.Token{ // len 1 710 // · · 0: example317.c:2:19: ' ', 711 // · }, 712 // · Token: example317.c:2:2: PPDEFINE, 713 // · Token2: example317.c:2:9: IDENTIFIER_LPAREN "a(", 714 // · Token3: example317.c:2:14: DDD, 715 // · Token4: example317.c:2:18: ')', 716 // } 717 } 718 719 func ExampleControlLine_case11() { 720 fmt.Println(exampleAST(318, "\U00100000 \n#define ")) 721 // Output: 722 // &cc.ControlLine{ 723 // · Case: 11, 724 // · Token: example318.c:2:2: PPDEFINE, 725 // · Token2: example318.c:2:9: '\n', 726 // } 727 } 728 729 func ExampleControlLine_case12() { 730 fmt.Println(exampleAST(319, "\U00100000 \n#undef foo(bar)")) 731 // Output: 732 // &cc.ControlLine{ 733 // · Case: 12, 734 // · PPTokenList: []xc.Token{ // len 3 735 // · · 0: example319.c:2:11: '(', 736 // · · 1: example319.c:2:12: IDENTIFIER "bar", 737 // · · 2: example319.c:2:15: ')', 738 // · }, 739 // · Token: example319.c:2:2: PPUNDEF, 740 // · Token2: example319.c:2:8: IDENTIFIER "foo", 741 // · Token3: example319.c:2:16: '\n', 742 // } 743 } 744 745 func ExampleControlLine_case13() { 746 fmt.Println(exampleAST(320, "\U00100000 \n#include_next other_a ")) 747 // Output: 748 // &cc.ControlLine{ 749 // · Case: 13, 750 // · PPTokenList: []xc.Token{ // len 3 751 // · · 0: example320.c:2:14: ' ', 752 // · · 1: example320.c:2:15: IDENTIFIER "other_a", 753 // · · 2: example320.c:2:22: ' ', 754 // · }, 755 // · Token: example320.c:2:2: PPINCLUDE_NEXT, 756 // · Token2: example320.c:2:23: '\n', 757 // } 758 } 759 760 func ExampleDeclaration() { 761 fmt.Println(exampleAST(80, "\U00100002 auto ;")) 762 // Output: 763 // &cc.Declaration{ 764 // · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 765 // · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 766 // · · · Case: 3, 767 // · · · Token: example80.c:1:2: AUTO "auto", 768 // · · }, 769 // · }, 770 // · Token: example80.c:1:7: ';', 771 // } 772 } 773 774 func ExampleDeclaration_case1() { 775 fmt.Println(exampleAST(81, "\U00100002 _Static_assert ( 'a' , \"b\" ) ;")) 776 // Output: 777 // &cc.Declaration{ 778 // · Case: 1, 779 // · StaticAssertDeclaration: &cc.StaticAssertDeclaration{ 780 // · · ConstantExpression: &cc.ConstantExpression{ 781 // · · · Type: int, 782 // · · · Value: 97, 783 // · · · Expression: &cc.Expression{ 784 // · · · · Type: int, 785 // · · · · Value: 97, 786 // · · · · Case: 1, 787 // · · · · Token: example81.c:1:19: CHARCONST "'a'", 788 // · · · }, 789 // · · }, 790 // · · Token: example81.c:1:2: STATIC_ASSERT "_Static_assert", 791 // · · Token2: example81.c:1:17: '(', 792 // · · Token3: example81.c:1:23: ',', 793 // · · Token4: example81.c:1:25: STRINGLITERAL "\"b\"", 794 // · · Token5: example81.c:1:29: ')', 795 // · · Token6: example81.c:1:31: ';', 796 // · }, 797 // } 798 } 799 800 func ExampleDeclarationList() { 801 fmt.Println(exampleAST(260, "\U00100002 a auto ; {")) 802 // Output: 803 // &cc.DeclarationList{ 804 // · Declaration: &cc.Declaration{ 805 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 806 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 807 // · · · · Case: 3, 808 // · · · · Token: example260.c:1:4: AUTO "auto", 809 // · · · }, 810 // · · }, 811 // · · Token: example260.c:1:9: ';', 812 // · }, 813 // } 814 } 815 816 func ExampleDeclarationList_case1() { 817 fmt.Println(exampleAST(261, "\U00100002 a auto ; auto ; {")) 818 // Output: 819 // &cc.DeclarationList{ 820 // · Declaration: &cc.Declaration{ 821 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 822 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 823 // · · · · Case: 3, 824 // · · · · Token: example261.c:1:4: AUTO "auto", 825 // · · · }, 826 // · · }, 827 // · · Token: example261.c:1:9: ';', 828 // · }, 829 // · DeclarationList: &cc.DeclarationList{ 830 // · · Case: 1, 831 // · · Declaration: &cc.Declaration{ 832 // · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 833 // · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 834 // · · · · · Case: 3, 835 // · · · · · Token: example261.c:1:11: AUTO "auto", 836 // · · · · }, 837 // · · · }, 838 // · · · Token: example261.c:1:16: ';', 839 // · · }, 840 // · }, 841 // } 842 } 843 844 func ExampleDeclarationListOpt() { 845 fmt.Println(exampleAST(262, "\U00100002 a {") == (*DeclarationListOpt)(nil)) 846 // Output: 847 // true 848 } 849 850 func ExampleDeclarationListOpt_case1() { 851 fmt.Println(exampleAST(264, "\U00100002 a auto ; {")) 852 // Output: 853 // &cc.DeclarationListOpt{ 854 // · DeclarationList: &cc.DeclarationList{ 855 // · · Declaration: &cc.Declaration{ 856 // · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 857 // · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 858 // · · · · · Case: 3, 859 // · · · · · Token: example264.c:1:4: AUTO "auto", 860 // · · · · }, 861 // · · · }, 862 // · · · Token: example264.c:1:9: ';', 863 // · · }, 864 // · }, 865 // } 866 } 867 868 func ExampleDeclarationSpecifiers() { 869 fmt.Println(exampleAST(82, "\U00100002 auto (")) 870 // Output: 871 // &cc.DeclarationSpecifiers{ 872 // · StorageClassSpecifier: &cc.StorageClassSpecifier{ 873 // · · Case: 3, 874 // · · Token: example82.c:1:2: AUTO "auto", 875 // · }, 876 // } 877 } 878 879 func ExampleDeclarationSpecifiers_case1() { 880 fmt.Println(exampleAST(83, "\U00100002 _Bool (")) 881 // Output: 882 // &cc.DeclarationSpecifiers{ 883 // · Case: 1, 884 // · TypeSpecifier: &cc.TypeSpecifier{ 885 // · · Case: 9, 886 // · · Token: example83.c:1:2: BOOL "_Bool", 887 // · }, 888 // } 889 } 890 891 func ExampleDeclarationSpecifiers_case2() { 892 fmt.Println(exampleAST(84, "\U00100002 const (")) 893 // Output: 894 // &cc.DeclarationSpecifiers{ 895 // · Case: 2, 896 // · TypeQualifier: &cc.TypeQualifier{ 897 // · · Token: example84.c:1:2: CONST "const", 898 // · }, 899 // } 900 } 901 902 func ExampleDeclarationSpecifiers_case3() { 903 fmt.Println(exampleAST(85, "\U00100002 inline (")) 904 // Output: 905 // &cc.DeclarationSpecifiers{ 906 // · Case: 3, 907 // · FunctionSpecifier: &cc.FunctionSpecifier{ 908 // · · Token: example85.c:1:2: INLINE "inline", 909 // · }, 910 // } 911 } 912 913 func ExampleDeclarationSpecifiersOpt() { 914 fmt.Println(exampleAST(86, "\U00100002 auto (") == (*DeclarationSpecifiersOpt)(nil)) 915 // Output: 916 // true 917 } 918 919 func ExampleDeclarationSpecifiersOpt_case1() { 920 fmt.Println(exampleAST(87, "\U00100002 auto auto (")) 921 // Output: 922 // &cc.DeclarationSpecifiersOpt{ 923 // · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 924 // · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 925 // · · · Case: 3, 926 // · · · Token: example87.c:1:7: AUTO "auto", 927 // · · }, 928 // · }, 929 // } 930 } 931 932 func ExampleDeclarator() { 933 fmt.Println(exampleAST(149, "\U00100002 a )")) 934 // Output: 935 // &cc.Declarator{ 936 // · Linkage: None, 937 // · DirectDeclarator: &cc.DirectDeclarator{ 938 // · · Token: example149.c:1:2: IDENTIFIER "a", 939 // · }, 940 // } 941 } 942 943 func ExampleDeclaratorOpt() { 944 fmt.Println(exampleAST(150, "\U00100002 struct { _Bool :") == (*DeclaratorOpt)(nil)) 945 // Output: 946 // true 947 } 948 949 func ExampleDeclaratorOpt_case1() { 950 fmt.Println(exampleAST(151, "\U00100002 struct { _Bool a :")) 951 // Output: 952 // &cc.DeclaratorOpt{ 953 // · Declarator: &cc.Declarator{ 954 // · · Linkage: None, 955 // · · DirectDeclarator: &cc.DirectDeclarator{ 956 // · · · Token: example151.c:1:17: IDENTIFIER "a", 957 // · · }, 958 // · }, 959 // } 960 } 961 962 func ExampleDesignation() { 963 fmt.Println(exampleAST(207, "\U00100002 auto a = { . b = !")) 964 // Output: 965 // &cc.Designation{ 966 // · DesignatorList: &cc.DesignatorList{ 967 // · · Designator: &cc.Designator{ 968 // · · · Case: 1, 969 // · · · Token: example207.c:1:13: '.', 970 // · · · Token2: example207.c:1:15: IDENTIFIER "b", 971 // · · }, 972 // · }, 973 // · Token: example207.c:1:17: '=', 974 // } 975 } 976 977 func ExampleDesignationOpt() { 978 fmt.Println(exampleAST(208, "\U00100002 auto a = { !") == (*DesignationOpt)(nil)) 979 // Output: 980 // true 981 } 982 983 func ExampleDesignationOpt_case1() { 984 fmt.Println(exampleAST(209, "\U00100002 auto a = { . b = !")) 985 // Output: 986 // &cc.DesignationOpt{ 987 // · Designation: &cc.Designation{ 988 // · · DesignatorList: &cc.DesignatorList{ 989 // · · · Designator: &cc.Designator{ 990 // · · · · Case: 1, 991 // · · · · Token: example209.c:1:13: '.', 992 // · · · · Token2: example209.c:1:15: IDENTIFIER "b", 993 // · · · }, 994 // · · }, 995 // · · Token: example209.c:1:17: '=', 996 // · }, 997 // } 998 } 999 1000 func ExampleDesignator() { 1001 fmt.Println(exampleAST(212, "\U00100002 auto a = { [ 'b' ] .")) 1002 // Output: 1003 // &cc.Designator{ 1004 // · ConstantExpression: &cc.ConstantExpression{ 1005 // · · Type: int, 1006 // · · Value: 98, 1007 // · · Expression: &cc.Expression{ 1008 // · · · Type: int, 1009 // · · · Value: 98, 1010 // · · · Case: 1, 1011 // · · · Token: example212.c:1:15: CHARCONST "'b'", 1012 // · · }, 1013 // · }, 1014 // · Token: example212.c:1:13: '[', 1015 // · Token2: example212.c:1:19: ']', 1016 // } 1017 } 1018 1019 func ExampleDesignator_case1() { 1020 fmt.Println(exampleAST(213, "\U00100002 auto a = { . b .")) 1021 // Output: 1022 // &cc.Designator{ 1023 // · Case: 1, 1024 // · Token: example213.c:1:13: '.', 1025 // · Token2: example213.c:1:15: IDENTIFIER "b", 1026 // } 1027 } 1028 1029 func ExampleDesignatorList() { 1030 fmt.Println(exampleAST(210, "\U00100002 auto a = { . b .")) 1031 // Output: 1032 // &cc.DesignatorList{ 1033 // · Designator: &cc.Designator{ 1034 // · · Case: 1, 1035 // · · Token: example210.c:1:13: '.', 1036 // · · Token2: example210.c:1:15: IDENTIFIER "b", 1037 // · }, 1038 // } 1039 } 1040 1041 func ExampleDesignatorList_case1() { 1042 fmt.Println(exampleAST(211, "\U00100002 auto a = { . b . c .")) 1043 // Output: 1044 // &cc.DesignatorList{ 1045 // · Designator: &cc.Designator{ 1046 // · · Case: 1, 1047 // · · Token: example211.c:1:13: '.', 1048 // · · Token2: example211.c:1:15: IDENTIFIER "b", 1049 // · }, 1050 // · DesignatorList: &cc.DesignatorList{ 1051 // · · Case: 1, 1052 // · · Designator: &cc.Designator{ 1053 // · · · Case: 1, 1054 // · · · Token: example211.c:1:17: '.', 1055 // · · · Token2: example211.c:1:19: IDENTIFIER "c", 1056 // · · }, 1057 // · }, 1058 // } 1059 } 1060 1061 func ExampleDirectAbstractDeclarator() { 1062 fmt.Println(exampleAST(189, "\U00100001 ( _Bool ( * ) (")) 1063 // Output: 1064 // &cc.DirectAbstractDeclarator{ 1065 // · AbstractDeclarator: &cc.AbstractDeclarator{ 1066 // · · Pointer: &cc.Pointer{ 1067 // · · · Token: example189.c:1:12: '*', 1068 // · · }, 1069 // · }, 1070 // · Token: example189.c:1:10: '(', 1071 // · Token2: example189.c:1:14: ')', 1072 // } 1073 } 1074 1075 func ExampleDirectAbstractDeclarator_case1() { 1076 fmt.Println(exampleAST(190, "\U00100001 ( _Bool [ ] (")) 1077 // Output: 1078 // &cc.DirectAbstractDeclarator{ 1079 // · Case: 1, 1080 // · Token: example190.c:1:10: '[', 1081 // · Token2: example190.c:1:12: ']', 1082 // } 1083 } 1084 1085 func ExampleDirectAbstractDeclarator_case2() { 1086 fmt.Println(exampleAST(191, "\U00100001 ( _Bool [ const ] (")) 1087 // Output: 1088 // &cc.DirectAbstractDeclarator{ 1089 // · Case: 2, 1090 // · Token: example191.c:1:10: '[', 1091 // · Token2: example191.c:1:18: ']', 1092 // · TypeQualifierList: &cc.TypeQualifierList{ 1093 // · · TypeQualifier: &cc.TypeQualifier{ 1094 // · · · Token: example191.c:1:12: CONST "const", 1095 // · · }, 1096 // · }, 1097 // } 1098 } 1099 1100 func ExampleDirectAbstractDeclarator_case3() { 1101 fmt.Println(exampleAST(192, "\U00100001 ( _Bool [ static 'a' ] (")) 1102 // Output: 1103 // &cc.DirectAbstractDeclarator{ 1104 // · Case: 3, 1105 // · Expression: &cc.Expression{ 1106 // · · Type: int, 1107 // · · Value: 97, 1108 // · · Case: 1, 1109 // · · Token: example192.c:1:19: CHARCONST "'a'", 1110 // · }, 1111 // · Token: example192.c:1:10: '[', 1112 // · Token2: example192.c:1:12: STATIC "static", 1113 // · Token3: example192.c:1:23: ']', 1114 // } 1115 } 1116 1117 func ExampleDirectAbstractDeclarator_case4() { 1118 fmt.Println(exampleAST(193, "\U00100001 ( _Bool [ const static 'a' ] (")) 1119 // Output: 1120 // &cc.DirectAbstractDeclarator{ 1121 // · Case: 4, 1122 // · Expression: &cc.Expression{ 1123 // · · Type: int, 1124 // · · Value: 97, 1125 // · · Case: 1, 1126 // · · Token: example193.c:1:25: CHARCONST "'a'", 1127 // · }, 1128 // · Token: example193.c:1:10: '[', 1129 // · Token2: example193.c:1:18: STATIC "static", 1130 // · Token3: example193.c:1:29: ']', 1131 // · TypeQualifierList: &cc.TypeQualifierList{ 1132 // · · TypeQualifier: &cc.TypeQualifier{ 1133 // · · · Token: example193.c:1:12: CONST "const", 1134 // · · }, 1135 // · }, 1136 // } 1137 } 1138 1139 func ExampleDirectAbstractDeclarator_case5() { 1140 fmt.Println(exampleAST(194, "\U00100001 ( _Bool [ * ] (")) 1141 // Output: 1142 // &cc.DirectAbstractDeclarator{ 1143 // · Case: 5, 1144 // · Token: example194.c:1:10: '[', 1145 // · Token2: example194.c:1:12: '*', 1146 // · Token3: example194.c:1:14: ']', 1147 // } 1148 } 1149 1150 func ExampleDirectAbstractDeclarator_case6() { 1151 fmt.Println(exampleAST(196, "\U00100001 ( _Bool ( ) (")) 1152 // Output: 1153 // &cc.DirectAbstractDeclarator{ 1154 // · Case: 6, 1155 // · Token: example196.c:1:10: '(', 1156 // · Token2: example196.c:1:12: ')', 1157 // } 1158 } 1159 1160 func ExampleDirectAbstractDeclarator_case7() { 1161 fmt.Println(exampleAST(198, "\U00100001 ( _Bool ( ) ( ) (")) 1162 // Output: 1163 // &cc.DirectAbstractDeclarator{ 1164 // · Case: 7, 1165 // · DirectAbstractDeclarator: &cc.DirectAbstractDeclarator{ 1166 // · · Case: 6, 1167 // · · Token: example198.c:1:10: '(', 1168 // · · Token2: example198.c:1:12: ')', 1169 // · }, 1170 // · Token: example198.c:1:14: '(', 1171 // · Token2: example198.c:1:16: ')', 1172 // } 1173 } 1174 1175 func ExampleDirectAbstractDeclaratorOpt() { 1176 fmt.Println(exampleAST(199, "\U00100001 ( _Bool [") == (*DirectAbstractDeclaratorOpt)(nil)) 1177 // Output: 1178 // true 1179 } 1180 1181 func ExampleDirectAbstractDeclaratorOpt_case1() { 1182 fmt.Println(exampleAST(200, "\U00100001 ( _Bool ( ) [")) 1183 // Output: 1184 // &cc.DirectAbstractDeclaratorOpt{ 1185 // · DirectAbstractDeclarator: &cc.DirectAbstractDeclarator{ 1186 // · · Case: 6, 1187 // · · Token: example200.c:1:10: '(', 1188 // · · Token2: example200.c:1:12: ')', 1189 // · }, 1190 // } 1191 } 1192 1193 func ExampleDirectDeclarator() { 1194 fmt.Println(exampleAST(152, "\U00100002 a (")) 1195 // Output: 1196 // &cc.DirectDeclarator{ 1197 // · Token: example152.c:1:2: IDENTIFIER "a", 1198 // } 1199 } 1200 1201 func ExampleDirectDeclarator_case1() { 1202 fmt.Println(exampleAST(153, "\U00100002 ( a ) (")) 1203 // Output: 1204 // &cc.DirectDeclarator{ 1205 // · Case: 1, 1206 // · Declarator: &cc.Declarator{ 1207 // · · Linkage: None, 1208 // · · DirectDeclarator: &cc.DirectDeclarator{ 1209 // · · · Token: example153.c:1:4: IDENTIFIER "a", 1210 // · · }, 1211 // · }, 1212 // · Token: example153.c:1:2: '(', 1213 // · Token2: example153.c:1:6: ')', 1214 // } 1215 } 1216 1217 func ExampleDirectDeclarator_case2() { 1218 fmt.Println(exampleAST(154, "\U00100002 a [ ] (")) 1219 // Output: 1220 // &cc.DirectDeclarator{ 1221 // · Case: 2, 1222 // · DirectDeclarator: &cc.DirectDeclarator{ 1223 // · · Token: example154.c:1:2: IDENTIFIER "a", 1224 // · }, 1225 // · Token: example154.c:1:4: '[', 1226 // · Token2: example154.c:1:6: ']', 1227 // } 1228 } 1229 1230 func ExampleDirectDeclarator_case3() { 1231 fmt.Println(exampleAST(155, "\U00100002 a [ static 'b' ] (")) 1232 // Output: 1233 // &cc.DirectDeclarator{ 1234 // · Case: 3, 1235 // · DirectDeclarator: &cc.DirectDeclarator{ 1236 // · · Token: example155.c:1:2: IDENTIFIER "a", 1237 // · }, 1238 // · Expression: &cc.Expression{ 1239 // · · Type: int, 1240 // · · Value: 98, 1241 // · · Case: 1, 1242 // · · Token: example155.c:1:13: CHARCONST "'b'", 1243 // · }, 1244 // · Token: example155.c:1:4: '[', 1245 // · Token2: example155.c:1:6: STATIC "static", 1246 // · Token3: example155.c:1:17: ']', 1247 // } 1248 } 1249 1250 func ExampleDirectDeclarator_case4() { 1251 fmt.Println(exampleAST(156, "\U00100002 a [ const static 'b' ] (")) 1252 // Output: 1253 // &cc.DirectDeclarator{ 1254 // · Case: 4, 1255 // · DirectDeclarator: &cc.DirectDeclarator{ 1256 // · · Token: example156.c:1:2: IDENTIFIER "a", 1257 // · }, 1258 // · Expression: &cc.Expression{ 1259 // · · Type: int, 1260 // · · Value: 98, 1261 // · · Case: 1, 1262 // · · Token: example156.c:1:19: CHARCONST "'b'", 1263 // · }, 1264 // · Token: example156.c:1:4: '[', 1265 // · Token2: example156.c:1:12: STATIC "static", 1266 // · Token3: example156.c:1:23: ']', 1267 // · TypeQualifierList: &cc.TypeQualifierList{ 1268 // · · TypeQualifier: &cc.TypeQualifier{ 1269 // · · · Token: example156.c:1:6: CONST "const", 1270 // · · }, 1271 // · }, 1272 // } 1273 } 1274 1275 func ExampleDirectDeclarator_case5() { 1276 fmt.Println(exampleAST(157, "\U00100002 a [ * ] (")) 1277 // Output: 1278 // &cc.DirectDeclarator{ 1279 // · Case: 5, 1280 // · DirectDeclarator: &cc.DirectDeclarator{ 1281 // · · Token: example157.c:1:2: IDENTIFIER "a", 1282 // · }, 1283 // · Token: example157.c:1:4: '[', 1284 // · Token2: example157.c:1:6: '*', 1285 // · Token3: example157.c:1:8: ']', 1286 // } 1287 } 1288 1289 func ExampleDirectDeclarator_case6() { 1290 fmt.Println(exampleAST(159, "\U00100002 a ( auto ) (")) 1291 // Output: 1292 // &cc.DirectDeclarator{ 1293 // · Case: 6, 1294 // · DirectDeclarator: &cc.DirectDeclarator{ 1295 // · · Token: example159.c:1:2: IDENTIFIER "a", 1296 // · }, 1297 // · ParameterTypeList: &cc.ParameterTypeList{ 1298 // · · ParameterList: &cc.ParameterList{ 1299 // · · · ParameterDeclaration: &cc.ParameterDeclaration{ 1300 // · · · · Case: 1, 1301 // · · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 1302 // · · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 1303 // · · · · · · Case: 3, 1304 // · · · · · · Token: example159.c:1:6: AUTO "auto", 1305 // · · · · · }, 1306 // · · · · }, 1307 // · · · }, 1308 // · · }, 1309 // · }, 1310 // · Token: example159.c:1:4: '(', 1311 // · Token2: example159.c:1:11: ')', 1312 // } 1313 } 1314 1315 func ExampleDirectDeclarator_case7() { 1316 fmt.Println(exampleAST(160, "\U00100002 a ( ) (")) 1317 // Output: 1318 // &cc.DirectDeclarator{ 1319 // · Case: 7, 1320 // · DirectDeclarator: &cc.DirectDeclarator{ 1321 // · · Token: example160.c:1:2: IDENTIFIER "a", 1322 // · }, 1323 // · Token: example160.c:1:4: '(', 1324 // · Token2: example160.c:1:6: ')', 1325 // } 1326 } 1327 1328 func ExampleElifGroup() { 1329 fmt.Println(exampleAST(302, "\U00100000 \n#if other_a \n#elif other_b \n#elif")) 1330 // Output: 1331 // &cc.ElifGroup{ 1332 // · PPTokenList: []xc.Token{ // len 4 1333 // · · 0: example302.c:3:6: ' ', 1334 // · · 1: example302.c:3:7: IDENTIFIER "other_b", 1335 // · · 2: example302.c:3:14: ' ', 1336 // · · 3: example302.c:3:16: ' ', 1337 // · }, 1338 // · Token: example302.c:3:2: PPELIF, 1339 // · Token2: example302.c:3:16: '\n', 1340 // } 1341 } 1342 1343 func ExampleElifGroupList() { 1344 fmt.Println(exampleAST(298, "\U00100000 \n#if other_a \n#elif other_b \n#elif")) 1345 // Output: 1346 // &cc.ElifGroupList{ 1347 // · ElifGroup: &cc.ElifGroup{ 1348 // · · PPTokenList: []xc.Token{ // len 4 1349 // · · · 0: example298.c:3:6: ' ', 1350 // · · · 1: example298.c:3:7: IDENTIFIER "other_b", 1351 // · · · 2: example298.c:3:14: ' ', 1352 // · · · 3: example298.c:3:16: ' ', 1353 // · · }, 1354 // · · Token: example298.c:3:2: PPELIF, 1355 // · · Token2: example298.c:3:16: '\n', 1356 // · }, 1357 // } 1358 } 1359 1360 func ExampleElifGroupList_case1() { 1361 fmt.Println(exampleAST(299, "\U00100000 \n#if other_a \n#elif other_b \n#elif other_c \n#elif")) 1362 // Output: 1363 // &cc.ElifGroupList{ 1364 // · ElifGroup: &cc.ElifGroup{ 1365 // · · PPTokenList: []xc.Token{ // len 4 1366 // · · · 0: example299.c:3:6: ' ', 1367 // · · · 1: example299.c:3:7: IDENTIFIER "other_b", 1368 // · · · 2: example299.c:3:14: ' ', 1369 // · · · 3: example299.c:3:16: ' ', 1370 // · · }, 1371 // · · Token: example299.c:3:2: PPELIF, 1372 // · · Token2: example299.c:3:16: '\n', 1373 // · }, 1374 // · ElifGroupList: &cc.ElifGroupList{ 1375 // · · Case: 1, 1376 // · · ElifGroup: &cc.ElifGroup{ 1377 // · · · PPTokenList: []xc.Token{ // len 4 1378 // · · · · 0: example299.c:4:6: ' ', 1379 // · · · · 1: example299.c:4:7: IDENTIFIER "other_c", 1380 // · · · · 2: example299.c:4:14: ' ', 1381 // · · · · 3: example299.c:4:16: ' ', 1382 // · · · }, 1383 // · · · Token: example299.c:4:2: PPELIF, 1384 // · · · Token2: example299.c:4:16: '\n', 1385 // · · }, 1386 // · }, 1387 // } 1388 } 1389 1390 func ExampleElifGroupListOpt() { 1391 fmt.Println(exampleAST(300, "\U00100000 \n#if other_a \n#else") == (*ElifGroupListOpt)(nil)) 1392 // Output: 1393 // true 1394 } 1395 1396 func ExampleElifGroupListOpt_case1() { 1397 fmt.Println(exampleAST(301, "\U00100000 \n#if other_a \n#elif other_b \n#else")) 1398 // Output: 1399 // &cc.ElifGroupListOpt{ 1400 // · ElifGroupList: &cc.ElifGroupList{ 1401 // · · ElifGroup: &cc.ElifGroup{ 1402 // · · · PPTokenList: []xc.Token{ // len 4 1403 // · · · · 0: example301.c:3:6: ' ', 1404 // · · · · 1: example301.c:3:7: IDENTIFIER "other_b", 1405 // · · · · 2: example301.c:3:14: ' ', 1406 // · · · · 3: example301.c:3:16: ' ', 1407 // · · · }, 1408 // · · · Token: example301.c:3:2: PPELIF, 1409 // · · · Token2: example301.c:3:16: '\n', 1410 // · · }, 1411 // · }, 1412 // } 1413 } 1414 1415 func ExampleElseGroup() { 1416 fmt.Println(exampleAST(303, "\U00100000 \n#if other_a \n#else \n#endif")) 1417 // Output: 1418 // &cc.ElseGroup{ 1419 // · Token: example303.c:3:2: PPELSE, 1420 // · Token2: example303.c:3:8: '\n', 1421 // } 1422 } 1423 1424 func ExampleElseGroupOpt() { 1425 fmt.Println(exampleAST(304, "\U00100000 \n#if other_a \n#endif") == (*ElseGroupOpt)(nil)) 1426 // Output: 1427 // true 1428 } 1429 1430 func ExampleElseGroupOpt_case1() { 1431 fmt.Println(exampleAST(305, "\U00100000 \n#if other_a \n#else \n#endif")) 1432 // Output: 1433 // &cc.ElseGroupOpt{ 1434 // · ElseGroup: &cc.ElseGroup{ 1435 // · · Token: example305.c:3:2: PPELSE, 1436 // · · Token2: example305.c:3:8: '\n', 1437 // · }, 1438 // } 1439 } 1440 1441 func ExampleEndifLine() { 1442 fmt.Println(exampleAST(306, "\U00100000 \n#if other_a \n#endif")) 1443 // Output: 1444 // &cc.EndifLine{ 1445 // · Token: example306.c:3:2: PPENDIF, 1446 // } 1447 } 1448 1449 func ExampleEnumSpecifier() { 1450 fmt.Println(exampleAST(138, "\U00100002 enum { a } (")) 1451 // Output: 1452 // &cc.EnumSpecifier{ 1453 // · EnumeratorList: &cc.EnumeratorList{ 1454 // · · Enumerator: &cc.Enumerator{ 1455 // · · · EnumerationConstant: &cc.EnumerationConstant{ 1456 // · · · · Token: example138.c:1:9: IDENTIFIER "a", 1457 // · · · }, 1458 // · · }, 1459 // · }, 1460 // · Token: example138.c:1:2: ENUM "enum", 1461 // · Token2: example138.c:1:7: '{', 1462 // · Token3: example138.c:1:11: '}', 1463 // } 1464 } 1465 1466 func ExampleEnumSpecifier_case1() { 1467 fmt.Println(exampleAST(139, "\U00100002 enum a (")) 1468 // Output: 1469 // &cc.EnumSpecifier{ 1470 // · Case: 1, 1471 // · Token: example139.c:1:2: ENUM "enum", 1472 // · Token2: example139.c:1:7: IDENTIFIER "a", 1473 // } 1474 } 1475 1476 func ExampleEnumerationConstant() { 1477 fmt.Println(exampleAST(7, "\U00100002 enum { a ,")) 1478 // Output: 1479 // &cc.EnumerationConstant{ 1480 // · Token: example7.c:1:9: IDENTIFIER "a", 1481 // } 1482 } 1483 1484 func ExampleEnumerator() { 1485 fmt.Println(exampleAST(142, "\U00100002 enum { a ,")) 1486 // Output: 1487 // &cc.Enumerator{ 1488 // · EnumerationConstant: &cc.EnumerationConstant{ 1489 // · · Token: example142.c:1:9: IDENTIFIER "a", 1490 // · }, 1491 // } 1492 } 1493 1494 func ExampleEnumerator_case1() { 1495 fmt.Println(exampleAST(143, "\U00100002 enum { a = 'b' ,")) 1496 // Output: 1497 // &cc.Enumerator{ 1498 // · Value: 98, 1499 // · Case: 1, 1500 // · ConstantExpression: &cc.ConstantExpression{ 1501 // · · Type: int, 1502 // · · Value: 98, 1503 // · · Expression: &cc.Expression{ 1504 // · · · Type: int, 1505 // · · · Value: 98, 1506 // · · · Case: 1, 1507 // · · · Token: example143.c:1:13: CHARCONST "'b'", 1508 // · · }, 1509 // · }, 1510 // · EnumerationConstant: &cc.EnumerationConstant{ 1511 // · · Token: example143.c:1:9: IDENTIFIER "a", 1512 // · }, 1513 // · Token: example143.c:1:11: '=', 1514 // } 1515 } 1516 1517 func ExampleEnumeratorList() { 1518 fmt.Println(exampleAST(140, "\U00100002 enum { a ,")) 1519 // Output: 1520 // &cc.EnumeratorList{ 1521 // · Enumerator: &cc.Enumerator{ 1522 // · · EnumerationConstant: &cc.EnumerationConstant{ 1523 // · · · Token: example140.c:1:9: IDENTIFIER "a", 1524 // · · }, 1525 // · }, 1526 // } 1527 } 1528 1529 func ExampleEnumeratorList_case1() { 1530 fmt.Println(exampleAST(141, "\U00100002 enum { a , b ,")) 1531 // Output: 1532 // &cc.EnumeratorList{ 1533 // · Enumerator: &cc.Enumerator{ 1534 // · · EnumerationConstant: &cc.EnumerationConstant{ 1535 // · · · Token: example141.c:1:9: IDENTIFIER "a", 1536 // · · }, 1537 // · }, 1538 // · EnumeratorList: &cc.EnumeratorList{ 1539 // · · Case: 1, 1540 // · · Enumerator: &cc.Enumerator{ 1541 // · · · Value: 1, 1542 // · · · EnumerationConstant: &cc.EnumerationConstant{ 1543 // · · · · Token: example141.c:1:13: IDENTIFIER "b", 1544 // · · · }, 1545 // · · }, 1546 // · · Token: example141.c:1:11: ',', 1547 // · }, 1548 // } 1549 } 1550 1551 func ExampleExpression() { 1552 fmt.Println(exampleAST(12, "\U00100001 a")) 1553 // Output: 1554 // &cc.Expression{ 1555 // · Token: example12.c:1:2: IDENTIFIER "a", 1556 // } 1557 } 1558 1559 func ExampleExpression_case01() { 1560 fmt.Println(exampleAST(13, "\U00100001 'a'")) 1561 // Output: 1562 // &cc.Expression{ 1563 // · Case: 1, 1564 // · Token: example13.c:1:2: CHARCONST "'a'", 1565 // } 1566 } 1567 1568 func ExampleExpression_case02() { 1569 fmt.Println(exampleAST(14, "\U00100001 1.97")) 1570 // Output: 1571 // &cc.Expression{ 1572 // · Case: 2, 1573 // · Token: example14.c:1:2: FLOATCONST "1.97", 1574 // } 1575 } 1576 1577 func ExampleExpression_case03() { 1578 fmt.Println(exampleAST(15, "\U00100001 97")) 1579 // Output: 1580 // &cc.Expression{ 1581 // · Case: 3, 1582 // · Token: example15.c:1:2: INTCONST "97", 1583 // } 1584 } 1585 1586 func ExampleExpression_case04() { 1587 fmt.Println(exampleAST(16, "\U00100001 L'a'")) 1588 // Output: 1589 // &cc.Expression{ 1590 // · Case: 4, 1591 // · Token: example16.c:1:2: LONGCHARCONST "L'a'", 1592 // } 1593 } 1594 1595 func ExampleExpression_case05() { 1596 fmt.Println(exampleAST(17, "\U00100001 L\"a\"")) 1597 // Output: 1598 // &cc.Expression{ 1599 // · Case: 5, 1600 // · Token: example17.c:1:2: LONGSTRINGLITERAL "L\"a\"", 1601 // } 1602 } 1603 1604 func ExampleExpression_case06() { 1605 fmt.Println(exampleAST(18, "\U00100001 \"a\"")) 1606 // Output: 1607 // &cc.Expression{ 1608 // · Case: 6, 1609 // · Token: example18.c:1:2: STRINGLITERAL "\"a\"", 1610 // } 1611 } 1612 1613 func ExampleExpression_case07() { 1614 fmt.Println(exampleAST(19, "\U00100001 ( 'a' )")) 1615 // Output: 1616 // &cc.Expression{ 1617 // · Case: 7, 1618 // · ExpressionList: &cc.ExpressionList{ 1619 // · · Expression: &cc.Expression{ 1620 // · · · Case: 1, 1621 // · · · Token: example19.c:1:4: CHARCONST "'a'", 1622 // · · }, 1623 // · }, 1624 // · Token: example19.c:1:2: '(', 1625 // · Token2: example19.c:1:8: ')', 1626 // } 1627 } 1628 1629 func ExampleExpression_case08() { 1630 fmt.Println(exampleAST(20, "\U00100001 'a' [ 'b' ]")) 1631 // Output: 1632 // &cc.Expression{ 1633 // · Case: 8, 1634 // · Expression: &cc.Expression{ 1635 // · · Case: 1, 1636 // · · Token: example20.c:1:2: CHARCONST "'a'", 1637 // · }, 1638 // · ExpressionList: &cc.ExpressionList{ 1639 // · · Expression: &cc.Expression{ 1640 // · · · Case: 1, 1641 // · · · Token: example20.c:1:8: CHARCONST "'b'", 1642 // · · }, 1643 // · }, 1644 // · Token: example20.c:1:6: '[', 1645 // · Token2: example20.c:1:12: ']', 1646 // } 1647 } 1648 1649 func ExampleExpression_case09() { 1650 fmt.Println(exampleAST(21, "\U00100001 'a' ( )")) 1651 // Output: 1652 // &cc.Expression{ 1653 // · Case: 9, 1654 // · Expression: &cc.Expression{ 1655 // · · Case: 1, 1656 // · · Token: example21.c:1:2: CHARCONST "'a'", 1657 // · }, 1658 // · Token: example21.c:1:6: '(', 1659 // · Token2: example21.c:1:8: ')', 1660 // } 1661 } 1662 1663 func ExampleExpression_case10() { 1664 fmt.Println(exampleAST(22, "\U00100001 'a' . b")) 1665 // Output: 1666 // &cc.Expression{ 1667 // · Case: 10, 1668 // · Expression: &cc.Expression{ 1669 // · · Case: 1, 1670 // · · Token: example22.c:1:2: CHARCONST "'a'", 1671 // · }, 1672 // · Token: example22.c:1:6: '.', 1673 // · Token2: example22.c:1:8: IDENTIFIER "b", 1674 // } 1675 } 1676 1677 func ExampleExpression_case11() { 1678 fmt.Println(exampleAST(23, "\U00100001 'a' -> b")) 1679 // Output: 1680 // &cc.Expression{ 1681 // · Case: 11, 1682 // · Expression: &cc.Expression{ 1683 // · · Case: 1, 1684 // · · Token: example23.c:1:2: CHARCONST "'a'", 1685 // · }, 1686 // · Token: example23.c:1:6: ARROW, 1687 // · Token2: example23.c:1:9: IDENTIFIER "b", 1688 // } 1689 } 1690 1691 func ExampleExpression_case12() { 1692 fmt.Println(exampleAST(24, "\U00100001 'a' ++")) 1693 // Output: 1694 // &cc.Expression{ 1695 // · Case: 12, 1696 // · Expression: &cc.Expression{ 1697 // · · Case: 1, 1698 // · · Token: example24.c:1:2: CHARCONST "'a'", 1699 // · }, 1700 // · Token: example24.c:1:6: INC, 1701 // } 1702 } 1703 1704 func ExampleExpression_case13() { 1705 fmt.Println(exampleAST(25, "\U00100001 'a' --")) 1706 // Output: 1707 // &cc.Expression{ 1708 // · Case: 13, 1709 // · Expression: &cc.Expression{ 1710 // · · Case: 1, 1711 // · · Token: example25.c:1:2: CHARCONST "'a'", 1712 // · }, 1713 // · Token: example25.c:1:6: DEC, 1714 // } 1715 } 1716 1717 func ExampleExpression_case14() { 1718 fmt.Println(exampleAST(26, "\U00100001 ( _Bool ) { }")) 1719 // Output: 1720 // &cc.Expression{ 1721 // · Case: 14, 1722 // · Token: example26.c:1:2: '(', 1723 // · Token2: example26.c:1:10: ')', 1724 // · Token3: example26.c:1:12: '{', 1725 // · Token4: example26.c:1:14: '}', 1726 // · TypeName: &cc.TypeName{ 1727 // · · Type: bool, 1728 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 1729 // · · · TypeSpecifier: &cc.TypeSpecifier{ 1730 // · · · · Case: 9, 1731 // · · · · Token: example26.c:1:4: BOOL "_Bool", 1732 // · · · }, 1733 // · · }, 1734 // · }, 1735 // } 1736 } 1737 1738 func ExampleExpression_case15() { 1739 fmt.Println(exampleAST(27, "\U00100001 ++ 'a'")) 1740 // Output: 1741 // &cc.Expression{ 1742 // · Case: 15, 1743 // · Expression: &cc.Expression{ 1744 // · · Case: 1, 1745 // · · Token: example27.c:1:5: CHARCONST "'a'", 1746 // · }, 1747 // · Token: example27.c:1:2: INC, 1748 // } 1749 } 1750 1751 func ExampleExpression_case16() { 1752 fmt.Println(exampleAST(28, "\U00100001 -- 'a'")) 1753 // Output: 1754 // &cc.Expression{ 1755 // · Case: 16, 1756 // · Expression: &cc.Expression{ 1757 // · · Case: 1, 1758 // · · Token: example28.c:1:5: CHARCONST "'a'", 1759 // · }, 1760 // · Token: example28.c:1:2: DEC, 1761 // } 1762 } 1763 1764 func ExampleExpression_case17() { 1765 fmt.Println(exampleAST(29, "\U00100001 & 'a'")) 1766 // Output: 1767 // &cc.Expression{ 1768 // · Case: 17, 1769 // · Expression: &cc.Expression{ 1770 // · · Case: 1, 1771 // · · Token: example29.c:1:4: CHARCONST "'a'", 1772 // · }, 1773 // · Token: example29.c:1:2: '&', 1774 // } 1775 } 1776 1777 func ExampleExpression_case18() { 1778 fmt.Println(exampleAST(30, "\U00100001 * 'a'")) 1779 // Output: 1780 // &cc.Expression{ 1781 // · Case: 18, 1782 // · Expression: &cc.Expression{ 1783 // · · Case: 1, 1784 // · · Token: example30.c:1:4: CHARCONST "'a'", 1785 // · }, 1786 // · Token: example30.c:1:2: '*', 1787 // } 1788 } 1789 1790 func ExampleExpression_case19() { 1791 fmt.Println(exampleAST(31, "\U00100001 + 'a'")) 1792 // Output: 1793 // &cc.Expression{ 1794 // · Case: 19, 1795 // · Expression: &cc.Expression{ 1796 // · · Case: 1, 1797 // · · Token: example31.c:1:4: CHARCONST "'a'", 1798 // · }, 1799 // · Token: example31.c:1:2: '+', 1800 // } 1801 } 1802 1803 func ExampleExpression_case20() { 1804 fmt.Println(exampleAST(32, "\U00100001 - 'a'")) 1805 // Output: 1806 // &cc.Expression{ 1807 // · Case: 20, 1808 // · Expression: &cc.Expression{ 1809 // · · Case: 1, 1810 // · · Token: example32.c:1:4: CHARCONST "'a'", 1811 // · }, 1812 // · Token: example32.c:1:2: '-', 1813 // } 1814 } 1815 1816 func ExampleExpression_case21() { 1817 fmt.Println(exampleAST(33, "\U00100001 ~ 'a'")) 1818 // Output: 1819 // &cc.Expression{ 1820 // · Case: 21, 1821 // · Expression: &cc.Expression{ 1822 // · · Case: 1, 1823 // · · Token: example33.c:1:4: CHARCONST "'a'", 1824 // · }, 1825 // · Token: example33.c:1:2: '~', 1826 // } 1827 } 1828 1829 func ExampleExpression_case22() { 1830 fmt.Println(exampleAST(34, "\U00100001 ! 'a'")) 1831 // Output: 1832 // &cc.Expression{ 1833 // · Case: 22, 1834 // · Expression: &cc.Expression{ 1835 // · · Case: 1, 1836 // · · Token: example34.c:1:4: CHARCONST "'a'", 1837 // · }, 1838 // · Token: example34.c:1:2: '!', 1839 // } 1840 } 1841 1842 func ExampleExpression_case23() { 1843 fmt.Println(exampleAST(35, "\U00100001 sizeof 'a'")) 1844 // Output: 1845 // &cc.Expression{ 1846 // · Case: 23, 1847 // · Expression: &cc.Expression{ 1848 // · · Case: 1, 1849 // · · Token: example35.c:1:9: CHARCONST "'a'", 1850 // · }, 1851 // · Token: example35.c:1:2: SIZEOF "sizeof", 1852 // } 1853 } 1854 1855 func ExampleExpression_case24() { 1856 fmt.Println(exampleAST(36, "\U00100001 sizeof ( _Bool )")) 1857 // Output: 1858 // &cc.Expression{ 1859 // · Case: 24, 1860 // · Token: example36.c:1:2: SIZEOF "sizeof", 1861 // · Token2: example36.c:1:9: '(', 1862 // · Token3: example36.c:1:17: ')', 1863 // · TypeName: &cc.TypeName{ 1864 // · · Type: bool, 1865 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 1866 // · · · TypeSpecifier: &cc.TypeSpecifier{ 1867 // · · · · Case: 9, 1868 // · · · · Token: example36.c:1:11: BOOL "_Bool", 1869 // · · · }, 1870 // · · }, 1871 // · }, 1872 // } 1873 } 1874 1875 func ExampleExpression_case25() { 1876 fmt.Println(exampleAST(37, "\U00100001 ( _Bool ) 'a'")) 1877 // Output: 1878 // &cc.Expression{ 1879 // · Case: 25, 1880 // · Expression: &cc.Expression{ 1881 // · · Case: 1, 1882 // · · Token: example37.c:1:12: CHARCONST "'a'", 1883 // · }, 1884 // · Token: example37.c:1:2: '(', 1885 // · Token2: example37.c:1:10: ')', 1886 // · TypeName: &cc.TypeName{ 1887 // · · Type: bool, 1888 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 1889 // · · · TypeSpecifier: &cc.TypeSpecifier{ 1890 // · · · · Case: 9, 1891 // · · · · Token: example37.c:1:4: BOOL "_Bool", 1892 // · · · }, 1893 // · · }, 1894 // · }, 1895 // } 1896 } 1897 1898 func ExampleExpression_case26() { 1899 fmt.Println(exampleAST(38, "\U00100001 'a' * 'b'")) 1900 // Output: 1901 // &cc.Expression{ 1902 // · Case: 26, 1903 // · Expression: &cc.Expression{ 1904 // · · Case: 1, 1905 // · · Token: example38.c:1:2: CHARCONST "'a'", 1906 // · }, 1907 // · Expression2: &cc.Expression{ 1908 // · · Case: 1, 1909 // · · Token: example38.c:1:8: CHARCONST "'b'", 1910 // · }, 1911 // · Token: example38.c:1:6: '*', 1912 // } 1913 } 1914 1915 func ExampleExpression_case27() { 1916 fmt.Println(exampleAST(39, "\U00100001 'a' / 'b'")) 1917 // Output: 1918 // &cc.Expression{ 1919 // · Case: 27, 1920 // · Expression: &cc.Expression{ 1921 // · · Case: 1, 1922 // · · Token: example39.c:1:2: CHARCONST "'a'", 1923 // · }, 1924 // · Expression2: &cc.Expression{ 1925 // · · Case: 1, 1926 // · · Token: example39.c:1:8: CHARCONST "'b'", 1927 // · }, 1928 // · Token: example39.c:1:6: '/', 1929 // } 1930 } 1931 1932 func ExampleExpression_case28() { 1933 fmt.Println(exampleAST(40, "\U00100001 'a' % 'b'")) 1934 // Output: 1935 // &cc.Expression{ 1936 // · Case: 28, 1937 // · Expression: &cc.Expression{ 1938 // · · Case: 1, 1939 // · · Token: example40.c:1:2: CHARCONST "'a'", 1940 // · }, 1941 // · Expression2: &cc.Expression{ 1942 // · · Case: 1, 1943 // · · Token: example40.c:1:8: CHARCONST "'b'", 1944 // · }, 1945 // · Token: example40.c:1:6: '%', 1946 // } 1947 } 1948 1949 func ExampleExpression_case29() { 1950 fmt.Println(exampleAST(41, "\U00100001 'a' + 'b'")) 1951 // Output: 1952 // &cc.Expression{ 1953 // · Case: 29, 1954 // · Expression: &cc.Expression{ 1955 // · · Case: 1, 1956 // · · Token: example41.c:1:2: CHARCONST "'a'", 1957 // · }, 1958 // · Expression2: &cc.Expression{ 1959 // · · Case: 1, 1960 // · · Token: example41.c:1:8: CHARCONST "'b'", 1961 // · }, 1962 // · Token: example41.c:1:6: '+', 1963 // } 1964 } 1965 1966 func ExampleExpression_case30() { 1967 fmt.Println(exampleAST(42, "\U00100001 'a' - 'b'")) 1968 // Output: 1969 // &cc.Expression{ 1970 // · Case: 30, 1971 // · Expression: &cc.Expression{ 1972 // · · Case: 1, 1973 // · · Token: example42.c:1:2: CHARCONST "'a'", 1974 // · }, 1975 // · Expression2: &cc.Expression{ 1976 // · · Case: 1, 1977 // · · Token: example42.c:1:8: CHARCONST "'b'", 1978 // · }, 1979 // · Token: example42.c:1:6: '-', 1980 // } 1981 } 1982 1983 func ExampleExpression_case31() { 1984 fmt.Println(exampleAST(43, "\U00100001 'a' << 'b'")) 1985 // Output: 1986 // &cc.Expression{ 1987 // · Case: 31, 1988 // · Expression: &cc.Expression{ 1989 // · · Case: 1, 1990 // · · Token: example43.c:1:2: CHARCONST "'a'", 1991 // · }, 1992 // · Expression2: &cc.Expression{ 1993 // · · Case: 1, 1994 // · · Token: example43.c:1:9: CHARCONST "'b'", 1995 // · }, 1996 // · Token: example43.c:1:6: LSH, 1997 // } 1998 } 1999 2000 func ExampleExpression_case32() { 2001 fmt.Println(exampleAST(44, "\U00100001 'a' >> 'b'")) 2002 // Output: 2003 // &cc.Expression{ 2004 // · Case: 32, 2005 // · Expression: &cc.Expression{ 2006 // · · Case: 1, 2007 // · · Token: example44.c:1:2: CHARCONST "'a'", 2008 // · }, 2009 // · Expression2: &cc.Expression{ 2010 // · · Case: 1, 2011 // · · Token: example44.c:1:9: CHARCONST "'b'", 2012 // · }, 2013 // · Token: example44.c:1:6: RSH, 2014 // } 2015 } 2016 2017 func ExampleExpression_case33() { 2018 fmt.Println(exampleAST(45, "\U00100001 'a' < 'b'")) 2019 // Output: 2020 // &cc.Expression{ 2021 // · Case: 33, 2022 // · Expression: &cc.Expression{ 2023 // · · Case: 1, 2024 // · · Token: example45.c:1:2: CHARCONST "'a'", 2025 // · }, 2026 // · Expression2: &cc.Expression{ 2027 // · · Case: 1, 2028 // · · Token: example45.c:1:8: CHARCONST "'b'", 2029 // · }, 2030 // · Token: example45.c:1:6: '<', 2031 // } 2032 } 2033 2034 func ExampleExpression_case34() { 2035 fmt.Println(exampleAST(46, "\U00100001 'a' > 'b'")) 2036 // Output: 2037 // &cc.Expression{ 2038 // · Case: 34, 2039 // · Expression: &cc.Expression{ 2040 // · · Case: 1, 2041 // · · Token: example46.c:1:2: CHARCONST "'a'", 2042 // · }, 2043 // · Expression2: &cc.Expression{ 2044 // · · Case: 1, 2045 // · · Token: example46.c:1:8: CHARCONST "'b'", 2046 // · }, 2047 // · Token: example46.c:1:6: '>', 2048 // } 2049 } 2050 2051 func ExampleExpression_case35() { 2052 fmt.Println(exampleAST(47, "\U00100001 'a' <= 'b'")) 2053 // Output: 2054 // &cc.Expression{ 2055 // · Case: 35, 2056 // · Expression: &cc.Expression{ 2057 // · · Case: 1, 2058 // · · Token: example47.c:1:2: CHARCONST "'a'", 2059 // · }, 2060 // · Expression2: &cc.Expression{ 2061 // · · Case: 1, 2062 // · · Token: example47.c:1:9: CHARCONST "'b'", 2063 // · }, 2064 // · Token: example47.c:1:6: LEQ, 2065 // } 2066 } 2067 2068 func ExampleExpression_case36() { 2069 fmt.Println(exampleAST(48, "\U00100001 'a' >= 'b'")) 2070 // Output: 2071 // &cc.Expression{ 2072 // · Case: 36, 2073 // · Expression: &cc.Expression{ 2074 // · · Case: 1, 2075 // · · Token: example48.c:1:2: CHARCONST "'a'", 2076 // · }, 2077 // · Expression2: &cc.Expression{ 2078 // · · Case: 1, 2079 // · · Token: example48.c:1:9: CHARCONST "'b'", 2080 // · }, 2081 // · Token: example48.c:1:6: GEQ, 2082 // } 2083 } 2084 2085 func ExampleExpression_case37() { 2086 fmt.Println(exampleAST(49, "\U00100001 'a' == 'b'")) 2087 // Output: 2088 // &cc.Expression{ 2089 // · Case: 37, 2090 // · Expression: &cc.Expression{ 2091 // · · Case: 1, 2092 // · · Token: example49.c:1:2: CHARCONST "'a'", 2093 // · }, 2094 // · Expression2: &cc.Expression{ 2095 // · · Case: 1, 2096 // · · Token: example49.c:1:9: CHARCONST "'b'", 2097 // · }, 2098 // · Token: example49.c:1:6: EQ, 2099 // } 2100 } 2101 2102 func ExampleExpression_case38() { 2103 fmt.Println(exampleAST(50, "\U00100001 'a' != 'b'")) 2104 // Output: 2105 // &cc.Expression{ 2106 // · Case: 38, 2107 // · Expression: &cc.Expression{ 2108 // · · Case: 1, 2109 // · · Token: example50.c:1:2: CHARCONST "'a'", 2110 // · }, 2111 // · Expression2: &cc.Expression{ 2112 // · · Case: 1, 2113 // · · Token: example50.c:1:9: CHARCONST "'b'", 2114 // · }, 2115 // · Token: example50.c:1:6: NEQ, 2116 // } 2117 } 2118 2119 func ExampleExpression_case39() { 2120 fmt.Println(exampleAST(51, "\U00100001 'a' & 'b'")) 2121 // Output: 2122 // &cc.Expression{ 2123 // · Case: 39, 2124 // · Expression: &cc.Expression{ 2125 // · · Case: 1, 2126 // · · Token: example51.c:1:2: CHARCONST "'a'", 2127 // · }, 2128 // · Expression2: &cc.Expression{ 2129 // · · Case: 1, 2130 // · · Token: example51.c:1:8: CHARCONST "'b'", 2131 // · }, 2132 // · Token: example51.c:1:6: '&', 2133 // } 2134 } 2135 2136 func ExampleExpression_case40() { 2137 fmt.Println(exampleAST(52, "\U00100001 'a' ^ 'b'")) 2138 // Output: 2139 // &cc.Expression{ 2140 // · Case: 40, 2141 // · Expression: &cc.Expression{ 2142 // · · Case: 1, 2143 // · · Token: example52.c:1:2: CHARCONST "'a'", 2144 // · }, 2145 // · Expression2: &cc.Expression{ 2146 // · · Case: 1, 2147 // · · Token: example52.c:1:8: CHARCONST "'b'", 2148 // · }, 2149 // · Token: example52.c:1:6: '^', 2150 // } 2151 } 2152 2153 func ExampleExpression_case41() { 2154 fmt.Println(exampleAST(53, "\U00100001 'a' | 'b'")) 2155 // Output: 2156 // &cc.Expression{ 2157 // · Case: 41, 2158 // · Expression: &cc.Expression{ 2159 // · · Case: 1, 2160 // · · Token: example53.c:1:2: CHARCONST "'a'", 2161 // · }, 2162 // · Expression2: &cc.Expression{ 2163 // · · Case: 1, 2164 // · · Token: example53.c:1:8: CHARCONST "'b'", 2165 // · }, 2166 // · Token: example53.c:1:6: '|', 2167 // } 2168 } 2169 2170 func ExampleExpression_case42() { 2171 fmt.Println(exampleAST(54, "\U00100001 'a' && 'b'")) 2172 // Output: 2173 // &cc.Expression{ 2174 // · Case: 42, 2175 // · Expression: &cc.Expression{ 2176 // · · Case: 1, 2177 // · · Token: example54.c:1:2: CHARCONST "'a'", 2178 // · }, 2179 // · Expression2: &cc.Expression{ 2180 // · · Case: 1, 2181 // · · Token: example54.c:1:9: CHARCONST "'b'", 2182 // · }, 2183 // · Token: example54.c:1:6: ANDAND, 2184 // } 2185 } 2186 2187 func ExampleExpression_case43() { 2188 fmt.Println(exampleAST(55, "\U00100001 'a' || 'b'")) 2189 // Output: 2190 // &cc.Expression{ 2191 // · Case: 43, 2192 // · Expression: &cc.Expression{ 2193 // · · Case: 1, 2194 // · · Token: example55.c:1:2: CHARCONST "'a'", 2195 // · }, 2196 // · Expression2: &cc.Expression{ 2197 // · · Case: 1, 2198 // · · Token: example55.c:1:9: CHARCONST "'b'", 2199 // · }, 2200 // · Token: example55.c:1:6: OROR, 2201 // } 2202 } 2203 2204 func ExampleExpression_case44() { 2205 fmt.Println(exampleAST(56, "\U00100001 'a' ? 'b' : 'c'")) 2206 // Output: 2207 // &cc.Expression{ 2208 // · Case: 44, 2209 // · Expression: &cc.Expression{ 2210 // · · Case: 1, 2211 // · · Token: example56.c:1:2: CHARCONST "'a'", 2212 // · }, 2213 // · Expression2: &cc.Expression{ 2214 // · · Case: 1, 2215 // · · Token: example56.c:1:14: CHARCONST "'c'", 2216 // · }, 2217 // · ExpressionList: &cc.ExpressionList{ 2218 // · · Expression: &cc.Expression{ 2219 // · · · Case: 1, 2220 // · · · Token: example56.c:1:8: CHARCONST "'b'", 2221 // · · }, 2222 // · }, 2223 // · Token: example56.c:1:6: '?', 2224 // · Token2: example56.c:1:12: ':', 2225 // } 2226 } 2227 2228 func ExampleExpression_case45() { 2229 fmt.Println(exampleAST(57, "\U00100001 'a' = 'b'")) 2230 // Output: 2231 // &cc.Expression{ 2232 // · Case: 45, 2233 // · Expression: &cc.Expression{ 2234 // · · Case: 1, 2235 // · · Token: example57.c:1:2: CHARCONST "'a'", 2236 // · }, 2237 // · Expression2: &cc.Expression{ 2238 // · · Case: 1, 2239 // · · Token: example57.c:1:8: CHARCONST "'b'", 2240 // · }, 2241 // · Token: example57.c:1:6: '=', 2242 // } 2243 } 2244 2245 func ExampleExpression_case46() { 2246 fmt.Println(exampleAST(58, "\U00100001 'a' *= 'b'")) 2247 // Output: 2248 // &cc.Expression{ 2249 // · Case: 46, 2250 // · Expression: &cc.Expression{ 2251 // · · Case: 1, 2252 // · · Token: example58.c:1:2: CHARCONST "'a'", 2253 // · }, 2254 // · Expression2: &cc.Expression{ 2255 // · · Case: 1, 2256 // · · Token: example58.c:1:9: CHARCONST "'b'", 2257 // · }, 2258 // · Token: example58.c:1:6: MULASSIGN, 2259 // } 2260 } 2261 2262 func ExampleExpression_case47() { 2263 fmt.Println(exampleAST(59, "\U00100001 'a' /= 'b'")) 2264 // Output: 2265 // &cc.Expression{ 2266 // · Case: 47, 2267 // · Expression: &cc.Expression{ 2268 // · · Case: 1, 2269 // · · Token: example59.c:1:2: CHARCONST "'a'", 2270 // · }, 2271 // · Expression2: &cc.Expression{ 2272 // · · Case: 1, 2273 // · · Token: example59.c:1:9: CHARCONST "'b'", 2274 // · }, 2275 // · Token: example59.c:1:6: DIVASSIGN, 2276 // } 2277 } 2278 2279 func ExampleExpression_case48() { 2280 fmt.Println(exampleAST(60, "\U00100001 'a' %= 'b'")) 2281 // Output: 2282 // &cc.Expression{ 2283 // · Case: 48, 2284 // · Expression: &cc.Expression{ 2285 // · · Case: 1, 2286 // · · Token: example60.c:1:2: CHARCONST "'a'", 2287 // · }, 2288 // · Expression2: &cc.Expression{ 2289 // · · Case: 1, 2290 // · · Token: example60.c:1:9: CHARCONST "'b'", 2291 // · }, 2292 // · Token: example60.c:1:6: MODASSIGN, 2293 // } 2294 } 2295 2296 func ExampleExpression_case49() { 2297 fmt.Println(exampleAST(61, "\U00100001 'a' += 'b'")) 2298 // Output: 2299 // &cc.Expression{ 2300 // · Case: 49, 2301 // · Expression: &cc.Expression{ 2302 // · · Case: 1, 2303 // · · Token: example61.c:1:2: CHARCONST "'a'", 2304 // · }, 2305 // · Expression2: &cc.Expression{ 2306 // · · Case: 1, 2307 // · · Token: example61.c:1:9: CHARCONST "'b'", 2308 // · }, 2309 // · Token: example61.c:1:6: ADDASSIGN, 2310 // } 2311 } 2312 2313 func ExampleExpression_case50() { 2314 fmt.Println(exampleAST(62, "\U00100001 'a' -= 'b'")) 2315 // Output: 2316 // &cc.Expression{ 2317 // · Case: 50, 2318 // · Expression: &cc.Expression{ 2319 // · · Case: 1, 2320 // · · Token: example62.c:1:2: CHARCONST "'a'", 2321 // · }, 2322 // · Expression2: &cc.Expression{ 2323 // · · Case: 1, 2324 // · · Token: example62.c:1:9: CHARCONST "'b'", 2325 // · }, 2326 // · Token: example62.c:1:6: SUBASSIGN, 2327 // } 2328 } 2329 2330 func ExampleExpression_case51() { 2331 fmt.Println(exampleAST(63, "\U00100001 'a' <<= 'b'")) 2332 // Output: 2333 // &cc.Expression{ 2334 // · Case: 51, 2335 // · Expression: &cc.Expression{ 2336 // · · Case: 1, 2337 // · · Token: example63.c:1:2: CHARCONST "'a'", 2338 // · }, 2339 // · Expression2: &cc.Expression{ 2340 // · · Case: 1, 2341 // · · Token: example63.c:1:10: CHARCONST "'b'", 2342 // · }, 2343 // · Token: example63.c:1:6: LSHASSIGN, 2344 // } 2345 } 2346 2347 func ExampleExpression_case52() { 2348 fmt.Println(exampleAST(64, "\U00100001 'a' >>= 'b'")) 2349 // Output: 2350 // &cc.Expression{ 2351 // · Case: 52, 2352 // · Expression: &cc.Expression{ 2353 // · · Case: 1, 2354 // · · Token: example64.c:1:2: CHARCONST "'a'", 2355 // · }, 2356 // · Expression2: &cc.Expression{ 2357 // · · Case: 1, 2358 // · · Token: example64.c:1:10: CHARCONST "'b'", 2359 // · }, 2360 // · Token: example64.c:1:6: RSHASSIGN, 2361 // } 2362 } 2363 2364 func ExampleExpression_case53() { 2365 fmt.Println(exampleAST(65, "\U00100001 'a' &= 'b'")) 2366 // Output: 2367 // &cc.Expression{ 2368 // · Case: 53, 2369 // · Expression: &cc.Expression{ 2370 // · · Case: 1, 2371 // · · Token: example65.c:1:2: CHARCONST "'a'", 2372 // · }, 2373 // · Expression2: &cc.Expression{ 2374 // · · Case: 1, 2375 // · · Token: example65.c:1:9: CHARCONST "'b'", 2376 // · }, 2377 // · Token: example65.c:1:6: ANDASSIGN, 2378 // } 2379 } 2380 2381 func ExampleExpression_case54() { 2382 fmt.Println(exampleAST(66, "\U00100001 'a' ^= 'b'")) 2383 // Output: 2384 // &cc.Expression{ 2385 // · Case: 54, 2386 // · Expression: &cc.Expression{ 2387 // · · Case: 1, 2388 // · · Token: example66.c:1:2: CHARCONST "'a'", 2389 // · }, 2390 // · Expression2: &cc.Expression{ 2391 // · · Case: 1, 2392 // · · Token: example66.c:1:9: CHARCONST "'b'", 2393 // · }, 2394 // · Token: example66.c:1:6: XORASSIGN, 2395 // } 2396 } 2397 2398 func ExampleExpression_case55() { 2399 fmt.Println(exampleAST(67, "\U00100001 'a' |= 'b'")) 2400 // Output: 2401 // &cc.Expression{ 2402 // · Case: 55, 2403 // · Expression: &cc.Expression{ 2404 // · · Case: 1, 2405 // · · Token: example67.c:1:2: CHARCONST "'a'", 2406 // · }, 2407 // · Expression2: &cc.Expression{ 2408 // · · Case: 1, 2409 // · · Token: example67.c:1:9: CHARCONST "'b'", 2410 // · }, 2411 // · Token: example67.c:1:6: ORASSIGN, 2412 // } 2413 } 2414 2415 func ExampleExpression_case56() { 2416 fmt.Println(exampleAST(68, "\U00100001 _Alignof ( _Bool )")) 2417 // Output: 2418 // &cc.Expression{ 2419 // · Case: 56, 2420 // · Token: example68.c:1:2: ALIGNOF "_Alignof", 2421 // · Token2: example68.c:1:11: '(', 2422 // · Token3: example68.c:1:19: ')', 2423 // · TypeName: &cc.TypeName{ 2424 // · · Type: bool, 2425 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 2426 // · · · TypeSpecifier: &cc.TypeSpecifier{ 2427 // · · · · Case: 9, 2428 // · · · · Token: example68.c:1:13: BOOL "_Bool", 2429 // · · · }, 2430 // · · }, 2431 // · }, 2432 // } 2433 } 2434 2435 func ExampleExpression_case57() { 2436 fmt.Println(exampleAST(69, "\U00100001 ( { } )")) 2437 // Output: 2438 // &cc.Expression{ 2439 // · Case: 57, 2440 // · CompoundStatement: &cc.CompoundStatement{ 2441 // · · Token: example69.c:1:4: '{', 2442 // · · Token2: example69.c:1:6: '}', 2443 // · }, 2444 // · Token: example69.c:1:2: '(', 2445 // · Token2: example69.c:1:8: ')', 2446 // } 2447 } 2448 2449 func ExampleExpression_case58() { 2450 fmt.Println(exampleAST(70, "\U00100001 && a")) 2451 // Output: 2452 // &cc.Expression{ 2453 // · Case: 58, 2454 // · Token: example70.c:1:2: ANDAND, 2455 // · Token2: example70.c:1:5: IDENTIFIER "a", 2456 // } 2457 } 2458 2459 func ExampleExpression_case59() { 2460 fmt.Println(exampleAST(71, "\U00100001 'a' ? : 'b'")) 2461 // Output: 2462 // &cc.Expression{ 2463 // · Case: 59, 2464 // · Expression: &cc.Expression{ 2465 // · · Case: 1, 2466 // · · Token: example71.c:1:2: CHARCONST "'a'", 2467 // · }, 2468 // · Expression2: &cc.Expression{ 2469 // · · Case: 1, 2470 // · · Token: example71.c:1:10: CHARCONST "'b'", 2471 // · }, 2472 // · Token: example71.c:1:6: '?', 2473 // · Token2: example71.c:1:8: ':', 2474 // } 2475 } 2476 2477 func ExampleExpressionList() { 2478 fmt.Println(exampleAST(74, "\U00100001 ( 'a' )")) 2479 // Output: 2480 // &cc.ExpressionList{ 2481 // · Expression: &cc.Expression{ 2482 // · · Case: 1, 2483 // · · Token: example74.c:1:4: CHARCONST "'a'", 2484 // · }, 2485 // } 2486 } 2487 2488 func ExampleExpressionList_case1() { 2489 fmt.Println(exampleAST(75, "\U00100001 ( 'a' , 'b' )")) 2490 // Output: 2491 // &cc.ExpressionList{ 2492 // · Expression: &cc.Expression{ 2493 // · · Case: 1, 2494 // · · Token: example75.c:1:4: CHARCONST "'a'", 2495 // · }, 2496 // · ExpressionList: &cc.ExpressionList{ 2497 // · · Case: 1, 2498 // · · Expression: &cc.Expression{ 2499 // · · · Case: 1, 2500 // · · · Token: example75.c:1:10: CHARCONST "'b'", 2501 // · · }, 2502 // · · Token: example75.c:1:8: ',', 2503 // · }, 2504 // } 2505 } 2506 2507 func ExampleExpressionListOpt() { 2508 fmt.Println(exampleAST(76, "\U00100001 ( { ;") == (*ExpressionListOpt)(nil)) 2509 // Output: 2510 // true 2511 } 2512 2513 func ExampleExpressionListOpt_case1() { 2514 fmt.Println(exampleAST(77, "\U00100001 ( { 'a' )")) 2515 // Output: 2516 // &cc.ExpressionListOpt{ 2517 // · ExpressionList: &cc.ExpressionList{ 2518 // · · Type: int, 2519 // · · Value: 97, 2520 // · · Expression: &cc.Expression{ 2521 // · · · Type: int, 2522 // · · · Value: 97, 2523 // · · · Case: 1, 2524 // · · · Token: example77.c:1:6: CHARCONST "'a'", 2525 // · · }, 2526 // · }, 2527 // } 2528 } 2529 2530 func ExampleExpressionOpt() { 2531 fmt.Println(exampleAST(72, "\U00100001 ( _Bool [ ]") == (*ExpressionOpt)(nil)) 2532 // Output: 2533 // true 2534 } 2535 2536 func ExampleExpressionOpt_case1() { 2537 fmt.Println(exampleAST(73, "\U00100002 a [ 'b' ]")) 2538 // Output: 2539 // &cc.ExpressionOpt{ 2540 // · Expression: &cc.Expression{ 2541 // · · Type: int, 2542 // · · Value: 98, 2543 // · · Case: 1, 2544 // · · Token: example73.c:1:6: CHARCONST "'b'", 2545 // · }, 2546 // } 2547 } 2548 2549 func ExampleExpressionStatement() { 2550 fmt.Println(exampleAST(232, "\U00100001 ( { ; !")) 2551 // Output: 2552 // &cc.ExpressionStatement{ 2553 // · Token: example232.c:1:6: ';', 2554 // } 2555 } 2556 2557 func ExampleExternalDeclaration() { 2558 fmt.Println(exampleAST(247, "\U00100002 a { }")) 2559 // Output: 2560 // &cc.ExternalDeclaration{ 2561 // · FunctionDefinition: &cc.FunctionDefinition{ 2562 // · · Case: 1, 2563 // · · Declarator: &cc.Declarator{ 2564 // · · · Linkage: External, 2565 // · · · Type: int, 2566 // · · · DirectDeclarator: &cc.DirectDeclarator{ 2567 // · · · · Token: example247.c:1:2: IDENTIFIER "a", 2568 // · · · }, 2569 // · · }, 2570 // · · FunctionBody: &cc.FunctionBody{ 2571 // · · · CompoundStatement: &cc.CompoundStatement{ 2572 // · · · · Token: example247.c:1:4: '{', 2573 // · · · · Token2: example247.c:1:6: '}', 2574 // · · · }, 2575 // · · }, 2576 // · }, 2577 // } 2578 } 2579 2580 func ExampleExternalDeclaration_case1() { 2581 fmt.Println(exampleAST(248, "\U00100002 auto ;")) 2582 // Output: 2583 // &cc.ExternalDeclaration{ 2584 // · Case: 1, 2585 // · Declaration: &cc.Declaration{ 2586 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 2587 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 2588 // · · · · Case: 3, 2589 // · · · · Token: example248.c:1:2: AUTO "auto", 2590 // · · · }, 2591 // · · }, 2592 // · · Token: example248.c:1:7: ';', 2593 // · }, 2594 // } 2595 } 2596 2597 func ExampleExternalDeclaration_case2() { 2598 fmt.Println(exampleAST(249, "\U00100002 asm ( \"a\" ) ;")) 2599 // Output: 2600 // &cc.ExternalDeclaration{ 2601 // · BasicAssemblerStatement: &cc.BasicAssemblerStatement{ 2602 // · · AssemblerInstructions: &cc.AssemblerInstructions{ 2603 // · · · Token: example249.c:1:8: STRINGLITERAL "\"a\"", 2604 // · · }, 2605 // · · Token: example249.c:1:2: ASM "asm", 2606 // · · Token2: example249.c:1:6: '(', 2607 // · · Token3: example249.c:1:12: ')', 2608 // · }, 2609 // · Case: 2, 2610 // · Token: example249.c:1:14: ';', 2611 // } 2612 } 2613 2614 func ExampleExternalDeclaration_case3() { 2615 fmt.Println(exampleAST(250, "\U00100002 ;")) 2616 // Output: 2617 // &cc.ExternalDeclaration{ 2618 // · Case: 3, 2619 // · Token: example250.c:1:2: ';', 2620 // } 2621 } 2622 2623 func ExampleFunctionBody() { 2624 fmt.Println(exampleAST(257, "\U00100002 a { }")) 2625 // Output: 2626 // &cc.FunctionBody{ 2627 // · CompoundStatement: &cc.CompoundStatement{ 2628 // · · Token: example257.c:1:4: '{', 2629 // · · Token2: example257.c:1:6: '}', 2630 // · }, 2631 // } 2632 } 2633 2634 func ExampleFunctionBody_case1() { 2635 fmt.Println(exampleAST(259, "\U00100002 a asm ( \"b\" ) ;")) 2636 // Output: 2637 // &cc.FunctionBody{ 2638 // · AssemblerStatement: &cc.AssemblerStatement{ 2639 // · · BasicAssemblerStatement: &cc.BasicAssemblerStatement{ 2640 // · · · AssemblerInstructions: &cc.AssemblerInstructions{ 2641 // · · · · Token: example259.c:1:10: STRINGLITERAL "\"b\"", 2642 // · · · }, 2643 // · · · Token: example259.c:1:4: ASM "asm", 2644 // · · · Token2: example259.c:1:8: '(', 2645 // · · · Token3: example259.c:1:14: ')', 2646 // · · }, 2647 // · }, 2648 // · Case: 1, 2649 // · Token: example259.c:1:16: ';', 2650 // } 2651 } 2652 2653 func ExampleFunctionDefinition() { 2654 fmt.Println(exampleAST(252, "\U00100002 auto a { }")) 2655 // Output: 2656 // &cc.FunctionDefinition{ 2657 // · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 2658 // · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 2659 // · · · Case: 3, 2660 // · · · Token: example252.c:1:2: AUTO "auto", 2661 // · · }, 2662 // · }, 2663 // · Declarator: &cc.Declarator{ 2664 // · · Linkage: None, 2665 // · · Type: auto int, 2666 // · · DirectDeclarator: &cc.DirectDeclarator{ 2667 // · · · Token: example252.c:1:7: IDENTIFIER "a", 2668 // · · }, 2669 // · }, 2670 // · FunctionBody: &cc.FunctionBody{ 2671 // · · CompoundStatement: &cc.CompoundStatement{ 2672 // · · · Token: example252.c:1:9: '{', 2673 // · · · Token2: example252.c:1:11: '}', 2674 // · · }, 2675 // · }, 2676 // } 2677 } 2678 2679 func ExampleFunctionDefinition_case1() { 2680 fmt.Println(exampleAST(255, "\U00100002 a { }")) 2681 // Output: 2682 // &cc.FunctionDefinition{ 2683 // · Case: 1, 2684 // · Declarator: &cc.Declarator{ 2685 // · · Linkage: External, 2686 // · · Type: int, 2687 // · · DirectDeclarator: &cc.DirectDeclarator{ 2688 // · · · Token: example255.c:1:2: IDENTIFIER "a", 2689 // · · }, 2690 // · }, 2691 // · FunctionBody: &cc.FunctionBody{ 2692 // · · CompoundStatement: &cc.CompoundStatement{ 2693 // · · · Token: example255.c:1:4: '{', 2694 // · · · Token2: example255.c:1:6: '}', 2695 // · · }, 2696 // · }, 2697 // } 2698 } 2699 2700 func ExampleFunctionSpecifier() { 2701 fmt.Println(exampleAST(147, "\U00100002 inline (")) 2702 // Output: 2703 // &cc.FunctionSpecifier{ 2704 // · Token: example147.c:1:2: INLINE "inline", 2705 // } 2706 } 2707 2708 func ExampleFunctionSpecifier_case1() { 2709 fmt.Println(exampleAST(148, "\U00100002 _Noreturn (")) 2710 // Output: 2711 // &cc.FunctionSpecifier{ 2712 // · Case: 1, 2713 // · Token: example148.c:1:2: NORETURN "_Noreturn", 2714 // } 2715 } 2716 2717 func ExampleGroupList() { 2718 fmt.Println(exampleAST(286, "\U00100000 ")) 2719 // Output: 2720 // &cc.GroupList{ 2721 // } 2722 } 2723 2724 func ExampleGroupList_case1() { 2725 fmt.Println(exampleAST(287, "\U00100000int\nf() {}")) 2726 // Output: 2727 // &cc.GroupList{ 2728 // · GroupList: &cc.GroupList{ 2729 // · · Case: 1, 2730 // · · GroupPart: []xc.Token{ // len 6 2731 // · · · 0: example287.c:2:1: IDENTIFIER "f", 2732 // · · · 1: example287.c:2:2: '(', 2733 // · · · 2: example287.c:2:3: ')', 2734 // · · · 3: example287.c:2:4: ' ', 2735 // · · · 4: example287.c:2:5: '{', 2736 // · · · 5: example287.c:2:6: '}', 2737 // · · }, 2738 // · }, 2739 // · GroupPart: []xc.Token{ // len 2 2740 // · · 0: example287.c:1:1: IDENTIFIER "int", 2741 // · · 1: example287.c:1:4: ' ', 2742 // · }, 2743 // } 2744 } 2745 2746 func ExampleGroupListOpt() { 2747 fmt.Println(exampleAST(288, "\U00100000 \n#ifndef a \n#elif") == (*GroupListOpt)(nil)) 2748 // Output: 2749 // true 2750 } 2751 2752 func ExampleGroupListOpt_case1() { 2753 fmt.Println(exampleAST(289, "\U00100000 \n#ifndef a\nb\n#elif")) 2754 // Output: 2755 // &cc.GroupListOpt{ 2756 // · GroupList: &cc.GroupList{ 2757 // · · GroupPart: []xc.Token{ // len 2 2758 // · · · 0: example289.c:3:1: IDENTIFIER "b", 2759 // · · · 1: example289.c:3:2: ' ', 2760 // · · }, 2761 // · }, 2762 // } 2763 } 2764 2765 func ExampleIdentifierList() { 2766 fmt.Println(exampleAST(177, "\U00100002 a ( b )")) 2767 // Output: 2768 // &cc.IdentifierList{ 2769 // · Token: example177.c:1:6: IDENTIFIER "b", 2770 // } 2771 } 2772 2773 func ExampleIdentifierList_case1() { 2774 fmt.Println(exampleAST(178, "\U00100002 a ( b , c )")) 2775 // Output: 2776 // &cc.IdentifierList{ 2777 // · IdentifierList: &cc.IdentifierList{ 2778 // · · Case: 1, 2779 // · · Token: example178.c:1:8: ',', 2780 // · · Token2: example178.c:1:10: IDENTIFIER "c", 2781 // · }, 2782 // · Token: example178.c:1:6: IDENTIFIER "b", 2783 // } 2784 } 2785 2786 func ExampleIdentifierListOpt() { 2787 fmt.Println(exampleAST(179, "\U00100002 a ( )") == (*IdentifierListOpt)(nil)) 2788 // Output: 2789 // true 2790 } 2791 2792 func ExampleIdentifierListOpt_case1() { 2793 fmt.Println(exampleAST(180, "\U00100002 a ( b )")) 2794 // Output: 2795 // &cc.IdentifierListOpt{ 2796 // · IdentifierList: &cc.IdentifierList{ 2797 // · · Token: example180.c:1:6: IDENTIFIER "b", 2798 // · }, 2799 // } 2800 } 2801 2802 func ExampleIdentifierOpt() { 2803 fmt.Println(exampleAST(181, "\U00100002 struct {") == (*IdentifierOpt)(nil)) 2804 // Output: 2805 // true 2806 } 2807 2808 func ExampleIdentifierOpt_case1() { 2809 fmt.Println(exampleAST(182, "\U00100002 enum a {")) 2810 // Output: 2811 // &cc.IdentifierOpt{ 2812 // · Token: example182.c:1:7: IDENTIFIER "a", 2813 // } 2814 } 2815 2816 func ExampleIfGroup() { 2817 fmt.Println(exampleAST(295, "\U00100000 \n#if other_a \n#elif")) 2818 // Output: 2819 // &cc.IfGroup{ 2820 // · PPTokenList: []xc.Token{ // len 4 2821 // · · 0: example295.c:2:4: ' ', 2822 // · · 1: example295.c:2:5: IDENTIFIER "other_a", 2823 // · · 2: example295.c:2:12: ' ', 2824 // · · 3: example295.c:2:14: ' ', 2825 // · }, 2826 // · Token: example295.c:2:2: PPIF, 2827 // · Token2: example295.c:2:14: '\n', 2828 // } 2829 } 2830 2831 func ExampleIfGroup_case1() { 2832 fmt.Println(exampleAST(296, "\U00100000 \n#ifdef a \n#elif")) 2833 // Output: 2834 // &cc.IfGroup{ 2835 // · Case: 1, 2836 // · Token: example296.c:2:2: PPIFDEF, 2837 // · Token2: example296.c:2:8: IDENTIFIER "a", 2838 // · Token3: example296.c:2:11: '\n', 2839 // } 2840 } 2841 2842 func ExampleIfGroup_case2() { 2843 fmt.Println(exampleAST(297, "\U00100000 \n#ifndef a \n#elif")) 2844 // Output: 2845 // &cc.IfGroup{ 2846 // · Case: 2, 2847 // · Token: example297.c:2:2: PPIFNDEF, 2848 // · Token2: example297.c:2:9: IDENTIFIER "a", 2849 // · Token3: example297.c:2:12: '\n', 2850 // } 2851 } 2852 2853 func ExampleIfSection() { 2854 fmt.Println(exampleAST(294, "\U00100000 \n#if other_a \n#endif")) 2855 // Output: 2856 // &cc.IfSection{ 2857 // · EndifLine: &cc.EndifLine{ 2858 // · · Token: example294.c:3:2: PPENDIF, 2859 // · }, 2860 // · IfGroup: &cc.IfGroup{ 2861 // · · PPTokenList: []xc.Token{ // len 4 2862 // · · · 0: example294.c:2:4: ' ', 2863 // · · · 1: example294.c:2:5: IDENTIFIER "other_a", 2864 // · · · 2: example294.c:2:12: ' ', 2865 // · · · 3: example294.c:2:14: ' ', 2866 // · · }, 2867 // · · Token: example294.c:2:2: PPIF, 2868 // · · Token2: example294.c:2:14: '\n', 2869 // · }, 2870 // } 2871 } 2872 2873 func ExampleInitDeclarator() { 2874 fmt.Println(exampleAST(92, "\U00100002 a auto b ,")) 2875 // Output: 2876 // &cc.InitDeclarator{ 2877 // · Declarator: &cc.Declarator{ 2878 // · · Linkage: None, 2879 // · · Type: auto undefined, 2880 // · · DirectDeclarator: &cc.DirectDeclarator{ 2881 // · · · Token: example92.c:1:9: IDENTIFIER "b", 2882 // · · }, 2883 // · }, 2884 // } 2885 } 2886 2887 func ExampleInitDeclarator_case1() { 2888 fmt.Println(exampleAST(94, "\U00100002 auto a = 'b' ,")) 2889 // Output: 2890 // &cc.InitDeclarator{ 2891 // · Case: 1, 2892 // · Declarator: &cc.Declarator{ 2893 // · · Linkage: None, 2894 // · · Type: auto undefined, 2895 // · · DirectDeclarator: &cc.DirectDeclarator{ 2896 // · · · Token: example94.c:1:7: IDENTIFIER "a", 2897 // · · }, 2898 // · }, 2899 // · Initializer: &cc.Initializer{ 2900 // · · Expression: &cc.Expression{ 2901 // · · · Type: int, 2902 // · · · Value: 98, 2903 // · · · Case: 1, 2904 // · · · Token: example94.c:1:11: CHARCONST "'b'", 2905 // · · }, 2906 // · }, 2907 // · Token: example94.c:1:9: '=', 2908 // } 2909 } 2910 2911 func ExampleInitDeclaratorList() { 2912 fmt.Println(exampleAST(88, "\U00100002 auto a ,")) 2913 // Output: 2914 // &cc.InitDeclaratorList{ 2915 // · InitDeclarator: &cc.InitDeclarator{ 2916 // · · Declarator: &cc.Declarator{ 2917 // · · · Linkage: None, 2918 // · · · Type: auto undefined, 2919 // · · · DirectDeclarator: &cc.DirectDeclarator{ 2920 // · · · · Token: example88.c:1:7: IDENTIFIER "a", 2921 // · · · }, 2922 // · · }, 2923 // · }, 2924 // } 2925 } 2926 2927 func ExampleInitDeclaratorList_case1() { 2928 fmt.Println(exampleAST(89, "\U00100002 auto a , b ,")) 2929 // Output: 2930 // &cc.InitDeclaratorList{ 2931 // · InitDeclarator: &cc.InitDeclarator{ 2932 // · · Declarator: &cc.Declarator{ 2933 // · · · Linkage: None, 2934 // · · · Type: auto undefined, 2935 // · · · DirectDeclarator: &cc.DirectDeclarator{ 2936 // · · · · Token: example89.c:1:7: IDENTIFIER "a", 2937 // · · · }, 2938 // · · }, 2939 // · }, 2940 // · InitDeclaratorList: &cc.InitDeclaratorList{ 2941 // · · Case: 1, 2942 // · · InitDeclarator: &cc.InitDeclarator{ 2943 // · · · Declarator: &cc.Declarator{ 2944 // · · · · Linkage: None, 2945 // · · · · Type: auto undefined, 2946 // · · · · DirectDeclarator: &cc.DirectDeclarator{ 2947 // · · · · · Token: example89.c:1:11: IDENTIFIER "b", 2948 // · · · · }, 2949 // · · · }, 2950 // · · }, 2951 // · · Token: example89.c:1:9: ',', 2952 // · }, 2953 // } 2954 } 2955 2956 func ExampleInitDeclaratorListOpt() { 2957 fmt.Println(exampleAST(90, "\U00100002 auto ;") == (*InitDeclaratorListOpt)(nil)) 2958 // Output: 2959 // true 2960 } 2961 2962 func ExampleInitDeclaratorListOpt_case1() { 2963 fmt.Println(exampleAST(91, "\U00100002 auto a ;")) 2964 // Output: 2965 // &cc.InitDeclaratorListOpt{ 2966 // · InitDeclaratorList: &cc.InitDeclaratorList{ 2967 // · · InitDeclarator: &cc.InitDeclarator{ 2968 // · · · Declarator: &cc.Declarator{ 2969 // · · · · Linkage: None, 2970 // · · · · Type: auto undefined, 2971 // · · · · DirectDeclarator: &cc.DirectDeclarator{ 2972 // · · · · · Token: example91.c:1:7: IDENTIFIER "a", 2973 // · · · · }, 2974 // · · · }, 2975 // · · }, 2976 // · }, 2977 // } 2978 } 2979 2980 func ExampleInitializer() { 2981 fmt.Println(exampleAST(201, "\U00100002 auto a = 'b' ,")) 2982 // Output: 2983 // &cc.Initializer{ 2984 // · Expression: &cc.Expression{ 2985 // · · Type: int, 2986 // · · Value: 98, 2987 // · · Case: 1, 2988 // · · Token: example201.c:1:11: CHARCONST "'b'", 2989 // · }, 2990 // } 2991 } 2992 2993 func ExampleInitializer_case1() { 2994 fmt.Println(exampleAST(202, "\U00100002 auto a = { } ,")) 2995 // Output: 2996 // &cc.Initializer{ 2997 // · Case: 1, 2998 // · Token: example202.c:1:11: '{', 2999 // · Token2: example202.c:1:13: '}', 3000 // } 3001 } 3002 3003 func ExampleInitializer_case2() { 3004 fmt.Println(exampleAST(203, "\U00100002 auto a = b : 'c' ,")) 3005 // Output: 3006 // &cc.Initializer{ 3007 // · Case: 2, 3008 // · Initializer: &cc.Initializer{ 3009 // · · Expression: &cc.Expression{ 3010 // · · · Type: int, 3011 // · · · Value: 99, 3012 // · · · Case: 1, 3013 // · · · Token: example203.c:1:15: CHARCONST "'c'", 3014 // · · }, 3015 // · }, 3016 // · Token: example203.c:1:11: IDENTIFIER "b", 3017 // · Token2: example203.c:1:13: ':', 3018 // } 3019 } 3020 3021 func ExampleInitializerList() { 3022 fmt.Println(exampleAST(204, "\U00100002 auto a = { 'b' ,")) 3023 // Output: 3024 // &cc.InitializerList{ 3025 // · Initializer: &cc.Initializer{ 3026 // · · Expression: &cc.Expression{ 3027 // · · · Type: int, 3028 // · · · Value: 98, 3029 // · · · Case: 1, 3030 // · · · Token: example204.c:1:13: CHARCONST "'b'", 3031 // · · }, 3032 // · }, 3033 // } 3034 } 3035 3036 func ExampleInitializerList_case1() { 3037 fmt.Println(exampleAST(205, "\U00100002 auto a = { , 'b' ,")) 3038 // Output: 3039 // &cc.InitializerList{ 3040 // · Case: 1, 3041 // · Initializer: &cc.Initializer{ 3042 // · · Expression: &cc.Expression{ 3043 // · · · Type: int, 3044 // · · · Value: 98, 3045 // · · · Case: 1, 3046 // · · · Token: example205.c:1:15: CHARCONST "'b'", 3047 // · · }, 3048 // · }, 3049 // · Token: example205.c:1:13: ',', 3050 // } 3051 } 3052 3053 func ExampleInitializerList_case2() { 3054 fmt.Println(exampleAST(206, "\U00100002 auto a = { ,") == (*InitializerList)(nil)) 3055 // Output: 3056 // true 3057 } 3058 3059 func ExampleIterationStatement() { 3060 fmt.Println(exampleAST(236, "\U00100001 ( { while ( 'a' ) ; !")) 3061 // Output: 3062 // &cc.IterationStatement{ 3063 // · ExpressionList: &cc.ExpressionList{ 3064 // · · Type: int, 3065 // · · Value: 97, 3066 // · · Expression: &cc.Expression{ 3067 // · · · Type: int, 3068 // · · · Value: 97, 3069 // · · · Case: 1, 3070 // · · · Token: example236.c:1:14: CHARCONST "'a'", 3071 // · · }, 3072 // · }, 3073 // · Statement: &cc.Statement{ 3074 // · · Case: 2, 3075 // · · ExpressionStatement: &cc.ExpressionStatement{ 3076 // · · · Token: example236.c:1:20: ';', 3077 // · · }, 3078 // · }, 3079 // · Token: example236.c:1:6: WHILE "while", 3080 // · Token2: example236.c:1:12: '(', 3081 // · Token3: example236.c:1:18: ')', 3082 // } 3083 } 3084 3085 func ExampleIterationStatement_case1() { 3086 fmt.Println(exampleAST(237, "\U00100001 ( { do ; while ( 'a' ) ; !")) 3087 // Output: 3088 // &cc.IterationStatement{ 3089 // · Case: 1, 3090 // · ExpressionList: &cc.ExpressionList{ 3091 // · · Type: int, 3092 // · · Value: 97, 3093 // · · Expression: &cc.Expression{ 3094 // · · · Type: int, 3095 // · · · Value: 97, 3096 // · · · Case: 1, 3097 // · · · Token: example237.c:1:19: CHARCONST "'a'", 3098 // · · }, 3099 // · }, 3100 // · Statement: &cc.Statement{ 3101 // · · Case: 2, 3102 // · · ExpressionStatement: &cc.ExpressionStatement{ 3103 // · · · Token: example237.c:1:9: ';', 3104 // · · }, 3105 // · }, 3106 // · Token: example237.c:1:6: DO "do", 3107 // · Token2: example237.c:1:11: WHILE "while", 3108 // · Token3: example237.c:1:17: '(', 3109 // · Token4: example237.c:1:23: ')', 3110 // · Token5: example237.c:1:25: ';', 3111 // } 3112 } 3113 3114 func ExampleIterationStatement_case2() { 3115 fmt.Println(exampleAST(238, "\U00100001 ( { for ( ; ; ) ; !")) 3116 // Output: 3117 // &cc.IterationStatement{ 3118 // · Case: 2, 3119 // · Statement: &cc.Statement{ 3120 // · · Case: 2, 3121 // · · ExpressionStatement: &cc.ExpressionStatement{ 3122 // · · · Token: example238.c:1:18: ';', 3123 // · · }, 3124 // · }, 3125 // · Token: example238.c:1:6: FOR "for", 3126 // · Token2: example238.c:1:10: '(', 3127 // · Token3: example238.c:1:12: ';', 3128 // · Token4: example238.c:1:14: ';', 3129 // · Token5: example238.c:1:16: ')', 3130 // } 3131 } 3132 3133 func ExampleIterationStatement_case3() { 3134 fmt.Println(exampleAST(239, "\U00100001 ( { for ( auto ; ; ) ; !")) 3135 // Output: 3136 // &cc.IterationStatement{ 3137 // · Case: 3, 3138 // · Declaration: &cc.Declaration{ 3139 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3140 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3141 // · · · · Case: 3, 3142 // · · · · Token: example239.c:1:12: AUTO "auto", 3143 // · · · }, 3144 // · · }, 3145 // · · Token: example239.c:1:17: ';', 3146 // · }, 3147 // · Statement: &cc.Statement{ 3148 // · · Case: 2, 3149 // · · ExpressionStatement: &cc.ExpressionStatement{ 3150 // · · · Token: example239.c:1:23: ';', 3151 // · · }, 3152 // · }, 3153 // · Token: example239.c:1:6: FOR "for", 3154 // · Token2: example239.c:1:10: '(', 3155 // · Token3: example239.c:1:19: ';', 3156 // · Token4: example239.c:1:21: ')', 3157 // } 3158 } 3159 3160 func ExampleJumpStatement() { 3161 fmt.Println(exampleAST(240, "\U00100001 ( { goto a ; !")) 3162 // Output: 3163 // &cc.JumpStatement{ 3164 // · Token: example240.c:1:6: GOTO "goto", 3165 // · Token2: example240.c:1:11: IDENTIFIER "a", 3166 // · Token3: example240.c:1:13: ';', 3167 // } 3168 } 3169 3170 func ExampleJumpStatement_case1() { 3171 fmt.Println(exampleAST(241, "\U00100001 ( { continue ; !")) 3172 // Output: 3173 // &cc.JumpStatement{ 3174 // · Case: 1, 3175 // · Token: example241.c:1:6: CONTINUE "continue", 3176 // · Token2: example241.c:1:15: ';', 3177 // } 3178 } 3179 3180 func ExampleJumpStatement_case2() { 3181 fmt.Println(exampleAST(242, "\U00100001 ( { break ; !")) 3182 // Output: 3183 // &cc.JumpStatement{ 3184 // · Case: 2, 3185 // · Token: example242.c:1:6: BREAK "break", 3186 // · Token2: example242.c:1:12: ';', 3187 // } 3188 } 3189 3190 func ExampleJumpStatement_case3() { 3191 fmt.Println(exampleAST(243, "\U00100001 ( { return ; !")) 3192 // Output: 3193 // &cc.JumpStatement{ 3194 // · Case: 3, 3195 // · Token: example243.c:1:6: RETURN "return", 3196 // · Token2: example243.c:1:13: ';', 3197 // } 3198 } 3199 3200 func ExampleJumpStatement_case4() { 3201 fmt.Println(exampleAST(244, "\U00100001 ( { goto 'a' ; !")) 3202 // Output: 3203 // &cc.JumpStatement{ 3204 // · Case: 4, 3205 // · Expression: &cc.Expression{ 3206 // · · Type: int, 3207 // · · Value: 97, 3208 // · · Case: 1, 3209 // · · Token: example244.c:1:11: CHARCONST "'a'", 3210 // · }, 3211 // · Token: example244.c:1:6: GOTO "goto", 3212 // · Token2: example244.c:1:15: ';', 3213 // } 3214 } 3215 3216 func ExampleLabeledStatement() { 3217 fmt.Println(exampleAST(221, "\U00100001 ( { a : ; !")) 3218 // Output: 3219 // &cc.LabeledStatement{ 3220 // · Statement: &cc.Statement{ 3221 // · · Case: 2, 3222 // · · ExpressionStatement: &cc.ExpressionStatement{ 3223 // · · · Token: example221.c:1:10: ';', 3224 // · · }, 3225 // · }, 3226 // · Token: example221.c:1:6: IDENTIFIER "a", 3227 // · Token2: example221.c:1:8: ':', 3228 // } 3229 } 3230 3231 func ExampleLabeledStatement_case1() { 3232 fmt.Println(exampleAST(222, "\U00100001 ( { case 'a' : ; !")) 3233 // Output: 3234 // &cc.LabeledStatement{ 3235 // · Case: 1, 3236 // · ConstantExpression: &cc.ConstantExpression{ 3237 // · · Type: int, 3238 // · · Value: 97, 3239 // · · Expression: &cc.Expression{ 3240 // · · · Type: int, 3241 // · · · Value: 97, 3242 // · · · Case: 1, 3243 // · · · Token: example222.c:1:11: CHARCONST "'a'", 3244 // · · }, 3245 // · }, 3246 // · Statement: &cc.Statement{ 3247 // · · Case: 2, 3248 // · · ExpressionStatement: &cc.ExpressionStatement{ 3249 // · · · Token: example222.c:1:17: ';', 3250 // · · }, 3251 // · }, 3252 // · Token: example222.c:1:6: CASE "case", 3253 // · Token2: example222.c:1:15: ':', 3254 // } 3255 } 3256 3257 func ExampleLabeledStatement_case2() { 3258 fmt.Println(exampleAST(223, "\U00100001 ( { default : ; !")) 3259 // Output: 3260 // &cc.LabeledStatement{ 3261 // · Case: 2, 3262 // · Statement: &cc.Statement{ 3263 // · · Case: 2, 3264 // · · ExpressionStatement: &cc.ExpressionStatement{ 3265 // · · · Token: example223.c:1:16: ';', 3266 // · · }, 3267 // · }, 3268 // · Token: example223.c:1:6: DEFAULT "default", 3269 // · Token2: example223.c:1:14: ':', 3270 // } 3271 } 3272 3273 func ExampleParameterDeclaration() { 3274 fmt.Println(exampleAST(175, "\U00100002 a ( auto b )")) 3275 // Output: 3276 // &cc.ParameterDeclaration{ 3277 // · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3278 // · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3279 // · · · Case: 3, 3280 // · · · Token: example175.c:1:6: AUTO "auto", 3281 // · · }, 3282 // · }, 3283 // · Declarator: &cc.Declarator{ 3284 // · · Linkage: None, 3285 // · · Type: auto undefined, 3286 // · · DirectDeclarator: &cc.DirectDeclarator{ 3287 // · · · Token: example175.c:1:11: IDENTIFIER "b", 3288 // · · }, 3289 // · }, 3290 // } 3291 } 3292 3293 func ExampleParameterDeclaration_case1() { 3294 fmt.Println(exampleAST(176, "\U00100002 a ( auto )")) 3295 // Output: 3296 // &cc.ParameterDeclaration{ 3297 // · Case: 1, 3298 // · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3299 // · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3300 // · · · Case: 3, 3301 // · · · Token: example176.c:1:6: AUTO "auto", 3302 // · · }, 3303 // · }, 3304 // } 3305 } 3306 3307 func ExampleParameterList() { 3308 fmt.Println(exampleAST(173, "\U00100002 a ( auto )")) 3309 // Output: 3310 // &cc.ParameterList{ 3311 // · ParameterDeclaration: &cc.ParameterDeclaration{ 3312 // · · Case: 1, 3313 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3314 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3315 // · · · · Case: 3, 3316 // · · · · Token: example173.c:1:6: AUTO "auto", 3317 // · · · }, 3318 // · · }, 3319 // · }, 3320 // } 3321 } 3322 3323 func ExampleParameterList_case1() { 3324 fmt.Println(exampleAST(174, "\U00100002 a ( auto , auto )")) 3325 // Output: 3326 // &cc.ParameterList{ 3327 // · ParameterDeclaration: &cc.ParameterDeclaration{ 3328 // · · Case: 1, 3329 // · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3330 // · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3331 // · · · · Case: 3, 3332 // · · · · Token: example174.c:1:6: AUTO "auto", 3333 // · · · }, 3334 // · · }, 3335 // · }, 3336 // · ParameterList: &cc.ParameterList{ 3337 // · · Case: 1, 3338 // · · ParameterDeclaration: &cc.ParameterDeclaration{ 3339 // · · · Case: 1, 3340 // · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3341 // · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3342 // · · · · · Case: 3, 3343 // · · · · · Token: example174.c:1:13: AUTO "auto", 3344 // · · · · }, 3345 // · · · }, 3346 // · · }, 3347 // · · Token: example174.c:1:11: ',', 3348 // · }, 3349 // } 3350 } 3351 3352 func ExampleParameterTypeList() { 3353 fmt.Println(exampleAST(169, "\U00100002 a ( auto )")) 3354 // Output: 3355 // &cc.ParameterTypeList{ 3356 // · ParameterList: &cc.ParameterList{ 3357 // · · ParameterDeclaration: &cc.ParameterDeclaration{ 3358 // · · · Case: 1, 3359 // · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3360 // · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3361 // · · · · · Case: 3, 3362 // · · · · · Token: example169.c:1:6: AUTO "auto", 3363 // · · · · }, 3364 // · · · }, 3365 // · · }, 3366 // · }, 3367 // } 3368 } 3369 3370 func ExampleParameterTypeList_case1() { 3371 fmt.Println(exampleAST(170, "\U00100002 a ( auto , ... )")) 3372 // Output: 3373 // &cc.ParameterTypeList{ 3374 // · Case: 1, 3375 // · ParameterList: &cc.ParameterList{ 3376 // · · ParameterDeclaration: &cc.ParameterDeclaration{ 3377 // · · · Case: 1, 3378 // · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3379 // · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3380 // · · · · · Case: 3, 3381 // · · · · · Token: example170.c:1:6: AUTO "auto", 3382 // · · · · }, 3383 // · · · }, 3384 // · · }, 3385 // · }, 3386 // · Token: example170.c:1:11: ',', 3387 // · Token2: example170.c:1:13: DDD, 3388 // } 3389 } 3390 3391 func ExampleParameterTypeListOpt() { 3392 fmt.Println(exampleAST(171, "\U00100001 ( _Bool ( )") == (*ParameterTypeListOpt)(nil)) 3393 // Output: 3394 // true 3395 } 3396 3397 func ExampleParameterTypeListOpt_case1() { 3398 fmt.Println(exampleAST(172, "\U00100001 ( _Bool ( auto )")) 3399 // Output: 3400 // &cc.ParameterTypeListOpt{ 3401 // · ParameterTypeList: &cc.ParameterTypeList{ 3402 // · · ParameterList: &cc.ParameterList{ 3403 // · · · ParameterDeclaration: &cc.ParameterDeclaration{ 3404 // · · · · Case: 1, 3405 // · · · · DeclarationSpecifiers: &cc.DeclarationSpecifiers{ 3406 // · · · · · StorageClassSpecifier: &cc.StorageClassSpecifier{ 3407 // · · · · · · Case: 3, 3408 // · · · · · · Token: example172.c:1:12: AUTO "auto", 3409 // · · · · · }, 3410 // · · · · }, 3411 // · · · }, 3412 // · · }, 3413 // · }, 3414 // } 3415 } 3416 3417 func ExamplePointer() { 3418 fmt.Println(exampleAST(161, "\U00100002 * (")) 3419 // Output: 3420 // &cc.Pointer{ 3421 // · Token: example161.c:1:2: '*', 3422 // } 3423 } 3424 3425 func ExamplePointer_case1() { 3426 fmt.Println(exampleAST(162, "\U00100002 * * (")) 3427 // Output: 3428 // &cc.Pointer{ 3429 // · Case: 1, 3430 // · Pointer: &cc.Pointer{ 3431 // · · Token: example162.c:1:4: '*', 3432 // · }, 3433 // · Token: example162.c:1:2: '*', 3434 // } 3435 } 3436 3437 func ExamplePointerOpt() { 3438 fmt.Println(exampleAST(163, "\U00100002 auto (") == (*PointerOpt)(nil)) 3439 // Output: 3440 // true 3441 } 3442 3443 func ExamplePointerOpt_case1() { 3444 fmt.Println(exampleAST(164, "\U00100001 ( _Bool * (")) 3445 // Output: 3446 // &cc.PointerOpt{ 3447 // · Pointer: &cc.Pointer{ 3448 // · · Token: example164.c:1:10: '*', 3449 // · }, 3450 // } 3451 } 3452 3453 func ExamplePreprocessingFile() { 3454 fmt.Println(exampleAST(285, "\U00100000 ")) 3455 // Output: 3456 // &cc.PreprocessingFile{ 3457 // · GroupList: &cc.GroupList{ 3458 // · }, 3459 // } 3460 } 3461 3462 func ExampleSelectionStatement() { 3463 fmt.Println(exampleAST(233, "\U00100001 ( { if ( 'a' ) ; !")) 3464 // Output: 3465 // &cc.SelectionStatement{ 3466 // · ExpressionList: &cc.ExpressionList{ 3467 // · · Type: int, 3468 // · · Value: 97, 3469 // · · Expression: &cc.Expression{ 3470 // · · · Type: int, 3471 // · · · Value: 97, 3472 // · · · Case: 1, 3473 // · · · Token: example233.c:1:11: CHARCONST "'a'", 3474 // · · }, 3475 // · }, 3476 // · Statement: &cc.Statement{ 3477 // · · Case: 2, 3478 // · · ExpressionStatement: &cc.ExpressionStatement{ 3479 // · · · Token: example233.c:1:17: ';', 3480 // · · }, 3481 // · }, 3482 // · Token: example233.c:1:6: IF "if", 3483 // · Token2: example233.c:1:9: '(', 3484 // · Token3: example233.c:1:15: ')', 3485 // } 3486 } 3487 3488 func ExampleSelectionStatement_case1() { 3489 fmt.Println(exampleAST(234, "\U00100001 ( { if ( 'a' ) ; else ; !")) 3490 // Output: 3491 // &cc.SelectionStatement{ 3492 // · Case: 1, 3493 // · ExpressionList: &cc.ExpressionList{ 3494 // · · Type: int, 3495 // · · Value: 97, 3496 // · · Expression: &cc.Expression{ 3497 // · · · Type: int, 3498 // · · · Value: 97, 3499 // · · · Case: 1, 3500 // · · · Token: example234.c:1:11: CHARCONST "'a'", 3501 // · · }, 3502 // · }, 3503 // · Statement: &cc.Statement{ 3504 // · · Case: 2, 3505 // · · ExpressionStatement: &cc.ExpressionStatement{ 3506 // · · · Token: example234.c:1:17: ';', 3507 // · · }, 3508 // · }, 3509 // · Statement2: &cc.Statement{ 3510 // · · Case: 2, 3511 // · · ExpressionStatement: &cc.ExpressionStatement{ 3512 // · · · Token: example234.c:1:24: ';', 3513 // · · }, 3514 // · }, 3515 // · Token: example234.c:1:6: IF "if", 3516 // · Token2: example234.c:1:9: '(', 3517 // · Token3: example234.c:1:15: ')', 3518 // · Token4: example234.c:1:19: ELSE "else", 3519 // } 3520 } 3521 3522 func ExampleSelectionStatement_case2() { 3523 fmt.Println(exampleAST(235, "\U00100001 ( { switch ( 'a' ) ; !")) 3524 // Output: 3525 // &cc.SelectionStatement{ 3526 // · Case: 2, 3527 // · ExpressionList: &cc.ExpressionList{ 3528 // · · Type: int, 3529 // · · Value: 97, 3530 // · · Expression: &cc.Expression{ 3531 // · · · Type: int, 3532 // · · · Value: 97, 3533 // · · · Case: 1, 3534 // · · · Token: example235.c:1:15: CHARCONST "'a'", 3535 // · · }, 3536 // · }, 3537 // · Statement: &cc.Statement{ 3538 // · · Case: 2, 3539 // · · ExpressionStatement: &cc.ExpressionStatement{ 3540 // · · · Token: example235.c:1:21: ';', 3541 // · · }, 3542 // · }, 3543 // · Token: example235.c:1:6: SWITCH "switch", 3544 // · Token2: example235.c:1:13: '(', 3545 // · Token3: example235.c:1:19: ')', 3546 // } 3547 } 3548 3549 func ExampleSpecifierQualifierList() { 3550 fmt.Println(exampleAST(127, "\U00100001 ( _Bool (")) 3551 // Output: 3552 // &cc.SpecifierQualifierList{ 3553 // · TypeSpecifier: &cc.TypeSpecifier{ 3554 // · · Case: 9, 3555 // · · Token: example127.c:1:4: BOOL "_Bool", 3556 // · }, 3557 // } 3558 } 3559 3560 func ExampleSpecifierQualifierList_case1() { 3561 fmt.Println(exampleAST(128, "\U00100001 ( const (")) 3562 // Output: 3563 // &cc.SpecifierQualifierList{ 3564 // · Case: 1, 3565 // · TypeQualifier: &cc.TypeQualifier{ 3566 // · · Token: example128.c:1:4: CONST "const", 3567 // · }, 3568 // } 3569 } 3570 3571 func ExampleSpecifierQualifierListOpt() { 3572 fmt.Println(exampleAST(129, "\U00100001 ( _Bool (") == (*SpecifierQualifierListOpt)(nil)) 3573 // Output: 3574 // true 3575 } 3576 3577 func ExampleSpecifierQualifierListOpt_case1() { 3578 fmt.Println(exampleAST(130, "\U00100001 ( _Bool _Bool (")) 3579 // Output: 3580 // &cc.SpecifierQualifierListOpt{ 3581 // · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3582 // · · TypeSpecifier: &cc.TypeSpecifier{ 3583 // · · · Case: 9, 3584 // · · · Token: example130.c:1:10: BOOL "_Bool", 3585 // · · }, 3586 // · }, 3587 // } 3588 } 3589 3590 func ExampleStatement() { 3591 fmt.Println(exampleAST(214, "\U00100001 ( { default : ; !")) 3592 // Output: 3593 // &cc.Statement{ 3594 // · LabeledStatement: &cc.LabeledStatement{ 3595 // · · Case: 2, 3596 // · · Statement: &cc.Statement{ 3597 // · · · Case: 2, 3598 // · · · ExpressionStatement: &cc.ExpressionStatement{ 3599 // · · · · Token: example214.c:1:16: ';', 3600 // · · · }, 3601 // · · }, 3602 // · · Token: example214.c:1:6: DEFAULT "default", 3603 // · · Token2: example214.c:1:14: ':', 3604 // · }, 3605 // } 3606 } 3607 3608 func ExampleStatement_case1() { 3609 fmt.Println(exampleAST(215, "\U00100001 ( { { } !")) 3610 // Output: 3611 // &cc.Statement{ 3612 // · Case: 1, 3613 // · CompoundStatement: &cc.CompoundStatement{ 3614 // · · Token: example215.c:1:6: '{', 3615 // · · Token2: example215.c:1:8: '}', 3616 // · }, 3617 // } 3618 } 3619 3620 func ExampleStatement_case2() { 3621 fmt.Println(exampleAST(216, "\U00100001 ( { ; !")) 3622 // Output: 3623 // &cc.Statement{ 3624 // · Case: 2, 3625 // · ExpressionStatement: &cc.ExpressionStatement{ 3626 // · · Token: example216.c:1:6: ';', 3627 // · }, 3628 // } 3629 } 3630 3631 func ExampleStatement_case3() { 3632 fmt.Println(exampleAST(217, "\U00100001 ( { if ( 'a' ) ; !")) 3633 // Output: 3634 // &cc.Statement{ 3635 // · Case: 3, 3636 // · SelectionStatement: &cc.SelectionStatement{ 3637 // · · ExpressionList: &cc.ExpressionList{ 3638 // · · · Type: int, 3639 // · · · Value: 97, 3640 // · · · Expression: &cc.Expression{ 3641 // · · · · Type: int, 3642 // · · · · Value: 97, 3643 // · · · · Case: 1, 3644 // · · · · Token: example217.c:1:11: CHARCONST "'a'", 3645 // · · · }, 3646 // · · }, 3647 // · · Statement: &cc.Statement{ 3648 // · · · Case: 2, 3649 // · · · ExpressionStatement: &cc.ExpressionStatement{ 3650 // · · · · Token: example217.c:1:17: ';', 3651 // · · · }, 3652 // · · }, 3653 // · · Token: example217.c:1:6: IF "if", 3654 // · · Token2: example217.c:1:9: '(', 3655 // · · Token3: example217.c:1:15: ')', 3656 // · }, 3657 // } 3658 } 3659 3660 func ExampleStatement_case4() { 3661 fmt.Println(exampleAST(218, "\U00100001 ( { while ( 'a' ) ; !")) 3662 // Output: 3663 // &cc.Statement{ 3664 // · Case: 4, 3665 // · IterationStatement: &cc.IterationStatement{ 3666 // · · ExpressionList: &cc.ExpressionList{ 3667 // · · · Type: int, 3668 // · · · Value: 97, 3669 // · · · Expression: &cc.Expression{ 3670 // · · · · Type: int, 3671 // · · · · Value: 97, 3672 // · · · · Case: 1, 3673 // · · · · Token: example218.c:1:14: CHARCONST "'a'", 3674 // · · · }, 3675 // · · }, 3676 // · · Statement: &cc.Statement{ 3677 // · · · Case: 2, 3678 // · · · ExpressionStatement: &cc.ExpressionStatement{ 3679 // · · · · Token: example218.c:1:20: ';', 3680 // · · · }, 3681 // · · }, 3682 // · · Token: example218.c:1:6: WHILE "while", 3683 // · · Token2: example218.c:1:12: '(', 3684 // · · Token3: example218.c:1:18: ')', 3685 // · }, 3686 // } 3687 } 3688 3689 func ExampleStatement_case5() { 3690 fmt.Println(exampleAST(219, "\U00100001 ( { break ; !")) 3691 // Output: 3692 // &cc.Statement{ 3693 // · Case: 5, 3694 // · JumpStatement: &cc.JumpStatement{ 3695 // · · Case: 2, 3696 // · · Token: example219.c:1:6: BREAK "break", 3697 // · · Token2: example219.c:1:12: ';', 3698 // · }, 3699 // } 3700 } 3701 3702 func ExampleStatement_case6() { 3703 fmt.Println(exampleAST(220, "\U00100001 ( { asm ( \"a\" ) !")) 3704 // Output: 3705 // &cc.Statement{ 3706 // · AssemblerStatement: &cc.AssemblerStatement{ 3707 // · · BasicAssemblerStatement: &cc.BasicAssemblerStatement{ 3708 // · · · AssemblerInstructions: &cc.AssemblerInstructions{ 3709 // · · · · Token: example220.c:1:12: STRINGLITERAL "\"a\"", 3710 // · · · }, 3711 // · · · Token: example220.c:1:6: ASM "asm", 3712 // · · · Token2: example220.c:1:10: '(', 3713 // · · · Token3: example220.c:1:16: ')', 3714 // · · }, 3715 // · }, 3716 // · Case: 6, 3717 // } 3718 } 3719 3720 func ExampleStaticAssertDeclaration() { 3721 fmt.Println(exampleAST(284, "\U00100002 _Static_assert ( 'a' , \"b\" ) ;")) 3722 // Output: 3723 // &cc.StaticAssertDeclaration{ 3724 // · ConstantExpression: &cc.ConstantExpression{ 3725 // · · Type: int, 3726 // · · Value: 97, 3727 // · · Expression: &cc.Expression{ 3728 // · · · Type: int, 3729 // · · · Value: 97, 3730 // · · · Case: 1, 3731 // · · · Token: example284.c:1:19: CHARCONST "'a'", 3732 // · · }, 3733 // · }, 3734 // · Token: example284.c:1:2: STATIC_ASSERT "_Static_assert", 3735 // · Token2: example284.c:1:17: '(', 3736 // · Token3: example284.c:1:23: ',', 3737 // · Token4: example284.c:1:25: STRINGLITERAL "\"b\"", 3738 // · Token5: example284.c:1:29: ')', 3739 // · Token6: example284.c:1:31: ';', 3740 // } 3741 } 3742 3743 func ExampleStorageClassSpecifier() { 3744 fmt.Println(exampleAST(95, "\U00100002 typedef (")) 3745 // Output: 3746 // &cc.StorageClassSpecifier{ 3747 // · Token: example95.c:1:2: TYPEDEF "typedef", 3748 // } 3749 } 3750 3751 func ExampleStorageClassSpecifier_case1() { 3752 fmt.Println(exampleAST(96, "\U00100002 extern (")) 3753 // Output: 3754 // &cc.StorageClassSpecifier{ 3755 // · Case: 1, 3756 // · Token: example96.c:1:2: EXTERN "extern", 3757 // } 3758 } 3759 3760 func ExampleStorageClassSpecifier_case2() { 3761 fmt.Println(exampleAST(97, "\U00100002 static (")) 3762 // Output: 3763 // &cc.StorageClassSpecifier{ 3764 // · Case: 2, 3765 // · Token: example97.c:1:2: STATIC "static", 3766 // } 3767 } 3768 3769 func ExampleStorageClassSpecifier_case3() { 3770 fmt.Println(exampleAST(98, "\U00100002 auto (")) 3771 // Output: 3772 // &cc.StorageClassSpecifier{ 3773 // · Case: 3, 3774 // · Token: example98.c:1:2: AUTO "auto", 3775 // } 3776 } 3777 3778 func ExampleStorageClassSpecifier_case4() { 3779 fmt.Println(exampleAST(99, "\U00100002 register (")) 3780 // Output: 3781 // &cc.StorageClassSpecifier{ 3782 // · Case: 4, 3783 // · Token: example99.c:1:2: REGISTER "register", 3784 // } 3785 } 3786 3787 func ExampleStructDeclaration() { 3788 fmt.Println(exampleAST(124, "\U00100002 struct { _Bool a ; }")) 3789 // Output: 3790 // &cc.StructDeclaration{ 3791 // · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3792 // · · TypeSpecifier: &cc.TypeSpecifier{ 3793 // · · · Case: 9, 3794 // · · · Token: example124.c:1:11: BOOL "_Bool", 3795 // · · }, 3796 // · }, 3797 // · StructDeclaratorList: &cc.StructDeclaratorList{ 3798 // · · StructDeclarator: &cc.StructDeclarator{ 3799 // · · · Declarator: &cc.Declarator{ 3800 // · · · · Linkage: None, 3801 // · · · · Type: bool, 3802 // · · · · DirectDeclarator: &cc.DirectDeclarator{ 3803 // · · · · · Token: example124.c:1:17: IDENTIFIER "a", 3804 // · · · · }, 3805 // · · · }, 3806 // · · }, 3807 // · }, 3808 // · Token: example124.c:1:19: ';', 3809 // } 3810 } 3811 3812 func ExampleStructDeclaration_case1() { 3813 fmt.Println(exampleAST(125, "\U00100002 struct { _Bool ; }")) 3814 // Output: 3815 // &cc.StructDeclaration{ 3816 // · Case: 1, 3817 // · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3818 // · · TypeSpecifier: &cc.TypeSpecifier{ 3819 // · · · Case: 9, 3820 // · · · Token: example125.c:1:11: BOOL "_Bool", 3821 // · · }, 3822 // · }, 3823 // · Token: example125.c:1:17: ';', 3824 // } 3825 } 3826 3827 func ExampleStructDeclaration_case2() { 3828 fmt.Println(exampleAST(126, "\U00100002 struct { _Static_assert ( 'a' , \"b\" ) ; }")) 3829 // Output: 3830 // &cc.StructDeclaration{ 3831 // · Case: 2, 3832 // · StaticAssertDeclaration: &cc.StaticAssertDeclaration{ 3833 // · · ConstantExpression: &cc.ConstantExpression{ 3834 // · · · Type: int, 3835 // · · · Value: 97, 3836 // · · · Expression: &cc.Expression{ 3837 // · · · · Type: int, 3838 // · · · · Value: 97, 3839 // · · · · Case: 1, 3840 // · · · · Token: example126.c:1:28: CHARCONST "'a'", 3841 // · · · }, 3842 // · · }, 3843 // · · Token: example126.c:1:11: STATIC_ASSERT "_Static_assert", 3844 // · · Token2: example126.c:1:26: '(', 3845 // · · Token3: example126.c:1:32: ',', 3846 // · · Token4: example126.c:1:34: STRINGLITERAL "\"b\"", 3847 // · · Token5: example126.c:1:38: ')', 3848 // · · Token6: example126.c:1:40: ';', 3849 // · }, 3850 // } 3851 } 3852 3853 func ExampleStructDeclarationList() { 3854 fmt.Println(exampleAST(122, "\U00100002 struct { _Bool ; }")) 3855 // Output: 3856 // &cc.StructDeclarationList{ 3857 // · StructDeclaration: &cc.StructDeclaration{ 3858 // · · Case: 1, 3859 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3860 // · · · TypeSpecifier: &cc.TypeSpecifier{ 3861 // · · · · Case: 9, 3862 // · · · · Token: example122.c:1:11: BOOL "_Bool", 3863 // · · · }, 3864 // · · }, 3865 // · · Token: example122.c:1:17: ';', 3866 // · }, 3867 // } 3868 } 3869 3870 func ExampleStructDeclarationList_case1() { 3871 fmt.Println(exampleAST(123, "\U00100002 struct { _Bool ; _Bool ; }")) 3872 // Output: 3873 // &cc.StructDeclarationList{ 3874 // · StructDeclaration: &cc.StructDeclaration{ 3875 // · · Case: 1, 3876 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3877 // · · · TypeSpecifier: &cc.TypeSpecifier{ 3878 // · · · · Case: 9, 3879 // · · · · Token: example123.c:1:11: BOOL "_Bool", 3880 // · · · }, 3881 // · · }, 3882 // · · Token: example123.c:1:17: ';', 3883 // · }, 3884 // · StructDeclarationList: &cc.StructDeclarationList{ 3885 // · · Case: 1, 3886 // · · StructDeclaration: &cc.StructDeclaration{ 3887 // · · · Case: 1, 3888 // · · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 3889 // · · · · TypeSpecifier: &cc.TypeSpecifier{ 3890 // · · · · · Case: 9, 3891 // · · · · · Token: example123.c:1:19: BOOL "_Bool", 3892 // · · · · }, 3893 // · · · }, 3894 // · · · Token: example123.c:1:25: ';', 3895 // · · }, 3896 // · }, 3897 // } 3898 } 3899 3900 func ExampleStructDeclarator() { 3901 fmt.Println(exampleAST(133, "\U00100002 struct { _Bool a ,")) 3902 // Output: 3903 // &cc.StructDeclarator{ 3904 // · Declarator: &cc.Declarator{ 3905 // · · Linkage: None, 3906 // · · Type: bool, 3907 // · · DirectDeclarator: &cc.DirectDeclarator{ 3908 // · · · Token: example133.c:1:17: IDENTIFIER "a", 3909 // · · }, 3910 // · }, 3911 // } 3912 } 3913 3914 func ExampleStructDeclarator_case1() { 3915 fmt.Println(exampleAST(134, "\U00100002 struct { _Bool : 'a' ,")) 3916 // Output: 3917 // &cc.StructDeclarator{ 3918 // · Case: 1, 3919 // · ConstantExpression: &cc.ConstantExpression{ 3920 // · · Type: int, 3921 // · · Value: 97, 3922 // · · Expression: &cc.Expression{ 3923 // · · · Type: int, 3924 // · · · Value: 97, 3925 // · · · Case: 1, 3926 // · · · Token: example134.c:1:19: CHARCONST "'a'", 3927 // · · }, 3928 // · }, 3929 // · Token: example134.c:1:17: ':', 3930 // } 3931 } 3932 3933 func ExampleStructDeclaratorList() { 3934 fmt.Println(exampleAST(131, "\U00100002 struct { _Bool a ,")) 3935 // Output: 3936 // &cc.StructDeclaratorList{ 3937 // · StructDeclarator: &cc.StructDeclarator{ 3938 // · · Declarator: &cc.Declarator{ 3939 // · · · Linkage: None, 3940 // · · · Type: bool, 3941 // · · · DirectDeclarator: &cc.DirectDeclarator{ 3942 // · · · · Token: example131.c:1:17: IDENTIFIER "a", 3943 // · · · }, 3944 // · · }, 3945 // · }, 3946 // } 3947 } 3948 3949 func ExampleStructDeclaratorList_case1() { 3950 fmt.Println(exampleAST(132, "\U00100002 struct { _Bool a , b ,")) 3951 // Output: 3952 // &cc.StructDeclaratorList{ 3953 // · StructDeclarator: &cc.StructDeclarator{ 3954 // · · Declarator: &cc.Declarator{ 3955 // · · · Linkage: None, 3956 // · · · Type: bool, 3957 // · · · DirectDeclarator: &cc.DirectDeclarator{ 3958 // · · · · Token: example132.c:1:17: IDENTIFIER "a", 3959 // · · · }, 3960 // · · }, 3961 // · }, 3962 // · StructDeclaratorList: &cc.StructDeclaratorList{ 3963 // · · Case: 1, 3964 // · · StructDeclarator: &cc.StructDeclarator{ 3965 // · · · Declarator: &cc.Declarator{ 3966 // · · · · Linkage: None, 3967 // · · · · Type: bool, 3968 // · · · · DirectDeclarator: &cc.DirectDeclarator{ 3969 // · · · · · Token: example132.c:1:21: IDENTIFIER "b", 3970 // · · · · }, 3971 // · · · }, 3972 // · · }, 3973 // · · Token: example132.c:1:19: ',', 3974 // · }, 3975 // } 3976 } 3977 3978 func ExampleStructOrUnion() { 3979 fmt.Println(exampleAST(120, "\U00100002 struct {")) 3980 // Output: 3981 // &cc.StructOrUnion{ 3982 // · Token: example120.c:1:2: STRUCT "struct", 3983 // } 3984 } 3985 3986 func ExampleStructOrUnion_case1() { 3987 fmt.Println(exampleAST(121, "\U00100002 union {")) 3988 // Output: 3989 // &cc.StructOrUnion{ 3990 // · Case: 1, 3991 // · Token: example121.c:1:2: UNION "union", 3992 // } 3993 } 3994 3995 func ExampleStructOrUnionSpecifier() { 3996 fmt.Println(exampleAST(117, "\U00100002 struct { int i; } (")) 3997 // Output: 3998 // &cc.StructOrUnionSpecifier{ 3999 // · StructDeclarationList: &cc.StructDeclarationList{ 4000 // · · StructDeclaration: &cc.StructDeclaration{ 4001 // · · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 4002 // · · · · TypeSpecifier: &cc.TypeSpecifier{ 4003 // · · · · · Case: 3, 4004 // · · · · · Token: example117.c:1:11: INT "int", 4005 // · · · · }, 4006 // · · · }, 4007 // · · · StructDeclaratorList: &cc.StructDeclaratorList{ 4008 // · · · · StructDeclarator: &cc.StructDeclarator{ 4009 // · · · · · Declarator: &cc.Declarator{ 4010 // · · · · · · Linkage: None, 4011 // · · · · · · Type: int, 4012 // · · · · · · DirectDeclarator: &cc.DirectDeclarator{ 4013 // · · · · · · · Token: example117.c:1:15: IDENTIFIER "i", 4014 // · · · · · · }, 4015 // · · · · · }, 4016 // · · · · }, 4017 // · · · }, 4018 // · · · Token: example117.c:1:16: ';', 4019 // · · }, 4020 // · }, 4021 // · StructOrUnion: &cc.StructOrUnion{ 4022 // · · Token: example117.c:1:2: STRUCT "struct", 4023 // · }, 4024 // · Token: example117.c:1:9: '{', 4025 // · Token2: example117.c:1:18: '}', 4026 // } 4027 } 4028 4029 func ExampleStructOrUnionSpecifier_case1() { 4030 fmt.Println(exampleAST(118, "\U00100002 struct a (")) 4031 // Output: 4032 // &cc.StructOrUnionSpecifier{ 4033 // · Case: 1, 4034 // · StructOrUnion: &cc.StructOrUnion{ 4035 // · · Token: example118.c:1:2: STRUCT "struct", 4036 // · }, 4037 // · Token: example118.c:1:9: IDENTIFIER "a", 4038 // } 4039 } 4040 4041 func ExampleStructOrUnionSpecifier_case2() { 4042 fmt.Println(exampleAST(119, "\U00100002 struct { } (")) 4043 // Output: 4044 // &cc.StructOrUnionSpecifier{ 4045 // · Case: 2, 4046 // · StructOrUnion: &cc.StructOrUnion{ 4047 // · · Token: example119.c:1:2: STRUCT "struct", 4048 // · }, 4049 // · Token: example119.c:1:9: '{', 4050 // · Token2: example119.c:1:11: '}', 4051 // } 4052 } 4053 4054 func ExampleTranslationUnit() { 4055 fmt.Println(exampleAST(245, "\U00100002 ;")) 4056 // Output: 4057 // &cc.TranslationUnit{ 4058 // · ExternalDeclaration: &cc.ExternalDeclaration{ 4059 // · · Case: 3, 4060 // · · Token: example245.c:1:2: ';', 4061 // · }, 4062 // } 4063 } 4064 4065 func ExampleTranslationUnit_case1() { 4066 fmt.Println(exampleAST(246, "\U00100002 ; ;")) 4067 // Output: 4068 // &cc.TranslationUnit{ 4069 // · ExternalDeclaration: &cc.ExternalDeclaration{ 4070 // · · Case: 3, 4071 // · · Token: example246.c:1:2: ';', 4072 // · }, 4073 // · TranslationUnit: &cc.TranslationUnit{ 4074 // · · Case: 1, 4075 // · · ExternalDeclaration: &cc.ExternalDeclaration{ 4076 // · · · Case: 3, 4077 // · · · Token: example246.c:1:4: ';', 4078 // · · }, 4079 // · }, 4080 // } 4081 } 4082 4083 func ExampleTypeName() { 4084 fmt.Println(exampleAST(184, "\U00100001 ( _Bool )")) 4085 // Output: 4086 // &cc.TypeName{ 4087 // · Type: bool, 4088 // · SpecifierQualifierList: &cc.SpecifierQualifierList{ 4089 // · · TypeSpecifier: &cc.TypeSpecifier{ 4090 // · · · Case: 9, 4091 // · · · Token: example184.c:1:4: BOOL "_Bool", 4092 // · · }, 4093 // · }, 4094 // } 4095 } 4096 4097 func ExampleTypeQualifier() { 4098 fmt.Println(exampleAST(144, "\U00100002 const !")) 4099 // Output: 4100 // &cc.TypeQualifier{ 4101 // · Token: example144.c:1:2: CONST "const", 4102 // } 4103 } 4104 4105 func ExampleTypeQualifier_case1() { 4106 fmt.Println(exampleAST(145, "\U00100002 restrict !")) 4107 // Output: 4108 // &cc.TypeQualifier{ 4109 // · Case: 1, 4110 // · Token: example145.c:1:2: RESTRICT "restrict", 4111 // } 4112 } 4113 4114 func ExampleTypeQualifier_case2() { 4115 fmt.Println(exampleAST(146, "\U00100002 volatile !")) 4116 // Output: 4117 // &cc.TypeQualifier{ 4118 // · Case: 2, 4119 // · Token: example146.c:1:2: VOLATILE "volatile", 4120 // } 4121 } 4122 4123 func ExampleTypeQualifierList() { 4124 fmt.Println(exampleAST(165, "\U00100002 * const !")) 4125 // Output: 4126 // &cc.TypeQualifierList{ 4127 // · TypeQualifier: &cc.TypeQualifier{ 4128 // · · Token: example165.c:1:4: CONST "const", 4129 // · }, 4130 // } 4131 } 4132 4133 func ExampleTypeQualifierList_case1() { 4134 fmt.Println(exampleAST(166, "\U00100002 * const const !")) 4135 // Output: 4136 // &cc.TypeQualifierList{ 4137 // · TypeQualifier: &cc.TypeQualifier{ 4138 // · · Token: example166.c:1:4: CONST "const", 4139 // · }, 4140 // · TypeQualifierList: &cc.TypeQualifierList{ 4141 // · · Case: 1, 4142 // · · TypeQualifier: &cc.TypeQualifier{ 4143 // · · · Token: example166.c:1:10: CONST "const", 4144 // · · }, 4145 // · }, 4146 // } 4147 } 4148 4149 func ExampleTypeQualifierListOpt() { 4150 fmt.Println(exampleAST(167, "\U00100002 * (") == (*TypeQualifierListOpt)(nil)) 4151 // Output: 4152 // true 4153 } 4154 4155 func ExampleTypeQualifierListOpt_case1() { 4156 fmt.Println(exampleAST(168, "\U00100002 * const !")) 4157 // Output: 4158 // &cc.TypeQualifierListOpt{ 4159 // · TypeQualifierList: &cc.TypeQualifierList{ 4160 // · · TypeQualifier: &cc.TypeQualifier{ 4161 // · · · Token: example168.c:1:4: CONST "const", 4162 // · · }, 4163 // · }, 4164 // } 4165 } 4166 4167 func ExampleTypeSpecifier() { 4168 fmt.Println(exampleAST(100, "\U00100002 void (")) 4169 // Output: 4170 // &cc.TypeSpecifier{ 4171 // · Token: example100.c:1:2: VOID "void", 4172 // } 4173 } 4174 4175 func ExampleTypeSpecifier_case01() { 4176 fmt.Println(exampleAST(101, "\U00100002 char (")) 4177 // Output: 4178 // &cc.TypeSpecifier{ 4179 // · Case: 1, 4180 // · Token: example101.c:1:2: CHAR "char", 4181 // } 4182 } 4183 4184 func ExampleTypeSpecifier_case02() { 4185 fmt.Println(exampleAST(102, "\U00100002 short (")) 4186 // Output: 4187 // &cc.TypeSpecifier{ 4188 // · Case: 2, 4189 // · Token: example102.c:1:2: SHORT "short", 4190 // } 4191 } 4192 4193 func ExampleTypeSpecifier_case03() { 4194 fmt.Println(exampleAST(103, "\U00100002 int (")) 4195 // Output: 4196 // &cc.TypeSpecifier{ 4197 // · Case: 3, 4198 // · Token: example103.c:1:2: INT "int", 4199 // } 4200 } 4201 4202 func ExampleTypeSpecifier_case04() { 4203 fmt.Println(exampleAST(104, "\U00100002 long (")) 4204 // Output: 4205 // &cc.TypeSpecifier{ 4206 // · Case: 4, 4207 // · Token: example104.c:1:2: LONG "long", 4208 // } 4209 } 4210 4211 func ExampleTypeSpecifier_case05() { 4212 fmt.Println(exampleAST(105, "\U00100002 float (")) 4213 // Output: 4214 // &cc.TypeSpecifier{ 4215 // · Case: 5, 4216 // · Token: example105.c:1:2: FLOAT "float", 4217 // } 4218 } 4219 4220 func ExampleTypeSpecifier_case06() { 4221 fmt.Println(exampleAST(106, "\U00100002 double (")) 4222 // Output: 4223 // &cc.TypeSpecifier{ 4224 // · Case: 6, 4225 // · Token: example106.c:1:2: DOUBLE "double", 4226 // } 4227 } 4228 4229 func ExampleTypeSpecifier_case07() { 4230 fmt.Println(exampleAST(107, "\U00100002 signed (")) 4231 // Output: 4232 // &cc.TypeSpecifier{ 4233 // · Case: 7, 4234 // · Token: example107.c:1:2: SIGNED "signed", 4235 // } 4236 } 4237 4238 func ExampleTypeSpecifier_case08() { 4239 fmt.Println(exampleAST(108, "\U00100002 unsigned (")) 4240 // Output: 4241 // &cc.TypeSpecifier{ 4242 // · Case: 8, 4243 // · Token: example108.c:1:2: UNSIGNED "unsigned", 4244 // } 4245 } 4246 4247 func ExampleTypeSpecifier_case09() { 4248 fmt.Println(exampleAST(109, "\U00100002 _Bool (")) 4249 // Output: 4250 // &cc.TypeSpecifier{ 4251 // · Case: 9, 4252 // · Token: example109.c:1:2: BOOL "_Bool", 4253 // } 4254 } 4255 4256 func ExampleTypeSpecifier_case10() { 4257 fmt.Println(exampleAST(110, "\U00100002 _Complex (")) 4258 // Output: 4259 // &cc.TypeSpecifier{ 4260 // · Case: 10, 4261 // · Token: example110.c:1:2: COMPLEX "_Complex", 4262 // } 4263 } 4264 4265 func ExampleTypeSpecifier_case11() { 4266 fmt.Println(exampleAST(111, "\U00100002 struct a (")) 4267 // Output: 4268 // &cc.TypeSpecifier{ 4269 // · Case: 11, 4270 // · StructOrUnionSpecifier: &cc.StructOrUnionSpecifier{ 4271 // · · Case: 1, 4272 // · · StructOrUnion: &cc.StructOrUnion{ 4273 // · · · Token: example111.c:1:2: STRUCT "struct", 4274 // · · }, 4275 // · · Token: example111.c:1:9: IDENTIFIER "a", 4276 // · }, 4277 // } 4278 } 4279 4280 func ExampleTypeSpecifier_case12() { 4281 fmt.Println(exampleAST(112, "\U00100002 enum a (")) 4282 // Output: 4283 // &cc.TypeSpecifier{ 4284 // · Case: 12, 4285 // · EnumSpecifier: &cc.EnumSpecifier{ 4286 // · · Case: 1, 4287 // · · Token: example112.c:1:2: ENUM "enum", 4288 // · · Token2: example112.c:1:7: IDENTIFIER "a", 4289 // · }, 4290 // } 4291 } 4292 4293 func ExampleTypeSpecifier_case13() { 4294 fmt.Println(exampleAST(113, "\U00100002 typedef int i; i j;")) 4295 // Output: 4296 // &cc.TypeSpecifier{ 4297 // · Case: 13, 4298 // · Token: example113.c:1:17: TYPEDEFNAME "i", 4299 // } 4300 } 4301 4302 func ExampleTypeSpecifier_case14() { 4303 fmt.Println(exampleAST(114, "\U00100002 typeof ( 'a' ) (")) 4304 // Output: 4305 // &cc.TypeSpecifier{ 4306 // · Type: int, 4307 // · Case: 14, 4308 // · Expression: &cc.Expression{ 4309 // · · Type: int, 4310 // · · Value: 97, 4311 // · · Case: 1, 4312 // · · Token: example114.c:1:11: CHARCONST "'a'", 4313 // · }, 4314 // · Token: example114.c:1:2: TYPEOF "typeof", 4315 // · Token2: example114.c:1:9: '(', 4316 // · Token3: example114.c:1:15: ')', 4317 // } 4318 } 4319 4320 func ExampleTypeSpecifier_case15() { 4321 fmt.Println(exampleAST(115, "\U00100002 typeof ( _Bool ) (")) 4322 // Output: 4323 // &cc.TypeSpecifier{ 4324 // · Type: bool, 4325 // · Case: 15, 4326 // · Token: example115.c:1:2: TYPEOF "typeof", 4327 // · Token2: example115.c:1:9: '(', 4328 // · Token3: example115.c:1:17: ')', 4329 // · TypeName: &cc.TypeName{ 4330 // · · Type: bool, 4331 // · · SpecifierQualifierList: &cc.SpecifierQualifierList{ 4332 // · · · TypeSpecifier: &cc.TypeSpecifier{ 4333 // · · · · Case: 9, 4334 // · · · · Token: example115.c:1:11: BOOL "_Bool", 4335 // · · · }, 4336 // · · }, 4337 // · }, 4338 // } 4339 } 4340 4341 func ExampleVolatileOpt() { 4342 fmt.Println(exampleAST(268, "\U00100002 asm (") == (*VolatileOpt)(nil)) 4343 // Output: 4344 // true 4345 } 4346 4347 func ExampleVolatileOpt_case1() { 4348 fmt.Println(exampleAST(269, "\U00100002 asm volatile (")) 4349 // Output: 4350 // &cc.VolatileOpt{ 4351 // · Token: example269.c:1:6: VOLATILE "volatile", 4352 // } 4353 }