58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
/*************************************************************************\
|
|
* Copyright (c) 2006 UChicago, as Operator of Argonne
|
|
* National Laboratory.
|
|
* EPICS BASE is distributed subject to a Software License Agreement found
|
|
* in file LICENSE that is included with this distribution.
|
|
\*************************************************************************/
|
|
|
|
newline "\n"
|
|
backslash "\\"
|
|
doublequote "\""
|
|
singlequote "'"
|
|
comment "#"
|
|
whitespace [ \t\r]
|
|
escape {backslash}.
|
|
dstringchar [^"\n\\]
|
|
sstringchar [^'\n\\]
|
|
bareword [a-zA-Z0-9_\-+:./\\\[\]<>;]
|
|
|
|
%%
|
|
|
|
"pattern" { return(PATTERN); }
|
|
"file" { return(DBFILE); }
|
|
"global" { return(GLOBAL); }
|
|
|
|
{doublequote}({dstringchar}|{escape})*{doublequote} |
|
|
{singlequote}({sstringchar}|{escape})*{singlequote} {
|
|
yylval.Str = dbmfStrdup((char *) yytext+1);
|
|
yylval.Str[strlen(yylval.Str)-1] = '\0';
|
|
return(QUOTE);
|
|
}
|
|
|
|
{bareword}+ {
|
|
yylval.Str = dbmfStrdup((char *) yytext);
|
|
return(WORD);
|
|
}
|
|
|
|
"=" { return(EQUALS); }
|
|
"," { return(COMMA); }
|
|
"{" { return(O_BRACE); }
|
|
"}" { return(C_BRACE); }
|
|
|
|
{comment}.* ;
|
|
{whitespace} ;
|
|
{newline} { line_num++; }
|
|
|
|
. {
|
|
char message[40];
|
|
|
|
sprintf(message, "invalid character '%c'", yytext[0]);
|
|
yyerror(message);
|
|
|
|
/* Suppress compiler warning messages */
|
|
if (0) yyunput('c',NULL);
|
|
if (0) yy_switch_to_buffer(NULL);
|
|
}
|
|
|
|
%%
|