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  }