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.
|
# so we need a prefix to aviod conflicts.
|
||||||
# (NOTE: these lines require GNU Make)
|
# (NOTE: these lines require GNU Make)
|
||||||
|
|
||||||
toc_scan.c: LFLAGS+= -Ptoc_yy
|
# these have been moved to the source files to prepare for automake
|
||||||
cue_scan.c: LFLAGS+= -Pcue_yy
|
# for flex, used %option prefix="cue_yy"
|
||||||
toc_parse.c: YFLAGS+= -p toc_yy
|
#toc_scan.c: LFLAGS+= -Ptoc_yy
|
||||||
cue_parse.c: YFLAGS+= -p cue_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)
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "cd.h"
|
#include "cd.h"
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
|
#include "cue_parse_prefix.h"
|
||||||
|
|
||||||
#define YYDEBUG 1
|
#define YYDEBUG 1
|
||||||
|
|
||||||
extern int cue_yylex();
|
extern int yylex();
|
||||||
void yyerror (char *s);
|
void yyerror (char *s);
|
||||||
|
|
||||||
static Cd *cd = NULL;
|
static Cd *cd = NULL;
|
||||||
@@ -259,7 +260,7 @@ time
|
|||||||
|
|
||||||
/* lexer interface */
|
/* lexer interface */
|
||||||
extern int cue_lineno;
|
extern int cue_lineno;
|
||||||
extern int cue_yydebug;
|
extern int yydebug;
|
||||||
extern FILE *cue_yyin;
|
extern FILE *cue_yyin;
|
||||||
|
|
||||||
void yyerror (char *s)
|
void yyerror (char *s)
|
||||||
@@ -270,9 +271,9 @@ void yyerror (char *s)
|
|||||||
Cd *cue_parse (FILE *fp)
|
Cd *cue_parse (FILE *fp)
|
||||||
{
|
{
|
||||||
cue_yyin = fp;
|
cue_yyin = fp;
|
||||||
cue_yydebug = 0;
|
yydebug = 0;
|
||||||
|
|
||||||
if (0 == cue_yyparse())
|
if (0 == yyparse())
|
||||||
return cd;
|
return cd;
|
||||||
|
|
||||||
return NULL;
|
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 <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "cd.h"
|
#include "cd.h"
|
||||||
|
#include "cue_parse_prefix.h"
|
||||||
#include "cue_parse.h"
|
#include "cue_parse.h"
|
||||||
|
|
||||||
int cue_lineno = 1;
|
int cue_lineno = 1;
|
||||||
@@ -18,6 +19,7 @@ ws [ \t\r]
|
|||||||
nonws [^ \t\r\n]
|
nonws [^ \t\r\n]
|
||||||
|
|
||||||
%option noyywrap
|
%option noyywrap
|
||||||
|
%option prefix="cue_yy"
|
||||||
|
|
||||||
%s NAME
|
%s NAME
|
||||||
|
|
||||||
@@ -25,14 +27,14 @@ nonws [^ \t\r\n]
|
|||||||
|
|
||||||
\'([^\']|\\\')*\' |
|
\'([^\']|\\\')*\' |
|
||||||
\"([^\"]|\\\")*\" {
|
\"([^\"]|\\\")*\" {
|
||||||
cue_yylval.sval = strdup(yytext + 1);
|
yylval.sval = strdup(yytext + 1);
|
||||||
cue_yylval.sval[strlen(cue_yylval.sval) - 1] = '\0';
|
yylval.sval[strlen(yylval.sval) - 1] = '\0';
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
return STRING;
|
return STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
<NAME>{nonws}+ {
|
<NAME>{nonws}+ {
|
||||||
cue_yylval.sval = strdup(yytext);
|
yylval.sval = strdup(yytext);
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
return STRING;
|
return STRING;
|
||||||
}
|
}
|
||||||
@@ -48,45 +50,45 @@ WAVE { return WAVE; }
|
|||||||
MP3 { return MP3; }
|
MP3 { return MP3; }
|
||||||
|
|
||||||
TRACK { return TRACK; }
|
TRACK { return TRACK; }
|
||||||
AUDIO { cue_yylval.ival = MODE_AUDIO; return AUDIO; }
|
AUDIO { yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||||
MODE1\/2048 { cue_yylval.ival = MODE_MODE1; return MODE1_2048; }
|
MODE1\/2048 { yylval.ival = MODE_MODE1; return MODE1_2048; }
|
||||||
MODE1\/2352 { cue_yylval.ival = MODE_MODE1_RAW; return MODE1_2352; }
|
MODE1\/2352 { yylval.ival = MODE_MODE1_RAW; return MODE1_2352; }
|
||||||
MODE2\/2336 { cue_yylval.ival = MODE_MODE2; return MODE2_2336; }
|
MODE2\/2336 { yylval.ival = MODE_MODE2; return MODE2_2336; }
|
||||||
MODE2\/2048 { cue_yylval.ival = MODE_MODE2_FORM1; return MODE2_2048; }
|
MODE2\/2048 { yylval.ival = MODE_MODE2_FORM1; return MODE2_2048; }
|
||||||
MODE2\/2342 { cue_yylval.ival = MODE_MODE2_FORM2; return MODE2_2342; }
|
MODE2\/2342 { yylval.ival = MODE_MODE2_FORM2; return MODE2_2342; }
|
||||||
MODE2\/2332 { cue_yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_2332; }
|
MODE2\/2332 { yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_2332; }
|
||||||
MODE2\/2352 { cue_yylval.ival = MODE_MODE2_RAW; return MODE2_2352; }
|
MODE2\/2352 { yylval.ival = MODE_MODE2_RAW; return MODE2_2352; }
|
||||||
|
|
||||||
FLAGS { return FLAGS; }
|
FLAGS { return FLAGS; }
|
||||||
PRE { cue_yylval.ival = FLAG_PRE_EMPHASIS; return PRE; }
|
PRE { yylval.ival = FLAG_PRE_EMPHASIS; return PRE; }
|
||||||
DCP { cue_yylval.ival = FLAG_COPY_PERMITTED; return DCP; }
|
DCP { yylval.ival = FLAG_COPY_PERMITTED; return DCP; }
|
||||||
4CH { cue_yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CH; }
|
4CH { yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CH; }
|
||||||
SCMS { cue_yylval.ival = FLAG_SCMS; return SCMS; }
|
SCMS { yylval.ival = FLAG_SCMS; return SCMS; }
|
||||||
|
|
||||||
PREGAP { return PREGAP; }
|
PREGAP { return PREGAP; }
|
||||||
INDEX { return INDEX; }
|
INDEX { return INDEX; }
|
||||||
POSTGAP { return POSTGAP; }
|
POSTGAP { return POSTGAP; }
|
||||||
|
|
||||||
TITLE { BEGIN(NAME); cue_yylval.ival = PTI_TITLE; return TITLE; }
|
TITLE { BEGIN(NAME); yylval.ival = PTI_TITLE; return TITLE; }
|
||||||
PERFORMER { BEGIN(NAME); cue_yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
PERFORMER { BEGIN(NAME); yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||||
SONGWRITER { BEGIN(NAME); cue_yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
SONGWRITER { BEGIN(NAME); yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||||
COMPOSER { BEGIN(NAME); cue_yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
COMPOSER { BEGIN(NAME); yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||||
ARRANGER { BEGIN(NAME); cue_yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||||
MESSAGE { BEGIN(NAME); cue_yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||||
DISC_ID { BEGIN(NAME); cue_yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||||
GENRE { BEGIN(NAME); cue_yylval.ival = PTI_GENRE; return GENRE; }
|
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; }
|
||||||
TOC_INFO1 { BEGIN(NAME); cue_yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||||
TOC_INFO2 { BEGIN(NAME); cue_yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||||
UPC_EAN { BEGIN(NAME); cue_yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||||
ISRC/{ws}+\" { BEGIN(NAME); cue_yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
ISRC/{ws}+\" { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||||
SIZE_INFO { BEGIN(NAME); cue_yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
SIZE_INFO { BEGIN(NAME); yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||||
|
|
||||||
ISRC { BEGIN(NAME); return TRACK_ISRC; }
|
ISRC { BEGIN(NAME); return TRACK_ISRC; }
|
||||||
|
|
||||||
^{ws}*REM.*\n { cue_lineno++; /* ignore comments */ }
|
^{ws}*REM.*\n { cue_lineno++; /* ignore comments */ }
|
||||||
{ws}+ { /* ignore whitespace */ }
|
{ws}+ { /* ignore whitespace */ }
|
||||||
|
|
||||||
[[:digit:]]+ { cue_yylval.ival = atoi(yytext); return NUMBER; }
|
[[:digit:]]+ { yylval.ival = atoi(yytext); return NUMBER; }
|
||||||
: { return yytext[0]; }
|
: { return yytext[0]; }
|
||||||
|
|
||||||
^{ws}*\n { cue_lineno++; /* blank line */ }
|
^{ws}*\n { cue_lineno++; /* blank line */ }
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "cd.h"
|
#include "cd.h"
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
|
#include "toc_parse_prefix.h"
|
||||||
|
|
||||||
#define YYDEBUG 1
|
#define YYDEBUG 1
|
||||||
|
|
||||||
extern int toc_yylex();
|
extern int yylex();
|
||||||
void yyerror (char *s);
|
void yyerror (char *s);
|
||||||
|
|
||||||
static Cd *cd = NULL;
|
static Cd *cd = NULL;
|
||||||
@@ -325,7 +326,7 @@ opt_nl
|
|||||||
|
|
||||||
/* lexer interface */
|
/* lexer interface */
|
||||||
extern int toc_lineno;
|
extern int toc_lineno;
|
||||||
extern int toc_yydebug;
|
extern int yydebug;
|
||||||
extern FILE *toc_yyin;
|
extern FILE *toc_yyin;
|
||||||
|
|
||||||
void yyerror (char *s)
|
void yyerror (char *s)
|
||||||
@@ -336,9 +337,9 @@ void yyerror (char *s)
|
|||||||
Cd *toc_parse (FILE *fp)
|
Cd *toc_parse (FILE *fp)
|
||||||
{
|
{
|
||||||
toc_yyin = fp;
|
toc_yyin = fp;
|
||||||
toc_yydebug = 0;
|
yydebug = 0;
|
||||||
|
|
||||||
if (0 == toc_yyparse())
|
if (0 == yyparse())
|
||||||
return cd;
|
return cd;
|
||||||
|
|
||||||
return NULL;
|
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 <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "cd.h"
|
#include "cd.h"
|
||||||
|
#include "toc_parse_prefix.h"
|
||||||
#include "toc_parse.h"
|
#include "toc_parse.h"
|
||||||
|
|
||||||
int toc_lineno = 1;
|
int toc_lineno = 1;
|
||||||
@@ -18,6 +19,7 @@ ws [ \t\r]
|
|||||||
nonws [^ \t\r\n]
|
nonws [^ \t\r\n]
|
||||||
|
|
||||||
%option noyywrap
|
%option noyywrap
|
||||||
|
%option prefix="toc_yy"
|
||||||
|
|
||||||
%s NAME
|
%s NAME
|
||||||
|
|
||||||
@@ -25,41 +27,41 @@ nonws [^ \t\r\n]
|
|||||||
|
|
||||||
\'([^\']|\\\')*\' |
|
\'([^\']|\\\')*\' |
|
||||||
\"([^\"]|\\\")*\" {
|
\"([^\"]|\\\")*\" {
|
||||||
toc_yylval.sval = strdup(yytext + 1);
|
yylval.sval = strdup(yytext + 1);
|
||||||
toc_yylval.sval[strlen(toc_yylval.sval) - 1] = '\0';
|
yylval.sval[strlen(yylval.sval) - 1] = '\0';
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
return STRING;
|
return STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
<NAME>{nonws}+ {
|
<NAME>{nonws}+ {
|
||||||
toc_yylval.sval = strdup(yytext);
|
yylval.sval = strdup(yytext);
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
return STRING;
|
return STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
CATALOG { BEGIN(NAME); return CATALOG; }
|
CATALOG { BEGIN(NAME); return CATALOG; }
|
||||||
|
|
||||||
CD_DA { toc_yylval.ival = MODE_CD_DA; return CD_DA; }
|
CD_DA { yylval.ival = MODE_CD_DA; return CD_DA; }
|
||||||
CD_ROM { toc_yylval.ival = MODE_CD_ROM; return CD_ROM; }
|
CD_ROM { yylval.ival = MODE_CD_ROM; return CD_ROM; }
|
||||||
CD_ROM_XA { toc_yylval.ival = MODE_CD_ROM_XA; return CD_ROM_XA; }
|
CD_ROM_XA { yylval.ival = MODE_CD_ROM_XA; return CD_ROM_XA; }
|
||||||
|
|
||||||
TRACK { return TRACK; }
|
TRACK { return TRACK; }
|
||||||
AUDIO { toc_yylval.ival = MODE_AUDIO; return AUDIO; }
|
AUDIO { yylval.ival = MODE_AUDIO; return AUDIO; }
|
||||||
MODE1 { toc_yylval.ival = MODE_MODE1; return MODE1; }
|
MODE1 { yylval.ival = MODE_MODE1; return MODE1; }
|
||||||
MODE1_RAW { toc_yylval.ival = MODE_MODE1_RAW; return MODE1_RAW; }
|
MODE1_RAW { yylval.ival = MODE_MODE1_RAW; return MODE1_RAW; }
|
||||||
MODE2 { toc_yylval.ival = MODE_MODE2; return MODE2; }
|
MODE2 { yylval.ival = MODE_MODE2; return MODE2; }
|
||||||
MODE2_FORM1 { toc_yylval.ival = MODE_MODE2_FORM1; return MODE2_FORM1; }
|
MODE2_FORM1 { yylval.ival = MODE_MODE2_FORM1; return MODE2_FORM1; }
|
||||||
MODE2_FORM2 { toc_yylval.ival = MODE_MODE2_FORM2; return MODE2_FORM2; }
|
MODE2_FORM2 { yylval.ival = MODE_MODE2_FORM2; return MODE2_FORM2; }
|
||||||
MODE2_FORM_MIX { toc_yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_FORM_MIX; }
|
MODE2_FORM_MIX { yylval.ival = MODE_MODE2_FORM_MIX; return MODE2_FORM_MIX; }
|
||||||
MODE2_RAW { toc_yylval.ival = MODE_MODE2_RAW; return MODE2_RAW; }
|
MODE2_RAW { yylval.ival = MODE_MODE2_RAW; return MODE2_RAW; }
|
||||||
RW { toc_yylval.ival = SUB_MODE_RW; return RW; }
|
RW { yylval.ival = SUB_MODE_RW; return RW; }
|
||||||
RW_RAW { toc_yylval.ival = SUB_MODE_RW_RAW; return RW_RAW; }
|
RW_RAW { yylval.ival = SUB_MODE_RW_RAW; return RW_RAW; }
|
||||||
|
|
||||||
NO { return NO; }
|
NO { return NO; }
|
||||||
COPY { toc_yylval.ival = FLAG_PRE_EMPHASIS; return COPY; }
|
COPY { yylval.ival = FLAG_PRE_EMPHASIS; return COPY; }
|
||||||
PRE_EMPHASIS { toc_yylval.ival = FLAG_COPY_PERMITTED; return PRE_EMPHASIS; }
|
PRE_EMPHASIS { yylval.ival = FLAG_COPY_PERMITTED; return PRE_EMPHASIS; }
|
||||||
FOUR_CHANNEL_AUDIO { toc_yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CHANNEL_AUDIO; }
|
FOUR_CHANNEL_AUDIO { yylval.ival = FLAG_FOUR_CHANNEL; return FOUR_CHANNEL_AUDIO; }
|
||||||
TWO_CHANNEL_AUDIO { toc_yylval.ival = FLAG_FOUR_CHANNEL; return TWO_CHANNEL_AUDIO; }
|
TWO_CHANNEL_AUDIO { yylval.ival = FLAG_FOUR_CHANNEL; return TWO_CHANNEL_AUDIO; }
|
||||||
|
|
||||||
/* ISRC is with CD-TEXT items */
|
/* ISRC is with CD-TEXT items */
|
||||||
|
|
||||||
@@ -76,24 +78,24 @@ CD_TEXT { return CD_TEXT; }
|
|||||||
LANGUAGE_MAP { return LANGUAGE_MAP; }
|
LANGUAGE_MAP { return LANGUAGE_MAP; }
|
||||||
LANGUAGE { return LANGUAGE; }
|
LANGUAGE { return LANGUAGE; }
|
||||||
|
|
||||||
TITLE { BEGIN(NAME); toc_yylval.ival = PTI_TITLE; return TITLE; }
|
TITLE { BEGIN(NAME); yylval.ival = PTI_TITLE; return TITLE; }
|
||||||
PERFORMER { BEGIN(NAME); toc_yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
PERFORMER { BEGIN(NAME); yylval.ival = PTI_PERFORMER; return PERFORMER; }
|
||||||
SONGWRITER { BEGIN(NAME); toc_yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
SONGWRITER { BEGIN(NAME); yylval.ival = PTI_SONGWRITER; return SONGWRITER; }
|
||||||
COMPOSER { BEGIN(NAME); toc_yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
COMPOSER { BEGIN(NAME); yylval.ival = PTI_COMPOSER; return COMPOSER; }
|
||||||
ARRANGER { BEGIN(NAME); toc_yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
ARRANGER { BEGIN(NAME); yylval.ival = PTI_ARRANGER; return ARRANGER; }
|
||||||
MESSAGE { BEGIN(NAME); toc_yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
MESSAGE { BEGIN(NAME); yylval.ival = PTI_MESSAGE; return MESSAGE; }
|
||||||
DISC_ID { BEGIN(NAME); toc_yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
DISC_ID { BEGIN(NAME); yylval.ival = PTI_DISC_ID; return DISC_ID; }
|
||||||
GENRE { BEGIN(NAME); toc_yylval.ival = PTI_GENRE; return GENRE; }
|
GENRE { BEGIN(NAME); yylval.ival = PTI_GENRE; return GENRE; }
|
||||||
TOC_INFO1 { BEGIN(NAME); toc_yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
TOC_INFO1 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO1; return TOC_INFO1; }
|
||||||
TOC_INFO2 { BEGIN(NAME); toc_yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
TOC_INFO2 { BEGIN(NAME); yylval.ival = PTI_TOC_INFO2; return TOC_INFO2; }
|
||||||
UPC_EAN { BEGIN(NAME); toc_yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
UPC_EAN { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return UPC_EAN; }
|
||||||
ISRC { BEGIN(NAME); toc_yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
ISRC { BEGIN(NAME); yylval.ival = PTI_UPC_ISRC; return ISRC; }
|
||||||
SIZE_INFO { BEGIN(NAME); toc_yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
SIZE_INFO { BEGIN(NAME); yylval.ival = PTI_SIZE_INFO; return SIZE_INFO; }
|
||||||
|
|
||||||
"//".*\n { toc_lineno++; /* ignore comments */ }
|
"//".*\n { toc_lineno++; /* ignore comments */ }
|
||||||
{ws}+ { /* ignore whitespace */ }
|
{ws}+ { /* ignore whitespace */ }
|
||||||
|
|
||||||
[[:digit:]]+ { toc_yylval.ival = atoi(yytext); return NUMBER; }
|
[[:digit:]]+ { yylval.ival = atoi(yytext); return NUMBER; }
|
||||||
:|,|\{|\} { return yytext[0]; }
|
:|,|\{|\} { return yytext[0]; }
|
||||||
|
|
||||||
^{ws}*\n { toc_lineno++; /* blank line */ }
|
^{ws}*\n { toc_lineno++; /* blank line */ }
|
||||||
|
|||||||
Reference in New Issue
Block a user