From 2d9514e8ade8d0d2d625d042bbd80623e6209c9e Mon Sep 17 00:00:00 2001 From: Jim Kowalkowski Date: Wed, 5 Apr 1995 15:28:03 +0000 Subject: [PATCH] updated to use the new db format without the database() section --- src/dbtools/dbLoadRecords.y | 67 +++++++------------------------- src/dbtools/dbLoadRecords_lex.l | 3 ++ src/dbtools/dbLoadTemplate.y | 2 - src/dbtools/dbLoadTemplate_lex.l | 4 +- 4 files changed, 18 insertions(+), 58 deletions(-) diff --git a/src/dbtools/dbLoadRecords.y b/src/dbtools/dbLoadRecords.y index 010fe007b..780315152 100644 --- a/src/dbtools/dbLoadRecords.y +++ b/src/dbtools/dbLoadRecords.y @@ -79,45 +79,14 @@ extern struct dbBase *pdbBase; %% database: DATABASE d_head d_body - { -#ifdef vxWorks - dbFreeEntry(pdbentry); -#endif - } | DATABASE d_head /* jbk added for graphical thing */ - { -#ifdef vxWorks - dbFreeEntry(pdbentry); -#endif - } + | db_components ; d_head: O_PAREN WORD C_PAREN - { -#ifdef vxWorks - /* - fprintf(stderr,"Warning: No EPICS version information in db file\n"); - */ - pdbentry=dbAllocEntry(pdbBase); - free($2); -#endif - } + { free($2); } | O_PAREN WORD COMMA VALUE C_PAREN - { -#ifdef vxWorks - int version,revision; - char* v; - - v=strtok($4," ."); sscanf(v,"%d",&version); - v=strtok(NULL," ."); sscanf(v,"%d",&revision); - - if(version!=EPICS_VERSION || revision!=EPICS_REVISION) - fprintf(stderr,"Warning: Database not created with same version\n"); - - pdbentry=dbAllocEntry(pdbBase); - free($2); free($4); -#endif - } + { free($2); free($4); } ; d_body: O_BRACE nowhere_records db_components C_BRACE @@ -144,9 +113,7 @@ container: CONTAINER c_head c_body ; c_head: O_PAREN WORD C_PAREN - { - free($2); - } + { free($2); } ; c_body: O_BRACE db_components C_BRACE @@ -159,7 +126,7 @@ records: /* null */ record: RECORD r_head r_body { #ifndef vxWorks - printf(" }\n"); + printf("}\n"); #endif } ; @@ -253,32 +220,24 @@ int dbLoadRecords(char* pfilename, char* pattern, char* container) return -1; } -#ifndef vxWorks - /* if(container) printf(" %s {\n",container); */ -#endif - if(is_not_inited) { -#ifdef ERROR_STUFF - fprintf(stderr,"initing parser\n"); -#endif yyin=fp; is_not_inited=0; } else { -#ifdef ERROR_STUFF - fprintf(stderr,"restarting parser\n"); -#endif yyrestart(fp); } -#ifdef ERROR_STUFF - fprintf(stderr,"before parser startup\n"); + +#ifdef vxWorks + pdbentry=dbAllocEntry(pdbBase); #endif + yyparse(); -#ifndef vxWorks - /* if(container) printf(" }\n"); */ +#ifdef vxWorks + dbFreeEntry(pdbentry); #endif if(subst_used) dbFreeSubst(); @@ -303,7 +262,7 @@ static void sub_pvname(char* type, char* name) if( dbCreateRecord(pdbentry,subst_buffer) ) fprintf(stderr,"Cannot create record %s\n",subst_buffer); #else - printf("\trecord(%s, \"%s\") {",type,subst_buffer); + printf("record(%s,\"%s\") {",type,subst_buffer); #endif } else @@ -312,7 +271,7 @@ static void sub_pvname(char* type, char* name) if( dbCreateRecord(pdbentry,name) ) fprintf(stderr,"Cannot create record %s\n",name); #else - printf("\trecord(%s, \"%s\") {",type,name); + printf("record(%s,\"%s\") {",type,name); #endif } } diff --git a/src/dbtools/dbLoadRecords_lex.l b/src/dbtools/dbLoadRecords_lex.l index 4b4c0bbc7..75f959190 100644 --- a/src/dbtools/dbLoadRecords_lex.l +++ b/src/dbtools/dbLoadRecords_lex.l @@ -7,7 +7,10 @@ value [a-zA-Z0-9_\,\^~\./\*#\[\]%: ;!|\'\-&\(\)@\?\+<>=\$\{\}] %% +\#.*\n ; + "field" { return(FIELD); } +"grecord" { return(RECORD); } "record" { return(RECORD); } "container" { return(CONTAINER); } "database" { return(DATABASE); } diff --git a/src/dbtools/dbLoadTemplate.y b/src/dbtools/dbLoadTemplate.y index a3ad42968..b040043b7 100644 --- a/src/dbtools/dbLoadTemplate.y +++ b/src/dbtools/dbLoadTemplate.y @@ -415,9 +415,7 @@ main(int argc, char** argv) if(!name) name = "Composite"; - printf("database(name,\"%d.%d\") {\n",EPICS_VERSION,EPICS_REVISION,name); dbLoadTemplate(argv[1]); - printf("}\n"); } #endif #endif diff --git a/src/dbtools/dbLoadTemplate_lex.l b/src/dbtools/dbLoadTemplate_lex.l index 31580efb5..043e382cd 100644 --- a/src/dbtools/dbLoadTemplate_lex.l +++ b/src/dbtools/dbLoadTemplate_lex.l @@ -8,6 +8,8 @@ par [\"\'] %% +\#.*\n ; + "pattern" { return(PATTERN); } "file" { return(DBFILE); } "=" { return(EQUALS); } @@ -16,8 +18,6 @@ par [\"\'] {word}+ { yylval.Str=(char *)malloc(strlen(yytext)+1); strcpy(yylval.Str,yytext); return(WORD); } -"(" { return(O_PAREN); } -")" { return(C_PAREN); } "{" { return(O_BRACE); } "}" { return(C_BRACE); }