psym_decl.c revision 1.4
11.4Srillig/* $NetBSD: psym_decl.c,v 1.4 2022/04/24 10:36:37 rillig Exp $ */ 21.1Srillig 31.1Srillig/* 41.1Srillig * Tests for the parser symbol psym_decl, which represents a declaration. 51.1Srillig * 61.1Srillig * Since C99, declarations and statements can be mixed in blocks. 71.1Srillig * 81.1Srillig * A label can be followed by a statement but not by a declaration. 91.4Srillig * 101.4Srillig * Indent distinguishes global and local declarations. 111.4Srillig * 121.4Srillig * Declarations can be for functions or for variables. 131.1Srillig */ 141.1Srillig 151.1Srillig// TODO: prove that psym_decl can only ever occur at the top of the stack. 161.1Srillig// TODO: delete decl_level if the above is proven. 171.1Srillig 181.3Srillig//indent input 191.4Srilligint global_var; 201.4Srilligint global_array = [1,2,3,4]; 211.4Srilligint global_array = [ 221.4Srillig1 231.4Srillig,2, 241.4Srillig3, 251.4Srillig4, 261.4Srillig]; 271.3Srillig//indent end 281.1Srillig 291.4Srillig//indent run -di0 301.4Srilligint global_var; 311.4Srilligint global_array = [1, 2, 3, 4]; 321.4Srilligint global_array = [ 331.4Srillig 1 341.4Srillig ,2, 351.4Srillig 3, 361.4Srillig 4, 371.4Srillig]; 381.4Srillig//indent end 39