xref: /freebsd/usr.bin/iscsictl/token.l (revision b3e7694832e81d7a904a10f525f8797b753bf0d3)
1009ea47eSEdward Tomasz Napierala %{
2009ea47eSEdward Tomasz Napierala /*-
3*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
41de7b4b8SPedro F. Giffuni  *
5009ea47eSEdward Tomasz Napierala  * Copyright (c) 2012 The FreeBSD Foundation
6009ea47eSEdward Tomasz Napierala  *
7009ea47eSEdward Tomasz Napierala  * This software was developed by Edward Tomasz Napierala under sponsorship
8009ea47eSEdward Tomasz Napierala  * from the FreeBSD Foundation.
9009ea47eSEdward Tomasz Napierala  *
10009ea47eSEdward Tomasz Napierala  * Redistribution and use in source and binary forms, with or without
11009ea47eSEdward Tomasz Napierala  * modification, are permitted provided that the following conditions
12009ea47eSEdward Tomasz Napierala  * are met:
13009ea47eSEdward Tomasz Napierala  * 1. Redistributions of source code must retain the above copyright
14009ea47eSEdward Tomasz Napierala  *    notice, this list of conditions and the following disclaimer.
15009ea47eSEdward Tomasz Napierala  * 2. Redistributions in binary form must reproduce the above copyright
16009ea47eSEdward Tomasz Napierala  *    notice, this list of conditions and the following disclaimer in the
17009ea47eSEdward Tomasz Napierala  *    documentation and/or other materials provided with the distribution.
18009ea47eSEdward Tomasz Napierala  *
19009ea47eSEdward Tomasz Napierala  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
20009ea47eSEdward Tomasz Napierala  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21009ea47eSEdward Tomasz Napierala  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22009ea47eSEdward Tomasz Napierala  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23009ea47eSEdward Tomasz Napierala  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24009ea47eSEdward Tomasz Napierala  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25009ea47eSEdward Tomasz Napierala  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26009ea47eSEdward Tomasz Napierala  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27009ea47eSEdward Tomasz Napierala  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28009ea47eSEdward Tomasz Napierala  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29009ea47eSEdward Tomasz Napierala  * SUCH DAMAGE.
30009ea47eSEdward Tomasz Napierala  */
31009ea47eSEdward Tomasz Napierala 
32009ea47eSEdward Tomasz Napierala #include <stdio.h>
33009ea47eSEdward Tomasz Napierala #include <stdint.h>
34009ea47eSEdward Tomasz Napierala #include <string.h>
35009ea47eSEdward Tomasz Napierala 
36009ea47eSEdward Tomasz Napierala #include "iscsictl.h"
37009ea47eSEdward Tomasz Napierala #include "y.tab.h"
38009ea47eSEdward Tomasz Napierala 
39009ea47eSEdward Tomasz Napierala int lineno;
40009ea47eSEdward Tomasz Napierala 
41009ea47eSEdward Tomasz Napierala #define	YY_DECL int yylex(void)
42009ea47eSEdward Tomasz Napierala extern int	yylex(void);
43009ea47eSEdward Tomasz Napierala 
44009ea47eSEdward Tomasz Napierala %}
45009ea47eSEdward Tomasz Napierala 
46009ea47eSEdward Tomasz Napierala %option noinput
47009ea47eSEdward Tomasz Napierala %option nounput
48cfeea569SEnji Cooper %option noyywrap
49009ea47eSEdward Tomasz Napierala 
50009ea47eSEdward Tomasz Napierala %%
51009ea47eSEdward Tomasz Napierala HeaderDigest		{ return HEADER_DIGEST; }
52009ea47eSEdward Tomasz Napierala DataDigest		{ return DATA_DIGEST; }
53009ea47eSEdward Tomasz Napierala TargetName		{ return TARGET_NAME; }
54009ea47eSEdward Tomasz Napierala TargetAddress		{ return TARGET_ADDRESS; }
55009ea47eSEdward Tomasz Napierala InitiatorName		{ return INITIATOR_NAME; }
56009ea47eSEdward Tomasz Napierala InitiatorAddress	{ return INITIATOR_ADDRESS; }
57009ea47eSEdward Tomasz Napierala InitiatorAlias		{ return INITIATOR_ALIAS; }
58009ea47eSEdward Tomasz Napierala chapIName		{ return USER; }
59009ea47eSEdward Tomasz Napierala chapSecret		{ return SECRET; }
60009ea47eSEdward Tomasz Napierala tgtChapName		{ return MUTUAL_USER; }
61009ea47eSEdward Tomasz Napierala tgtChapSecret		{ return MUTUAL_SECRET; }
62009ea47eSEdward Tomasz Napierala AuthMethod		{ return AUTH_METHOD; }
63009ea47eSEdward Tomasz Napierala SessionType		{ return SESSION_TYPE; }
64ba165a31SEdward Tomasz Napierala enable			{ return ENABLE; }
65009ea47eSEdward Tomasz Napierala protocol		{ return PROTOCOL; }
6682babffbSEdward Tomasz Napierala offload			{ return OFFLOAD; }
67009ea47eSEdward Tomasz Napierala port			{ return IGNORED; }
68bfabdadeSRichard Scheffenegger dscp			{ return DSCP; }
694dfbcffbSRichard Scheffenegger pcp			{ return PCP; }
70bd6bb493SRichard Scheffenegger PingTimeout		{ return PINGTIMEOUT; }
71bd6bb493SRichard Scheffenegger LoginTimeout		{ return LOGINTIMEOUT; }
72009ea47eSEdward Tomasz Napierala MaxConnections		{ return IGNORED; }
73009ea47eSEdward Tomasz Napierala TargetAlias		{ return IGNORED; }
74009ea47eSEdward Tomasz Napierala TargetPortalGroupTag	{ return IGNORED; }
75009ea47eSEdward Tomasz Napierala InitialR2T		{ return IGNORED; }
76009ea47eSEdward Tomasz Napierala ImmediateData		{ return IGNORED; }
77009ea47eSEdward Tomasz Napierala MaxRecvDataSegmentLength	{ return IGNORED; }
78009ea47eSEdward Tomasz Napierala MaxBurstLength		{ return IGNORED; }
79009ea47eSEdward Tomasz Napierala FirstBurstLength	{ return IGNORED; }
80009ea47eSEdward Tomasz Napierala DefaultTime2Wait	{ return IGNORED; }
81009ea47eSEdward Tomasz Napierala DefaultTime2Retain	{ return IGNORED; }
82009ea47eSEdward Tomasz Napierala MaxOutstandingR2T	{ return IGNORED; }
83009ea47eSEdward Tomasz Napierala DataPDUInOrder		{ return IGNORED; }
84009ea47eSEdward Tomasz Napierala DataSequenceInOrder	{ return IGNORED; }
85009ea47eSEdward Tomasz Napierala ErrorRecoveryLevel	{ return IGNORED; }
86009ea47eSEdward Tomasz Napierala tags			{ return IGNORED; }
87009ea47eSEdward Tomasz Napierala maxluns			{ return IGNORED; }
88009ea47eSEdward Tomasz Napierala sockbufsize		{ return IGNORED; }
89009ea47eSEdward Tomasz Napierala chapDigest		{ return IGNORED; }
90bfabdadeSRichard Scheffenegger af11			{ return AF11; }
91bfabdadeSRichard Scheffenegger af12			{ return AF12; }
92bfabdadeSRichard Scheffenegger af13			{ return AF13; }
93bfabdadeSRichard Scheffenegger af21			{ return AF21; }
94bfabdadeSRichard Scheffenegger af22			{ return AF22; }
95bfabdadeSRichard Scheffenegger af23			{ return AF23; }
96bfabdadeSRichard Scheffenegger af31			{ return AF31; }
97bfabdadeSRichard Scheffenegger af32			{ return AF32; }
98bfabdadeSRichard Scheffenegger af33			{ return AF33; }
99bfabdadeSRichard Scheffenegger af41			{ return AF41; }
100bfabdadeSRichard Scheffenegger af42			{ return AF42; }
101bfabdadeSRichard Scheffenegger af43			{ return AF43; }
102bfabdadeSRichard Scheffenegger be			{ return CS0;  }
103bfabdadeSRichard Scheffenegger ef			{ return EF;   }
104bfabdadeSRichard Scheffenegger cs0			{ return CS0;  }
105bfabdadeSRichard Scheffenegger cs1			{ return CS1;  }
106bfabdadeSRichard Scheffenegger cs2			{ return CS2;  }
107bfabdadeSRichard Scheffenegger cs3			{ return CS3;  }
108bfabdadeSRichard Scheffenegger cs4			{ return CS4;  }
109bfabdadeSRichard Scheffenegger cs5			{ return CS5;  }
110bfabdadeSRichard Scheffenegger cs6			{ return CS6;  }
111bfabdadeSRichard Scheffenegger cs7			{ return CS7;  }
112009ea47eSEdward Tomasz Napierala \"[^"]+\"		{ yylval.str = strndup(yytext + 1,
113009ea47eSEdward Tomasz Napierala 			    strlen(yytext) - 2); return STR; }
114009ea47eSEdward Tomasz Napierala [a-zA-Z0-9\.\-_/\:\[\]]+ { yylval.str = strdup(yytext); return STR; }
115009ea47eSEdward Tomasz Napierala \{			{ return OPENING_BRACKET; }
116009ea47eSEdward Tomasz Napierala \}			{ return CLOSING_BRACKET; }
117009ea47eSEdward Tomasz Napierala =			{ return EQUALS; }
11857cf56ceSEdward Tomasz Napierala ;			{ return SEMICOLON; }
119009ea47eSEdward Tomasz Napierala #.*$			/* ignore comments */;
1201cb587dcSEdward Tomasz Napierala \r\n			{ lineno++; }
121009ea47eSEdward Tomasz Napierala \n			{ lineno++; }
122009ea47eSEdward Tomasz Napierala [ \t]+			/* ignore whitespace */;
12357cf56ceSEdward Tomasz Napierala .			{ yylval.str = strdup(yytext); return STR; }
124009ea47eSEdward Tomasz Napierala %%
125