[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/geas/lib/classdefs yparser.y
From: |
Neil Tiffin |
Subject: |
gnue/geas/lib/classdefs yparser.y |
Date: |
Thu, 24 May 2001 18:05:23 -0700 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Neil Tiffin <address@hidden> 01/05/24 18:05:23
Modified files:
geas/lib/classdefs: yparser.y
Log message:
Add check for duplicate modules.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/geas/lib/classdefs/yparser.y.diff?cvsroot=OldCVS&tr1=1.25&tr2=1.26&r1=text&r2=text
Patches:
Index: gnue/geas/lib/classdefs/yparser.y
diff -u gnue/geas/lib/classdefs/yparser.y:1.25
gnue/geas/lib/classdefs/yparser.y:1.26
--- gnue/geas/lib/classdefs/yparser.y:1.25 Sat May 19 16:21:02 2001
+++ gnue/geas/lib/classdefs/yparser.y Thu May 24 18:05:23 2001
@@ -65,6 +65,7 @@
%type <string> new_container_name new_field_name existing_class_name
%type <string> qualified_name opt_format opt_default
%type <string> existing_field_name
+%type <string> new_module_name new_class_name
%type <list> enum_body parent_list search_fields
%type <list> body_item class_body_item class_body opt_parent_list
%type <list> new_field_list opt_argument_list argument_list
@@ -232,6 +233,25 @@
new_container_name: SYMBOL { $$ = $1; /*printf("[ (%s)\n",$1);*/ }
;
+new_module_name: SYMBOL {
+ odl_module * wanted = NULL;
+ wanted = odl_find_module( yycurrenttree, $1, 0);
+ /* printf("Looking for Module: %s, %p\n", $1,
wanted); */
+ if ((wanted == NULL) || (current_pass != 1))
+ {
+ $$ = $1;
+ }
+ else
+ {
+ yyerror("Duplicate module name.");
+ $$ = "Duplicate_Module_Name";
+ }
+ }
+ ;
+
+new_class_name: SYMBOL { $$ = $1; /*printf("[ (%s)\n",$1);*/ }
+ ;
+
new_field_name: SYMBOL { $$ = $1; }
;
@@ -244,13 +264,13 @@
| opt_access ENUM enum ';' { is_a_type = FALSE; }
;
-module: MODULE new_container_name push_module '{' dt_on unit_list '}'
pop_module dt_on
+module: MODULE new_module_name push_module '{' dt_on unit_list '}' pop_module
dt_on
;
-class: opt_class_type CLASS dt_off new_container_name push_class
opt_parent_list '{' dt_on class_body '}' pop_class dt_on {}
+class: opt_class_type CLASS dt_off new_class_name push_class opt_parent_list
'{' dt_on class_body '}' pop_class dt_on {}
;
-type: opt_class_type CTYPE dt_off new_container_name push_class
opt_parent_list '{' dt_on class_body '}' pop_class dt_on { lastpushed->istype =
TRUE; }
+type: opt_class_type CTYPE dt_off new_class_name push_class opt_parent_list
'{' dt_on class_body '}' pop_class dt_on { lastpushed->istype = TRUE; }
;
enum: new_container_name '{' enum_body '}' dt_on {