Removed prefix flags from yacc and lex (to prepare for automake).
This commit is contained in:
11
lib/Makefile
11
lib/Makefile
@@ -10,10 +10,13 @@ TOC_OBJS= toc_parse.o toc_scan.o toc_print.o
|
||||
# so we need a prefix to aviod conflicts.
|
||||
# (NOTE: these lines require GNU Make)
|
||||
|
||||
toc_scan.c: LFLAGS+= -Ptoc_yy
|
||||
cue_scan.c: LFLAGS+= -Pcue_yy
|
||||
toc_parse.c: YFLAGS+= -p toc_yy
|
||||
cue_parse.c: YFLAGS+= -p cue_yy
|
||||
# these have been moved to the source files to prepare for automake
|
||||
# for flex, used %option prefix="cue_yy"
|
||||
#toc_scan.c: LFLAGS+= -Ptoc_yy
|
||||
#cue_scan.c: LFLAGS+= -Pcue_yy
|
||||
# for yacc, used cue_parse_prefix.h with defines
|
||||
#toc_parse.c: YFLAGS+= -p toc_yy
|
||||
#cue_parse.c: YFLAGS+= -p cue_yy
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
#include <string.h>
|
||||
#include "cd.h"
|
||||
#include "time.h"
|
||||
#include "cue_parse_prefix.h"
|
||||
|
||||
#define YYDEBUG 1
|
||||
|
||||
extern int cue_yylex();
|
||||
extern int yylex();
|
||||
void yyerror (char *s);
|
||||
|
||||
static Cd *cd = NULL;
|
||||
@@ -259,7 +260,7 @@ time
|
||||
|
||||
/* lexer interface */
|
||||
extern int cue_lineno;
|
||||
extern int cue_yydebug;
|
||||
extern int yydebug;
|
||||
extern FILE *cue_yyin;
|
||||
|
||||
void yyerror (char *s)
|
||||
@@ -270,9 +271,9 @@ void yyerror (char *s)
|
||||
Cd *cue_parse (FILE *fp)
|
||||
{
|
||||
cue_yyin = fp;
|
||||
cue_yydebug = 0;
|
||||
yydebug = 0;
|
||||
|
||||
if (0 == cue_yyparse())
|
||||
if (0 == yyparse())
|
||||
return cd;
|
||||
|
||||
return NULL;
|
||||
|
||||
44
lib/cue_parse_prefix.h
Normal file
44
lib/cue_parse_prefix.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Remap normal yacc names so we can have multiple parsers
|
||||
* see http://www.gnu.org/software/automake/manual/html_node/Yacc-and-Lex.html
|
||||
*/
|
||||
|
||||
#define yymaxdepth cue_yymaxdepth
|
||||
#define yyparse cue_yyparse
|
||||
#define yylex cue_yylex
|
||||
#define yyerror cue_yyerror
|
||||
#define yylval cue_yylval
|
||||
#define yychar cue_yychar
|
||||
#define yydebug cue_yydebug
|
||||
#define yypact cue_yypact
|
||||
#define yyr1 cue_yyr1
|
||||
#define yyr2 cue_yyr2
|
||||
#define yydef cue_yydef
|
||||
#define yychk cue_yychk
|
||||
#define yypgo cue_yypgo
|
||||
#define yyact cue_yyact
|
||||
#define yyexca cue_yyexca
|
||||
#define yyerrflag cue_yyerrflag
|
||||
#define yynerrs cue_yynerrs
|
||||
#define yyps cue_yyps
|
||||
#define yypv cue_yypv
|
||||
#define yys cue_yys
|
||||
#define yy_yys cue_yy_yys
|
||||
#define yystate cue_yystate
|
||||
#define yytmp cue_yytmp
|
||||
#define yyv cue_yyv
|
||||
#define yy_yyv cue_yy_yyv
|
||||
#define yyval cue_yyval
|
||||
#define yylloc cue_yylloc
|
||||
#define yyreds cue_yyreds
|
||||
#define yytoks cue_yytoks
|
||||
#define yylhs cue_yylhs
|
||||
#define yylen cue_yylen
|
||||
#define yydefred cue_yydefred
|
||||
#define yydgoto cue_yydgoto
|
||||
#define yysinde cue_yysindex
|
||||
#define yyrindex cue_yyrindex
|
||||
#define yygindex cue_yygindex
|
||||
#define yytable cue_yytable
|
||||
#define yycheck cue_yycheck
|
||||
#define yyname cue_yyname
|
||||
#define yyrule cue_yyrule
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "cd.h"
|
||||
#include "cue_parse_prefix.h"
|
||||
#include "cue_parse.h"
|
||||
|
||||
int cue_lineno = 1;
|
||||
@@ -18,6 +19,7 @@ ws [ \t\r]
|
||||
nonws [^ \t\r\n]
|
||||
|
||||
%option noyywrap
|
||||
%option prefix="cue_yy"
|
||||
|
||||
%s NAME
|
||||
|
||||
@@ -25,14 +27,14 @@ nonws [^ \t\r\n]
|
||||
|
||||
\'([^\']|\\\')*\' |
|
||||
\"([^\"]|\\\")*\" {
|
||||
cue_yylval.sval = strdup(yytext + 1);
|
||||
cue_yylval.sval[strlen(cue_yylval.sval) - 1] = '\0';
|
||||
yylval.sval = strdup(yytext + 1);
|
||||
yylval.sval[strlen(yylval.sval) - 1] = '\0';
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
<NAME>{nonws}+ {
|
||||
cue_yylval.sval = strdup(yytext);
|
||||
yylval.sval = strdup(yytext);
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
@@ -48,45 +50,45 @@ WAVE { return WAVE; }
|
||||
MP3 { return MP3; }
|
||||
|
||||
TRACK { return TRACK; }
|
||||
AUDIO { cue_yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||
MODE1\/2048 { cue_yylval.ival = MODE_MODE1; return MODE1_2048; }
|
||||
MODE1\/2352 { cue_yylval.ival = MODE_MODE1_RAW; return MODE1_2352; }
|
||||
MODE2\/2336 { cue_yylval.ival = MODE_MODE2; return MODE2_2336; }
|
||||
MODE2\/2048 { cue_yylval.ival = MODE_MODE2_FORM1; return MODE2_2048; }
|
||||
MODE2\/2342 { cue_yylval.ival = MODE_MODE2_FORM2; return MODE2_2342; }
|
||||
MODE2\/2332 { cue_yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_2332; }
|
||||
MODE2\/2352 { cue_yylval.ival = MODE_MODE2_RAW; return MODE2_2352; }
|
||||
AUDIO { yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||
MODE1\/2048 { yylval.ival = MODE_MODE1; return MODE1_2048; }
|
||||
MODE1\/2352 { yylval.ival = MODE_MODE1_RAW; return MODE1_2352; }
|
||||
MODE2\/2336 { yylval.ival = MODE_MODE2; return MODE2_2336; }
|
||||
MODE2\/2048 { yylval.ival = MODE_MODE2_FORM1; return MODE2_2048; }
|
||||
MODE2\/2342 { yylval.ival = MODE_MODE2_FORM2; return MODE2_2342; }
|
||||
MODE2\/2332 { yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_2332; }
|
||||
MODE2\/2352 { yylval.ival = MODE_MODE2_RAW; return MODE2_2352; }
|
||||
|
||||
FLAGS { return FLAGS; }
|
||||
PRE { cue_yylval.ival = FLAG_PRE_EMPHASIS; return PRE; }
|
||||
DCP { cue_yylval.ival = FLAG_COPY_PERMITTED; return DCP; }
|
||||
4CH { cue_yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CH; }
|
||||
SCMS { cue_yylval.ival = FLAG_SCMS; return SCMS; }
|
||||
PRE { yylval.ival = FLAG_PRE_EMPHASIS; return PRE; }
|
||||
DCP { yylval.ival = FLAG_COPY_PERMITTED; return DCP; }
|
||||
4CH { yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CH; }
|
||||
SCMS { yylval.ival = FLAG_SCMS; return SCMS; }
|
||||
|
||||
PREGAP { return PREGAP; }
|
||||
INDEX { return INDEX; }
|
||||
POSTGAP { return POSTGAP; }
|
||||
|
||||
TITLE { BEGIN(NAME); cue_yylval.ival = PTI_TITLE; return TITLE; }
|
||||
PERFORMER { BEGIN(NAME); cue_yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||
SONGWRITER { BEGIN(NAME); cue_yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||
COMPOSER { BEGIN(NAME); cue_yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||
ARRANGER { BEGIN(NAME); cue_yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||
MESSAGE { BEGIN(NAME); cue_yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||
DISC_ID { BEGIN(NAME); cue_yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||
GENRE { BEGIN(NAME); cue_yylval.ival = PTI_GENRE; return GENRE; }
|
||||
TOC_INFO1 { BEGIN(NAME); cue_yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||
TOC_INFO2 { BEGIN(NAME); cue_yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||
UPC_EAN { BEGIN(NAME); cue_yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||
ISRC/{ws}+\" { BEGIN(NAME); cue_yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||
SIZE_INFO { BEGIN(NAME); cue_yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||
TITLE { BEGIN(NAME); yylval.ival = PTI_TITLE; return TITLE; }
|
||||
PERFORMER { BEGIN(NAME); yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||
SONGWRITER { BEGIN(NAME); yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||
COMPOSER { BEGIN(NAME); yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||
ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||
MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; }
|
||||
TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||
ISRC/{ws}+\" { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||
SIZE_INFO { BEGIN(NAME); yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||
|
||||
ISRC { BEGIN(NAME); return TRACK_ISRC; }
|
||||
|
||||
^{ws}*REM.*\n { cue_lineno++; /* ignore comments */ }
|
||||
{ws}+ { /* ignore whitespace */ }
|
||||
|
||||
[[:digit:]]+ { cue_yylval.ival = atoi(yytext); return NUMBER; }
|
||||
[[:digit:]]+ { yylval.ival = atoi(yytext); return NUMBER; }
|
||||
: { return yytext[0]; }
|
||||
|
||||
^{ws}*\n { cue_lineno++; /* blank line */ }
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
#include <string.h>
|
||||
#include "cd.h"
|
||||
#include "time.h"
|
||||
#include "toc_parse_prefix.h"
|
||||
|
||||
#define YYDEBUG 1
|
||||
|
||||
extern int toc_yylex();
|
||||
extern int yylex();
|
||||
void yyerror (char *s);
|
||||
|
||||
static Cd *cd = NULL;
|
||||
@@ -325,7 +326,7 @@ opt_nl
|
||||
|
||||
/* lexer interface */
|
||||
extern int toc_lineno;
|
||||
extern int toc_yydebug;
|
||||
extern int yydebug;
|
||||
extern FILE *toc_yyin;
|
||||
|
||||
void yyerror (char *s)
|
||||
@@ -336,9 +337,9 @@ void yyerror (char *s)
|
||||
Cd *toc_parse (FILE *fp)
|
||||
{
|
||||
toc_yyin = fp;
|
||||
toc_yydebug = 0;
|
||||
yydebug = 0;
|
||||
|
||||
if (0 == toc_yyparse())
|
||||
if (0 == yyparse())
|
||||
return cd;
|
||||
|
||||
return NULL;
|
||||
|
||||
44
lib/toc_parse_prefix.h
Normal file
44
lib/toc_parse_prefix.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Remap normal yacc names so we can have multiple parsers
|
||||
* see http://www.gnu.org/software/automake/manual/html_node/Yacc-and-Lex.html
|
||||
*/
|
||||
|
||||
#define yymaxdepth toc_yymaxdepth
|
||||
#define yyparse toc_yyparse
|
||||
#define yylex toc_yylex
|
||||
#define yyerror toc_yyerror
|
||||
#define yylval toc_yylval
|
||||
#define yychar toc_ychar
|
||||
#define yydebug toc_yydebug
|
||||
#define yypact toc_yypact
|
||||
#define yyr1 toc_yyr1
|
||||
#define yyr2 toc_yyr2
|
||||
#define yydef toc_yydef
|
||||
#define yychk toc_yychk
|
||||
#define yypgo toc_yypgo
|
||||
#define yyact toc_yyact
|
||||
#define yyexca toc_yyexca
|
||||
#define yyerrflag toc_yyerrflag
|
||||
#define yynerrs toc_yynerrs
|
||||
#define yyps toc_yyps
|
||||
#define yypv toc_yypv
|
||||
#define yys toc_yys
|
||||
#define yy_yys toc_yy_yys
|
||||
#define yystate toc_yystate
|
||||
#define yytmp toc_yytmp
|
||||
#define yyv toc_yyv
|
||||
#define yy_yyv toc_yy_yyv
|
||||
#define yyval toc_yyval
|
||||
#define yylloc toc_yylloc
|
||||
#define yyreds toc_yyreds
|
||||
#define yytoks toc_yytoks
|
||||
#define yylhs toc_yylhs
|
||||
#define yylen toc_yylen
|
||||
#define yydefred toc_yydefred
|
||||
#define yydgoto toc_yydgoto
|
||||
#define yysinde toc_yysindex
|
||||
#define yyrindex toc_yyrindex
|
||||
#define yygindex toc_yygindex
|
||||
#define yytable toc_yytable
|
||||
#define yycheck toc_yycheck
|
||||
#define yyname toc_yyname
|
||||
#define yyrule toc_yyrule
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "cd.h"
|
||||
#include "toc_parse_prefix.h"
|
||||
#include "toc_parse.h"
|
||||
|
||||
int toc_lineno = 1;
|
||||
@@ -18,6 +19,7 @@ ws [ \t\r]
|
||||
nonws [^ \t\r\n]
|
||||
|
||||
%option noyywrap
|
||||
%option prefix="toc_yy"
|
||||
|
||||
%s NAME
|
||||
|
||||
@@ -25,41 +27,41 @@ nonws [^ \t\r\n]
|
||||
|
||||
\'([^\']|\\\')*\' |
|
||||
\"([^\"]|\\\")*\" {
|
||||
toc_yylval.sval = strdup(yytext + 1);
|
||||
toc_yylval.sval[strlen(toc_yylval.sval) - 1] = '\0';
|
||||
yylval.sval = strdup(yytext + 1);
|
||||
yylval.sval[strlen(yylval.sval) - 1] = '\0';
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
<NAME>{nonws}+ {
|
||||
toc_yylval.sval = strdup(yytext);
|
||||
yylval.sval = strdup(yytext);
|
||||
BEGIN(INITIAL);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
CATALOG { BEGIN(NAME); return CATALOG; }
|
||||
|
||||
CD_DA { toc_yylval.ival = MODE_CD_DA; return CD_DA; }
|
||||
CD_ROM { toc_yylval.ival = MODE_CD_ROM; return CD_ROM; }
|
||||
CD_ROM_XA { toc_yylval.ival = MODE_CD_ROM_XA; return CD_ROM_XA; }
|
||||
CD_DA { yylval.ival = MODE_CD_DA; return CD_DA; }
|
||||
CD_ROM { yylval.ival = MODE_CD_ROM; return CD_ROM; }
|
||||
CD_ROM_XA { yylval.ival = MODE_CD_ROM_XA; return CD_ROM_XA; }
|
||||
|
||||
TRACK { return TRACK; }
|
||||
AUDIO { toc_yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||
MODE1 { toc_yylval.ival = MODE_MODE1; return MODE1; }
|
||||
MODE1_RAW { toc_yylval.ival = MODE_MODE1_RAW; return MODE1_RAW; }
|
||||
MODE2 { toc_yylval.ival = MODE_MODE2; return MODE2; }
|
||||
MODE2_FORM1 { toc_yylval.ival = MODE_MODE2_FORM1; return MODE2_FORM1; }
|
||||
MODE2_FORM2 { toc_yylval.ival = MODE_MODE2_FORM2; return MODE2_FORM2; }
|
||||
MODE2_FORM_MIX { toc_yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_FORM_MIX; }
|
||||
MODE2_RAW { toc_yylval.ival = MODE_MODE2_RAW; return MODE2_RAW; }
|
||||
RW { toc_yylval.ival = SUB_MODE_RW; return RW; }
|
||||
RW_RAW { toc_yylval.ival = SUB_MODE_RW_RAW; return RW_RAW; }
|
||||
AUDIO { yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||
MODE1 { yylval.ival = MODE_MODE1; return MODE1; }
|
||||
MODE1_RAW { yylval.ival = MODE_MODE1_RAW; return MODE1_RAW; }
|
||||
MODE2 { yylval.ival = MODE_MODE2; return MODE2; }
|
||||
MODE2_FORM1 { yylval.ival = MODE_MODE2_FORM1; return MODE2_FORM1; }
|
||||
MODE2_FORM2 { yylval.ival = MODE_MODE2_FORM2; return MODE2_FORM2; }
|
||||
MODE2_FORM_MIX { yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_FORM_MIX; }
|
||||
MODE2_RAW { yylval.ival = MODE_MODE2_RAW; return MODE2_RAW; }
|
||||
RW { yylval.ival = SUB_MODE_RW; return RW; }
|
||||
RW_RAW { yylval.ival = SUB_MODE_RW_RAW; return RW_RAW; }
|
||||
|
||||
NO { return NO; }
|
||||
COPY { toc_yylval.ival = FLAG_PRE_EMPHASIS; return COPY; }
|
||||
PRE_EMPHASIS { toc_yylval.ival = FLAG_COPY_PERMITTED; return PRE_EMPHASIS; }
|
||||
FOUR_CHANNEL_AUDIO { toc_yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CHANNEL_AUDIO; }
|
||||
TWO_CHANNEL_AUDIO { toc_yylval.ival = FLAG_FOUR_CHANNEL; return TWO_CHANNEL_AUDIO; }
|
||||
COPY { yylval.ival = FLAG_PRE_EMPHASIS; return COPY; }
|
||||
PRE_EMPHASIS { yylval.ival = FLAG_COPY_PERMITTED; return PRE_EMPHASIS; }
|
||||
FOUR_CHANNEL_AUDIO { yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CHANNEL_AUDIO; }
|
||||
TWO_CHANNEL_AUDIO { yylval.ival = FLAG_FOUR_CHANNEL; return TWO_CHANNEL_AUDIO; }
|
||||
|
||||
/* ISRC is with CD-TEXT items */
|
||||
|
||||
@@ -76,24 +78,24 @@ CD_TEXT { return CD_TEXT; }
|
||||
LANGUAGE_MAP { return LANGUAGE_MAP; }
|
||||
LANGUAGE { return LANGUAGE; }
|
||||
|
||||
TITLE { BEGIN(NAME); toc_yylval.ival = PTI_TITLE; return TITLE; }
|
||||
PERFORMER { BEGIN(NAME); toc_yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||
SONGWRITER { BEGIN(NAME); toc_yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||
COMPOSER { BEGIN(NAME); toc_yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||
ARRANGER { BEGIN(NAME); toc_yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||
MESSAGE { BEGIN(NAME); toc_yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||
DISC_ID { BEGIN(NAME); toc_yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||
GENRE { BEGIN(NAME); toc_yylval.ival = PTI_GENRE; return GENRE; }
|
||||
TOC_INFO1 { BEGIN(NAME); toc_yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||
TOC_INFO2 { BEGIN(NAME); toc_yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||
UPC_EAN { BEGIN(NAME); toc_yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||
ISRC { BEGIN(NAME); toc_yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||
SIZE_INFO { BEGIN(NAME); toc_yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||
TITLE { BEGIN(NAME); yylval.ival = PTI_TITLE; return TITLE; }
|
||||
PERFORMER { BEGIN(NAME); yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||
SONGWRITER { BEGIN(NAME); yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||
COMPOSER { BEGIN(NAME); yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||
ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||
MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; }
|
||||
TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||
ISRC { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||
SIZE_INFO { BEGIN(NAME); yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||
|
||||
"//".*\n { toc_lineno++; /* ignore comments */ }
|
||||
{ws}+ { /* ignore whitespace */ }
|
||||
|
||||
[[:digit:]]+ { toc_yylval.ival = atoi(yytext); return NUMBER; }
|
||||
[[:digit:]]+ { yylval.ival = atoi(yytext); return NUMBER; }
|
||||
:|,|\{|\} { return yytext[0]; }
|
||||
|
||||
^{ws}*\n { toc_lineno++; /* blank line */ }
|
||||
|
||||
Reference in New Issue
Block a user