!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! $Source: /kappa1/srs4_0/odd/RCS/srsgeneral_def.sdl,v $ ! $Revision: 1.17 $ ! $Date: 1995/02/02 16:42:54 $ ! $Author: etzold $ ! !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #object /id=%%O_FILE /name=file /typname="SLBoFIL" /declname="slbfil" /ppname="SRS" { #attribute /name=name /declname="nam" /type=string /valtype=name /required=y /rem="File name without extension and directory name." #attribute /name=logicname /declname="lnam" /type=string /valtype=name /rem="Logical name (meaningful only for GCG programs)/" } #object /id=%%O_SEQLIB /name=library /typname="SLBo" /declname="seqlib" /nchilds=1 /child=@O_FILE /ppname="SRS" /rem="Top level object of the databank (library) description." { #attribute /name=name /declname="nam" /type=string /valtype=name, text /required=y /rem="Name of library." /status=api #attribute /name=shortName /declname="shortName" /type=string /valtype=name, text /required=n /rem="Short name for library - needed for DOS file names." /status=api #attribute /name=logicname /declname="lnam" /type=string /valtype=name, text /repeat=3 /required=n /rem="Logical name(s) for the library (GCG)." #attribute /name=group /declname=group /type=object /defaultval=@O_SRSGROUP /rem="Library group this library belongs to." #attribute /name=format /declname="form" /type=object /defaultval=@O_SLBFORM /rem="Pointer to the format description." #attribute /name=directory /declname="dir" /type=string /status=obsolete #attribute /declname="*dirName" /type=user /typname=char /repeat=3 /rem="Address of Name of directory with all flat files." #attribute /name=comment /declname="cmnt" /type=string /valtype=text /max=80 /rem="One line comment on library." #attribute /name=oddfile /declname="oddfile" /type=string /rem="Name of the ODD file that contains the databank description." #attribute /name=help /declname="help" /type=string /valtype=text /max=60 /defaultstr="" ! flag if library is set at begin #attribute /name=on /declname="on_f" /type=uchar /valtype=num /defaultval=0 /min=0/max=1 #attribute /declname="idNum" /type=int /defaultval=0 ! pointer to same flag which will be at diff. loc. at run time #attribute /declname="*on_fp" /typname="INT4" /type=user #attribute /name=maxNameLen /declname="maxNameLen" /type=int /valtype=num /required=n /defaultval=20 /rem="max length of unique entry name - important for ID-index" #attribute /name=allocate /declname="alloc" /type=int /valtype=num /required=n /status=obsolete /rem="number of blocks to allocate for an index" ! size of largest INX-file in kilobytes #attribute /name=maxIndexSizeKb /declname="maxIndexSizeKb" /type=int /valtype=num /required=n !OBSOLETE nr. of blocks by which to extend index files if updating database #attribute /name=extend /declname="extend" /type=int /valtype=num /required=n /status=obsolete ! size of cache in blocks used for building file of pointers #attribute /name=cachesize /declname="csiz" /type=int /valtype=num /defaultval=128 /status=obsolete #attribute /declname="fil" /type=child /defaultval=@O_FILE /rem="list of pointers to file descriptions" #attribute /declname="nfil" /type=nr_of_childs /defaultval=@O_FILE /rem="number of file descriptions" ! attribute name of secondary key #attribute /declname="skey" /name="SKEY"/type=uchar /defaultval=255 /valtype=constant ! key to be assoxiated with library in menus #attribute /name=KEY /declname="key" /type=string /max=1 /valtype=name ! #attribute /name=type /declname=isFromUser /type=uchar /defaultval=0 /valtype=name { #value /name=system /val=0 #value /name=user /val=1 } #attribute /declname="*indexDirName" /type=user /typname="char" /rem="Address of the name of the directory with the SRS indices." !for menu system #attribute /declname=pargroup /type=int /defaultval=100000 !for updating #attribute /declname=upd_f /type=uchar /defaultval=0 #attribute /declname=updlink_f /type=uchar /defaultval=0 ! for internal use only #attribute /declname="isActive" /type=uchar /defaultval=0 /rem="Flag if library is active." ! pointer to file descriptors of data file(s) #attribute /declname="*file" /type=user /typname="struct FILo_" /repeat=@SRSxXDATAFILS #attribute /declname=allEntryCnt /type=int /defaultval=0 #attribute /declname=newEntryCnt /type=int /defaultval=0 #attribute /declname=updEntryCnt /type=int /defaultval=0 ! current entry name #attribute /declname="*entryNam" /type=user /typname="char" ! current entry-ID #attribute /declname="*idCurr" /typname="struct IDoENTRY_" /type=user } #object /id=%%O_LIBID /name=libid /typname="LIBoID" /declname="libid" /ppname="SRS" /rem="Associates a number between 1 and 255 (library-ID) and a library (databank)." { ! pointer to the library object #attribute /name=library /declname="library" /type=object /defaultval=@O_SEQLIB /rem="Library object. " #attribute /name=n /declname="n" /type=int /valtype=num /required=y /min=1 /max=255 /rem="Library-ID to be associated to the library" } #object /id=%O_ENVIRONMENT /name=environment /typname="LIBoENV" /declname="ODD_env" /ppname="SRS" /nchilds=1 /child=@O_LIBENV /rem="List of active libraries together with their directory names. A particular environment can be selected by defining the parameter 'environment'" { #attribute /name=name /declname="name" /type=string /valtype=name /required=y /rem="Name of the environment." #attribute /declname="libenv" /type=child /defaultval=@O_LIBENV /rem="List of active libraries." #attribute /declname="libenvN" /type=nr_of_childs /defaultval=@O_LIBENV /rem="Number of libraries in that list." } #object /id=%%O_LIBENV /name=libenv /typname="LIBoLIBENV" /declname="ODD_libenv" /ppname="SRS" { #attribute /name=lib /declname="lib" /type=object /defaultval=@O_SEQLIB /rem="Library object." #attribute /name=dir /declname="dirName" /type=string /repeat=3 /rem="List of directory names with the library's flat files. The files will be searched in the directories in the same order as of the list." #attribute /name=indexdirname /declname="indexDirName" /type=string /defaultstr="SRSINX:" /rem="Name of the directory with the SRS indices." } #object /id=%%O_SRSDB /name=srsdb /typname="SRSoDB" /declname="srsdb" /ppname="SRS" /nchilds=1 /child=@O_LIBID { #attribute /declname="libId" /type=child /defaultval=@O_LIBID ! number of sequence library descriptions #attribute /declname="libIdN" /type=nr_of_childs /defaultval=@O_LIBID #attribute /declname="environment" /type=allobjects /defaultval=@O_ENVIRONMENT /rem="List of defined library environments." #attribute /declname="environmentN" /type=nr_of_objects /defaultval=@O_ENVIRONMENT /rem="Number of defined library environments." #attribute /declname="slb" /type=allobjects /defaultval=@O_SEQLIB ! number of sequence library descriptions #attribute /declname="nslb" /type=nr_of_objects /defaultval=@O_SEQLIB ! pointer to sequence library groups #attribute /declname="group" /type=allobjects /defaultval=@O_SRSGROUP ! number of sequence library descriptions #attribute /declname="ngroup" /type=nr_of_objects /defaultval=@O_SRSGROUP ! pointer to general field descriptions ($srsfield) #attribute /declname="fld" /type=allobjects /defaultval=@O_SRSFLD ! number of general field descriptions #attribute /declname="nfld" /type=nr_of_objects /defaultval=@O_SRSFLD ! pointer to ID-descriptions (SRSoIDDSC) #attribute /declname="iddsc" /type=allobjects /defaultval=@O_IDDSC ! number of ID-descriptions #attribute /declname="niddsc" /type=nr_of_objects /defaultval=@O_IDDSC ! pointer to filetype-descriptions (SRSoFILTYP) #attribute /declname="filtyp" /type=allobjects /defaultval=@O_FILTYP ! number of filetype-descriptions #attribute /declname="nfiltyp" /type=nr_of_objects /defaultval=@O_FILTYP ! pointer to link-descriptions (SRSoLINK) #attribute /declname="parser" /type=allobjects /defaultval=@O_PARSER ! pointer to all parsers defined #attribute /declname="parser_n" /type=nr_of_objects /defaultval=@O_PARSER ! number of parsers defined #attribute /declname="lnk" /type=allobjects /defaultval=@O_LINK ! number of filetype-descriptions #attribute /declname="nlnk" /type=nr_of_objects /defaultval=@O_LINK #attribute /declname="expression" /type=allobjects /defaultval=@O_EXPRESSION ! number of filetype-descriptions #attribute /declname="nexpression" /type=nr_of_objects /defaultval=@O_EXPRESSION ! definitions of command lines in SRS #attribute /declname="command" /type=allobjects /defaultval=@O_COMMAND ! number of those definitions #attribute /declname="commandN" /type=nr_of_objects /defaultval=@O_COMMAND #attribute /declname="hyperLink" /type=allobjects /defaultval=@O_HYPERLINK /rem="list of all defined hyperlinks" #attribute /declname="hyperLinkN" /type=nr_of_objects /defaultval=@O_HYPERLINK /rem="number of defined hyperlinks" #attribute /declname="linkCall" /type=allobjects /defaultval=@O_LINKCALL /rem="list of all defined link calls" #attribute /declname="linkCallN" /type=nr_of_objects /defaultval=@O_LINKCALL /rem="number of defined link calls" #attribute /declname="parTable" /type=allobjects /defaultval=@O_PARTABLE /rem="table of predefined global parameters" #attribute /name="copy_max_entries" /declname=xcopy_n /type=int /defaultval=100000 #attribute /name="list_max_entries" /declname=xlist_n /type=int /defaultval=100000 #attribute /declname=copy_fst /type=int /defaultval=1 #attribute /declname=list_fst /type=int /defaultval=1 ! internal use... #attribute /declname="**libTable" /type=user /typname="struct SLBo_" } #object /id=%%O_SRSGROUP /name=libgroup /typname="SRSoGROUP" /declname="libgroup" /ppname="SRS" /rem="Description of a library (databank) group." { ! key to be assoxiated with library in menus #attribute /name=key /declname="key" /type=string /max=1 /valtype=name /required=n /status=obsolete #attribute /name=command /declname="com" /type=string /max=15 /valtype=name, text /required=y /rem="Name of library group." /status=api #attribute /name=shortname /declname="short_nm" /type=string /max=4 /valtype=name, text /rem="Short name (abbreviation) of library group." /status=api ! short comment #attribute /name=comment /declname="cmnt" /type=string /valtype=text /max=80 /rem="A single line of text describing the group." #attribute /name=help /declname="help" /type=string /valtype=text /max=60 /status=obsolete #attribute /name=search /type=uchar /declname=single_f /defaultval=1 /rem="This flag determines if all libraries in the group can be searched simultaneously or one at a time (this is advisable if the libraries differ greatly in their data-fields." { #value /name=single /val=1 #value /name=all /val=0 } ! table of libraries in the group...filled at runtime #attribute /declname=library /type=object /repeat=25 /defaultval=@O_SEQLIB /rem="Pointers to the libraries in the group" #attribute /declname=libraryN /type=int /defaultval=0 #attribute /name=fields /declname="df_t" /type=object /repeat=25 /defaultval=@O_SRSFLD /valtype=constant /rem="Applies only if attribute 'search' is set to 'all'. Specifies all data-fields that can be searched or displayed. This list is important for the user interface." #attribute /declname=upd_f /type=uchar } ASSIGN %SRSxID 1 ASSIGN %SRSxKEY 2 ASSIGN %SRSxLINK 3 ASSIGN %SRSxSHOW 4 ASSIGN %SRSxTREE 5 ASSIGN %SRSxNUM 6 ASSIGN %SRSxREAL 7 ASSIGN %SRSxGROUP 8 ASSIGN %SLBxNULL 255 #object /id=%%O_READLINK /name=readlink /typname="LIBoREADLINK" /declname="slb" /ppname="SLB" /rem="Used for connecting a token found by the parser to one or more link objects. During the construction of 'read' links the token will be used to construct the specified list of links." { ! list of links to be performed with this token #attribute /name=link /declname="link" /type=object /repeat=4 /valtype=constant /defaultval=@O_LINK /rem="List of link objects to be constructed with the token connected with the 'readlink' object." } #object /id=%%O_DFIELD /name=field /typname="SLBoFIELD" /declname="field" /ppname="SLB" /rem="Description of a data-field within a library." { #attribute /name=begincol /declname="beg" /type=uchar /min=0 /max=255 /repeat=5 /rem="Position of first column of data-field within line." #attribute /name=length /declname="len" /type=uchar /min=0 /max=255 /repeat=5 /rem="Length (no of characters) of data-field within line." #attribute /name=itype /declname="ityp" /type=uchar /required=y /valtype=name /rem="Index type - 'show' means that the field can be displayed only; 'group' points to a group of indices." { #value /name=id /val=@SRSxID #value /name=key /val=@SRSxKEY #value /name=tree /val=@SRSxTREE #value /name=link /val=@SRSxLINK #value /name=show /val=@SRSxSHOW #value /name=num /val=@SRSxNUM #value /name=real /val=@SRSxREAL #value /name=group /val=@SRSxGROUP } #attribute /name=ftype /declname="df_t" /type=object /required=y /defaultval=@O_SRSFLD /valtype=constant /status=api /rem="Object that describes the data-field type further" #attribute /name=idtype /declname="id_d" /type=object /defaultval=@O_IDDSC /rem="The ID-type description of the IDs that will be put into the index" #attribute /name="after" /declname="after" /type=object /defaultval=@O_DFIELD /valtype=constant /rem="Data-field preceeding this one - or, rather, this field can be found because it always follows some other" #attribute /name=maxlines /declname="lnlmt" /type=int /min=0 /max=1000 /defaultval=0 /valtype=num /rem="Max. no of lines the data-field may contain." #attribute /name=keepline /declname="keep_f" /type=uchar /min=0 /max=1 /defaultval=0 /valtype=constant /rem="Flag whether or not to keep the line in memory after processing the data-field. Important if more data-fields follow on the same line" #attribute /declname=lncnt /type=int /defaultval=0 /rem="No of lines read so far within the current data-field." #attribute /name=advance /declname="adv" /type=int /min=0 /max=10 /defaultval=0 /rem="Number of lines to advance before reading contents of data-field." #attribute /name=begstr /declname="fsts" /type=string /max=40 /repeat=5 /defaultstr="" /valtype=text /rem="A list of labels to be found at the beginning of the data-field. May be also a regular expression. Must then be put in between '/'s." #attribute /declname="*regExp" /type=user /typname="struct regexp" /repeat=5 /defaultval=0 /rem="Points to the compiled version of the regular expression." #attribute /name=begleft /declname="fstl" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost position of label string within line." #attribute /name=begright /declname="fstr" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost position of label string within line." #attribute /name=nextstr /declname="nxts" /type=string /max=20 /repeat=5 /defaultstr="" /valtype=text /rem="List of strings that indicates a continuation line within data-field." #attribute /name=nextleft /declname="nxtl" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost position of label string within line." #attribute /name=nextright /declname="nxtr" /type=int /min=0 /max=80 /defaultval=1 /rem="Rightmost position of label string within line." #attribute /name=doMatch /declname="doMatch" /type=int /repeat=5 /defaultval=1 /valtype=name /rem="flag if 'nextstr' MUST or MUST NOT be present" { #value /name=no /val=0 #value /name=yes /val=1 } #attribute /name=next1str /declname="nxt1s" /type=string /max=20 /repeat=5 /defaultstr="" /valtype=text /rem="List of strings to be found in lines that continue a subentry. The FIRST line of a subentry is recognized by 'nextstr'." #attribute /name=next1left /declname="nxt1l" /type=int /min=0 /max=80 /defaultval=1 /rem="Rightmost position of that tag." #attribute /name=next1right /declname="nxt1r" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost position of that tag." #attribute /name=endfieldtag /declname="endfieldtag" /type=string /max=20 /defaultstr="" /valtype=text /rem="Label or tag that, when found, indicates the end of a data-field." #attribute /name=endfieldtag_leftpos /declname="endfieldtag_lpos" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost position of that tag." #attribute /name=endfieldtag_rightpos /declname="endfieldtag_rpos" /type=int /min=0 /max=80 /defaultval=1 /rem="Rightmost position of that tag." #attribute /name=find /declname="find" /type=string /required=n /max=20 /valtype=name,text /rem="Name of EBNF production to be used for parsing." #attribute /declname="*st" /typname="struct PRSoST_" /type=user /rem="Pointer to token table." ! pointer to index processing info #attribute /declname="*idx" /typname="struct IDXo_" /type=user #attribute /declname="*inx" /typname="struct INXo_" /type=user #attribute /declname="*btree" /typname="struct BTRo_" /type=user #attribute /declname="*idFile" /typname="struct IDSoFILE_" /type=user ! flag to indicate if field is to be processed at all #attribute /declname="do_f" /type=uchar /defaultval=0 ! pointer to flag indicating if field is to displayed #attribute /declname="*on_fp" /typname=INT4 /type=user /defaultval=0 ! flag to indicate if field is to be a secondary index #attribute /declname=pargroup /type=int /defaultval=100000 ! flag to indicate if field was encountered during entry's processing #attribute /declname="done_f" /type=uchar /defaultval=0 ! flag to indicate if identifier for ID-field has to be created #attribute /name=generic /declname="gnrc_f" /type=uchar /defaultval=0 /status=obsolete #attribute /name=suppress_error /declname="noerrmsg_f" /type=uchar /defaultval=0 /valtype=name /rem="Supresses printing of parsing error messages." { #value /name=yes /val=1 #value /name=no /val=0 } #attribute /name=alloc_factor /declname="vm_fac" /type=float /max=1 /min=0 /defaultvalf=1 /status=obsolete #attribute /name=relIndexSize /declname="relIndexSize" /type=float /max=1 /min=0 /defaultvalf=1 /rem="Relative size of index created over data-field." } #object /id=%%O_SLBFORM /name=libformat /typname="SLBoFORM" /declname="slb" /ppname="SLB" /child=@O_READLINK, @O_DFIELD /nchilds=2 /rem="Specifies the parser to be used for parsing all data-fields of a library, its flat file format and has a list of all data-field descriptions." { ! pointer to array of field descriptors #attribute /declname="f" /type=child /defaultval=@O_DFIELD ! number of field descriptors #attribute /declname="nf" /type=nr_of_childs /defaultval=@O_DFIELD ! last field read #attribute /declname="readlink" /type=child /defaultval=@O_READLINK ! number of field descriptors #attribute /declname="readlinkN" /type=nr_of_childs /defaultval=@O_READLINK ! last field read #attribute /declname="lstfld" /type=uchar /defaultval=@SLBxNULL ! select specific field (index to SLBofld) or process all - ! SLBxNULL #attribute /declname="slctfld" /type=uchar /defaultval=@SLBxNULL ! nr (index) of current seqlib #attribute /declname="crslbx" /type=int ! counter of new entries #attribute /declname="newent" /type=int ! counter of updated entries #attribute /declname="updent" /type=int ! contains type code of last processed field #attribute /declname="prev" /type=object /defaultval=@O_DFIELD ! points to first data field to be encountered #attribute /name=first /declname="first" /type=object /defaultval=@O_DFIELD #attribute /declname="access_f" /type=uchar /defaultval=0 #attribute /name=parser /declname="parser" /type=object /defaultval=@O_PARSER /required=y /valtype=constant /rem="The parser used for parsing the individual data-fields." #attribute /name=file_type /declname="fil_t" /type=object /repeat=@SRSxXDATAFILS /defaultval=@O_FILTYP /rem="List of flat file types. There can be more than (eg, the sequence and annotation are stored in two different files)." #attribute /name=featureExpression /declname=featureExpression /type=object /defaultval=@O_EXPRESSION /rem="The expression evalutator for processing (if present) the locations in the feature table." } #object /id=%%O_SRSFLD /ppname=SRS /name=srsfield /typname="SRSoFLD" /declname="SDL_srsfields" /rem="Description of a data-field Type (eg, 'Authors')." { #attribute /name=shortname /declname="shortn" /type=string /min=2 /max=3 /required=y /valtype=text /rem="Short name (abbreviation) of data-field type" /status=api #attribute /name=name /declname="nam" /type=string /min=2 /max=20 /required=y /valtype=text, name /rem="Short name of data-field type" /status=api #attribute /name=comment /declname="cmnt" /type=string /max=80 /valtype=text #attribute /name=help /declname="help" /type=string /max=80 /valtype=text #attribute /name=key /declname="key" /type=string /min=0 /max=1 /valtype=text,name #attribute /name=build /type=function /declname="build" /defaultstr="(struct SLBoFORM_ *, struct SLBoFIELD_ *)" /valtype=constant ! pointer to flag indicating if field is to displayed #attribute /declname="*on_fp" /typname=INT4 /type=user /defaultval=0 ! flag to indicate if field is to be a secondary index #attribute /declname=pargroup /type=int /defaultval=100000 #attribute /name=itype /declname="ityp" /type=uchar /required=n /valtype=name { #value /name=id /val=@SRSxID #value /name=key /val=@SRSxKEY #value /name=tree /val=@SRSxTREE #value /name=link /val=@SRSxLINK #value /name=show /val=@SRSxSHOW #value /name=num /val=@SRSxNUM #value /name=real /val=@SRSxREAL #value /name=group /val=@SRSxGROUP } #attribute /name=type /declname="type" /type=uchar /required=n /valtype=name /defaultval=0 /rem="field type: single or group (of other field types)" { #value /name=single /val=0 #value /name=group /val=1 } #attribute /name=group /declname=group /type=object /defaultval=@O_SRSFLD /rem="pointer to the field type group" } #object /id=%%O_IDDSC /ppname=SRS /name=idtype /typname="IDoTYPE" /declname="ID_type" /rem="Every entry of every databank indexed in SRS is represented by an entry-ID which uniquely identifies it. Several ID types are defined (eg, entry-ID, seq-ID, 3D-ID). Only the subentry-ID is structurally different from the others." { #attribute /name=name /declname="nam" /type=string /min=2 /max=20 /required=y /valtype=text, name /rem="Name of Id-type." #attribute /name=size /declname="siz" /type=int /valtype=num /required=y /rem="Size of ID in number of bytes." #attribute /name=faddbeg /declname="fddbeg" /type=int /valtype=num /required=y /min=0 /max=7 /rem="Offset of fadd (file address within IDX file) within ID." #attribute /name=faddlen /declname="fddlen" /type=int /valtype=num /required=y /min=2 /max=4 /rem="Size of fadd in bytes." #attribute /name=libinxbeg /declname="lbxbeg" /type=int /valtype=num /min=0 /max=7 /rem="Offset of databank-ID within ID." #attribute /name=libinxlen /declname="lbxlen" /type=int /valtype=num /min=0 /max=2 /defaultval=0 /rem="Size of databank-ID in bytes." #attribute /name=listinxbeg /declname="lxbeg" /type=int /valtype=num /min=0 /max=7 /rem="Offset of subentry number within ID." #attribute /name=listinxlen /declname="lxlen" /type=int /valtype=num /min=0 /max=2 /defaultval=0 /rem="Size of subentry number in bytes." #attribute /name=copyfunction /type=function /declname="cpy" /valtype=constant /rem="Function for printing an individual entry represented by ID." } #object /id=%%O_FILTYP /ppname=SRS /name=filetype /typname="SRSoFILTYP" /declname="SDL_filtyp" /rem="Describes a flat file type. Databanks may have more than one flat file type, eg, databanks in PIR or GCG with 'ref'-files containing the sequence annotation and 'seq'-files with the sequence." { #attribute /name=typename /declname="typ_nm" /type=string /max=20 /required=y /valtype=text, name /rem="File extension name." #attribute /name=searchname /declname="searchName" /type=string /max=40 /required=n /valtype=text, name /rem="A search string used for finding all files in the specified directory (only for file per entry databanks). Any number of wildcards ('*' - matches all, '?' matches all single character) may be used." #attribute /name=maxline /declname="ln_z" /type=int /valtype=num /min=80 /max=20000 /defaultval=132 /status=obsolete #attribute /declname="context" /type=uint #attribute /name=exitstr /declname="exit" /type=string /max=20 /repeat=1 /defaultstr="" /valtype=text /rem="String that marks the end of an entry" #attribute /name=exitleft /declname="exl" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost offset of 'exitstr' in line." #attribute /name=exitright /declname="exr" /type=int /min=0 /max=80 /defaultval=1 /rem="Rightmost offset of 'exitstr' in line." #attribute /name=begstr /declname="fsts" /type=string /max=20 /repeat=1 /defaultstr="" /valtype=text /rem="String that marks the begin of an entry." #attribute /name=begleft /declname="fstl" /type=int /min=0 /max=80 /defaultval=1 /rem="Leftmost offset of 'begstr' in line." #attribute /name=begright /declname="fstr" /type=int /min=0 /max=80 /defaultval=1 /rem="Rightmost offset of 'begstr' in line." #attribute /name=find /declname="find" /type=string /max=20 /valtype=name,text /rem="Name of EBNF production for parsing the first line in entry." #attribute /name=iscont /declname="iscnt" /type=string /defaultstr="" /valtype=text /min=0 /max=3 /status=obsolete #attribute /name=advance /declname="adv" /type=int /valtype=num /min=0 /max=10 /rem="Number of lines to advance once the beginning of an entry has been located." #attribute /name=single_entries /declname="sngl_f" /type=uchar /valtype=name /defaultval=0 /rem="Each entry of the databank may be contained in a separate file" { #value /name=yes /val=1 #value /name=no /val=0 } #attribute /name=seqtype /declname="type" /type=uchar /valtype=name /defaultval=0 /rem="Type of sequence file. Distinguish base file format for various uses." !dgg modified !/rem="Type of sequence file. This was only important on VMS and with ! GCG. GCG version 8.0 does not have a record separator as with ! version 7.0." { #value /name=normal /val=0 #value /name=gcg7 /val=1 #value /name=gcg8 /val=2 ! dgg additions for fasta lib reader format values, val-10 for pearson value #value /name=pearson /val=10 #value /name=genbank /val=11 #value /name=codata /val=12 #value /name=embl /val=13 #value /name=ig /val=14 #value /name=nbrf /val=15 } #attribute /name=gcgsplitsize /declname=gcgSplitSize /type=int /valtype=num /defaultval=350000 /rem="Maximum length of a sequence that will not be split in the GCG sequence format." #attribute /name=printName /declname="printName" /type=string /max=80 /valtype=text /rem="Format string (printf style) to convert entry name into the file name (without extension)." #attribute /name=scanName /declname="scanName" /type=string /max=80 /valtype=text /rem="Format string (scanf style) to convert file name (without extension into the entry name." #attribute /name=pipe /declname="pipe" /type=string /max=132 /repeat=1 /defaultstr="" /valtype=text /rem="Format string (printf style) to create a command for processing the entry file before reading (eg, 'uncompress %%s')." } #object /id=%%O_LINK /ppname=SRS /name=link /declname="SDL_link" /typname="LINKo" /rem="Specifies a link between two libraries. A link can be built by using two indices built from one data-field of each library ('type=index') or by reading one library and processing cross-reference data ('type=read')." { #attribute /name=weight /declname="val" /type=int /valtype=num /defaultval=10 /rem="The weight attached to a link can be used to eliminate ambiguities during path resolution, or to force a certain path." #attribute /name=name1 /declname="nam1" /type=string /max=15 /valtype=name, text /rem="Name of the first library - in case not the library name itself." #attribute /name=name2 /declname="nam2" /type=string /max=15 /valtype=name, text /rem="Name of the first library - in case not the library name itself." #attribute /name=idtype1 /declname="id1_d" /type=object /defaultval=@O_IDDSC /valtype=constant /rem="Object describing the first library's ID's to be linked." #attribute /name=idtype2 /declname="id2_d" /type=object /defaultval=@O_IDDSC /valtype=constant /rem="Object describing the second library's ID's to be linked." #attribute /name=lib1 /declname="lib1" /type=object /defaultval=@O_SEQLIB /valtype=constant /rem="Object desribing the first library." #attribute /name=lib2 /declname="lib2" /type=object /defaultval=@O_SEQLIB /valtype=constant /rem="Object desribing the second library." #attribute /name=field1 /declname="field1" /type=object /defaultval=@O_DFIELD /valtype=constant /rem="Object describing the data-field of first library providing link information (only for index links)." #attribute /name=field2 /declname="field2" /type=object /defaultval=@O_DFIELD /valtype=constant /rem="Object describing the data-field of second library providing link information (for both index- and read-links)." #attribute /declname="rev_f" /type=uchar /defaultval=0 #attribute /declname="init_f" /type=uchar /defaultval=0 ! TRUE if link is between active libraries #attribute /declname="isActive" /type=uchar /defaultval=0 ! for srsbuild whether to perform linkage #attribute /declname="do_f" /type=uchar /defaultval=0 ! count of successful links #attribute /declname="goodRefN" /type=int /defaultval=0 #attribute /declname="badRefN" /type=int /defaultval=0 /rem="count of unsuccessful links" #attribute /declname="lib1EntryN" /type=int /defaultval=0 /rem="number of entries from library 1 linked" #attribute /declname="lib2EntryN" /type=int /defaultval=0 /rem="number of entries from library 2 linked" ! total number of link Ids #attribute /declname="linkIdN" /type=int /defaultval=0 ! pointer to block of link ID's #attribute /declname="id_p" /type=user /typname="IDPTR" #attribute /declname="*idWrtOff" /type=user /typname="char" #attribute /declname="*btree1" /type=user /typname="struct BTRo_" #attribute /declname="*btree2" /type=user /typname="struct BTRo_" #attribute /declname="*ids1" /type=user /typname="struct IDSoFILE_" #attribute /declname="*ids2" /type=user /typname="struct IDSoFILE_" ! index of descriptors of libraries to be linked #attribute /declname="lib1_x" /type=int #attribute /declname="lib2_x" /type=int #attribute /declname="isOpen" /type=int /defaultval=0 #attribute /name=type /declname=typ /type=uchar /defaultval=1 /valtype=name /rem="Type of the link. 'read': first library must be read to find cross-references to second library; 'index': two indices, one from each library will be used to build the link; 'parent': link between entry and subentry." { #value /name=read /val=1 !LINKxREAD #value /name=index /val=2 !LINKxINDEX #value /name=parent /val=3 !LINKxMAPRNT } }