/* The identifiers without underscore at begining and end */
IDENTIFIER [A-Za-z][A-Za-z0-9_]*[A-Za-z0-9]
+JAVAIDENTIFIER [A-Za-z][A-Za-z0-9_.]*[A-Za-z0-9]
/* Integer and real */
[A-Za-z] { strncpy(CDLlval.str,CDLtext,MAX_CHAR);
return(IDENTIFIER); }
+{JAVAIDENTIFIER} { strncpy(CDLlval.str,CDLtext,MAX_CHAR);
+ return(JAVAIDENTIFIER); }
+
{INTEGER} { strncpy (CDLlval.str,CDLtext,MAX_CHAR);
return(INTEGER); }
#define CDL_EXTERNAL 6
#include <stdlib.h>
-
#include <cdl_rules.h>
extern void CDLerror ( char* );
%token ','
%token '='
%token IDENTIFIER
+%token JAVAIDENTIFIER
%token INTEGER
%token LITERAL
%token REAL
char str[MAX_STRING];
}
-%type <str> __Package_Name Package_Name Interface_Name __Interface_Name __Schema_Name __ExecFile_Name IDENTIFIER INTEGER REAL STRING LITERAL Schema_Name ExecFile_Name Empty_Str Engine_Name __Engine_Name Component_Name __Component_Name
+%type <str> __Package_Name Package_Name Interface_Name __Interface_Name __Schema_Name __ExecFile_Name IDENTIFIER JAVAIDENTIFIER INTEGER REAL STRING LITERAL Schema_Name ExecFile_Name Empty_Str Engine_Name __Engine_Name Component_Name __Component_Name Client_Name
%start __Cdl_Declaration_List
%%
/*==========================================================================*/
/*==== Client definition ==================================================*/
/*==========================================================================*/
-Client_Declaration : client Client_Name
+Client_Declaration : client Client_Name { Client_Begin($2); }
+ __Client_Uses
is
__Client_Definitions
end __Client_End ';'
;
-Client_Name : IDENTIFIER { Client_Begin($1); }
+Client_Name : JAVAIDENTIFIER
+ | IDENTIFIER
+ ;
+
+__Client_Uses : Empty
+ | uses ClientUse_List
;
-__Client_End : Empty
- | IDENTIFIER { Client_End(); }
+ClientUse_List : Client_Name { Client_Use ( $1 ); }
+ | ClientUse_List ',' Client_Name { Client_Use ( $3 ); }
+ ;
+
+__Client_End : Empty
+ | IDENTIFIER { Client_End(); }
+ | JAVAIDENTIFIER { Client_End(); }
;
__Client_Definitions : Empty
Interface->Use(aPackName);
}
+void Client_Use ( char* aClientName ) {
+
+ Handle( TCollection_HAsciiString ) aCltName =
+ new TCollection_HAsciiString ( aClientName );
+
+ Client -> Use ( aCltName );
+
+} // end Client_Use
+
void Interface_Package(char *aPackageName)
{
Handle(TCollection_HAsciiString) aPackName = new TCollection_HAsciiString(aPackageName);