lsym_preprocessing.c revision 1.2
1/* $NetBSD: lsym_preprocessing.c,v 1.2 2021/11/20 16:54:17 rillig Exp $ */
2/* $FreeBSD$ */
3
4/*
5 * Tests for the token lsym_preprocessing, which represents a '#' that starts
6 * a preprocessing line.
7 *
8 * The whole preprocessing line is processed separately from the main source
9 * code, without much tokenizing or parsing.
10 */
11
12// TODO: test '#' in the middle of a non-preprocessing line
13// TODO: test stringify '#'
14// TODO: test token paste '##'
15
16#indent input
17// TODO: add input
18#indent end
19
20#indent run-equals-input
21
22
23/*
24 * Whitespace in the following preprocessing directives is preserved.
25 */
26#indent input
27#define space ' '		/* the 'define' is followed by a space */
28#define	tab '\t'		/* the 'define' is followed by a tab */
29#if   0				/* 3 spaces */
30#elif		0		/* 2 tabs */
31#elif	0	>	1	/* tabs between the tokens */
32#endif
33#indent end
34
35#indent run-equals-input
36
37// TODO: #define unfinished_string "...
38// TODO: #define unfinished_char '...
39// TODO: # 123 "file.h"
40// TODO: backslash-newline
41// TODO: block comment
42// TODO: line comment
43