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