GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: sbin/wsconsctl/map_scan.l Lines: 0 1 0.0 %
Date: 2017-11-07 Branches: 0 0 0.0 %

Line Branch Exec Source
1
/*	$OpenBSD: map_scan.l,v 1.7 2017/07/09 14:04:50 espie Exp $	*/
2
/*	$NetBSD: map_scan.l 1.1 1998/12/28 14:01:17 hannken Exp $ */
3
4
/*-
5
 * Copyright (c) 1998 The NetBSD Foundation, Inc.
6
 * All rights reserved.
7
 *
8
 * This code is derived from software contributed to The NetBSD Foundation
9
 * by Juergen Hannken-Illjes.
10
 *
11
 * Redistribution and use in source and binary forms, with or without
12
 * modification, are permitted provided that the following conditions
13
 * are met:
14
 * 1. Redistributions of source code must retain the above copyright
15
 *    notice, this list of conditions and the following disclaimer.
16
 * 2. Redistributions in binary form must reproduce the above copyright
17
 *    notice, this list of conditions and the following disclaimer in the
18
 *    documentation and/or other materials provided with the distribution.
19
 *
20
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
 * POSSIBILITY OF SUCH DAMAGE.
31
 */
32
33
%option noyywrap
34
35
%{
36
37
#include <dev/wscons/wsksymdef.h>
38
#include <dev/wscons/wsksymvar.h>
39
#include <limits.h>
40
#include <err.h>
41
#include "wsconsctl.h"
42
#include "map_parse.h"
43
44
void
45
map_scan_setinput(char *str)
46
{
47
	yy_scan_string(str);
48
}
49
50
%}
51
52
%%
53
54
[ \t\n]+ {
55
		/* ignore spaces and tabs */
56
	}
57
58
"=" {
59
		return('=');
60
	}
61
62
keycode {
63
		return(T_KEYCODE);
64
	}
65
66
keysym {
67
		return(T_KEYSYM);
68
	}
69
70
[a-zA-Z][a-zA-Z0-9_]* {
71
		int i;
72
73
		i = name2ksym(yytext);
74
		if (i == -1)
75
			errx(1, "%s: not a keysym", yytext);
76
		yylval.kval = i;
77
		if (KS_GROUP(i) == KS_GROUP_Command ||
78
		    i == KS_Cmd || i == KS_Cmd1 || i == KS_Cmd2)
79
			return(T_KEYSYM_CMD_VAR);
80
		else
81
			return(T_KEYSYM_VAR);
82
	}
83
84
[0-9]+ {
85
		const char *errstr;
86
87
		yylval.ival = strtonum(yytext, 0, INT_MAX, &errstr);
88
		if (errstr)
89
			errx(1, "%s: %s", yytext, errstr);
90
		return(T_NUMBER);
91
	}
92
93
. {
94
		if (yytext[0] >= ' ' && yytext[0] <= '~')
95
			errx(1, "%c: illegal character in input", yytext[0]);
96
		else
97
			errx(1, "%03o: illegal character in input", yytext[0] & 255);
98
99
		/* To quiet the compiler */
100
		if (0)
101
			unput(0);
102
	}