File: ssl.l

package info (click to toggle)
ssldump 0.9b3%2Bgit20180706.eb8fdd4-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,368 kB
  • sloc: ansic: 8,211; sh: 2,921; yacc: 183; makefile: 92; lex: 67
file content (67 lines) | stat: -rw-r--r-- 1,614 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
%option yylineno

%{
#include "y.tab.h"

#if 0
#define RETURN(x) printf("TOK:%s\n",#x);  return(x)
#else
#define RETURN return
#endif

long strtol();
%}  

IDCHAR		[a-zA-Z0-9_\-\.]
NUMCHAR		[0-9]
S		[ \t\n\r\f]+
NAME		[a-zA-Z]{IDCHAR}+
NUM		{NUMCHAR}+
HEXNUM          "0x"[0-9A-Za-z]+
COMMENT		"/*"("*"?[^/]+)*("*/")
CODE            "{@"[^@]+"@}"
%%

".."			{RETURN(DOT_DOT_);}
"enum"			{RETURN(ENUM_);}
"struct"		{RETURN(STRUCT_);}
"opaque"		{mkname();RETURN(OPAQUE_);}
"select"		{RETURN(SELECT_);}
"constant"              {RETURN(CONSTANT_);}
"digitally-signed"	{/* Do nothing*/}
"public-key-encrypted"  {/* Do nothing*/}
"case"			{RETURN(CASE_);}
{COMMENT}		{ /*Do nothing*/}
{CODE}          { strcpy(yylval.str,yytext); RETURN(CODE_);}

{S}			{/*do nothing*/} 
{NAME}			{mkname();RETURN(NAME_);}
{NUM}			{yylval.val=atoi(yytext); RETURN(NUM_);}
{HEXNUM}			{yylval.val=strtol(yytext,0,16); RETURN(NUM_);}
"{"                      { RETURN('{'); }
"}"                      { RETURN('}'); }
"("                      { RETURN('('); }
")"                      { RETURN(')'); }
"["                      { RETURN('['); }
"]"                      { RETURN(']'); }
"<"                      { RETURN('<'); }
">"			 { RETURN('>'); }
";"                      { RETURN(';'); }
":"			 { RETURN(':'); }
","			 { RETURN(','); }
"."			 { RETURN('.'); }
"^"			 { RETURN('^'); }
"-"			 { RETURN('-'); }
"="                      { RETURN('='); }
.			 { fprintf(stderr,"Invalid input token: %s at %d!!!\n",yytext,yylineno);
			   exit(1);
			   }

%%
int mkname()
{
#if 0
printf("%s\n",yytext);
#endif
strcpy(yylval.str,yytext);
}