41#include "jsgf_parser.h"
Internal definitions for JSGF grammar compiler.
45%option 8bit reentrant bison-bridge noyywrap yylineno never-interactive nounput nounistd
46%option header-file="jsgf_scanner.h"
54weight \/[0-9]*(\.[0-9]+)?(e-)?[0-9]*\/
55token [^ \t\r\n=;|*+<>()\[\]{}*/]+
56qstring \"(\\.|[^"]+)*\"
63<INITIAL>\/\* { BEGIN(COMMENT); }
64<COMMENT>\*\/ { BEGIN(INITIAL); }
68<DECL>\/\* { BEGIN(DECLCOMMENT); }
69<DECLCOMMENT>\*\/ { BEGIN(DECL); }
72<INITIAL>{bom}?#JSGF {BEGIN(DECL);
return HEADER;}
73<INITIAL>grammar {BEGIN(DECL);
return GRAMMAR;}
74<INITIAL>import {BEGIN(DECL);
return IMPORT;}
75<INITIAL>public {BEGIN(DECL);
return PUBLIC;}
77<INITIAL>{rulename} { BEGIN(DECL); yylval->name = strdup(yytext);
return RULENAME; }
78<DECL>{rulename} { yylval->name = strdup(yytext);
return RULENAME; }
80<DECL>{tag} { yylval->name = strdup(yytext);
return TAG; }
81<DECL>{token} { yylval->name = strdup(yytext);
return TOKEN; }
82<DECL>; { BEGIN(INITIAL);
return yytext[0]; }
83<DECL>{qstring} { yylval->name = strdup(yytext);
return TOKEN; }
84<DECL>{weight} { yylval->weight =
atof_c(yytext+1);
return WEIGHT; }
SPHINXBASE_EXPORT double atof_c(char const *str)
Locale independent version of atof().
85<DECL>. return yytext[0];