*** empty log message ***


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1070 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1fix/Makefile.am b/libasn1fix/Makefile.am
index 21b1b83..65316be 100644
--- a/libasn1fix/Makefile.am
+++ b/libasn1fix/Makefile.am
@@ -3,9 +3,6 @@
 AM_CPPFLAGS =				\
 	-I$(top_srcdir)/libasn1parser
 
-AM_YFLAGS = -p asn1fix_cws_ -d
-AM_LFLAGS = -sp -Cem -Pasn1fix_cws_ -olex.yy.c
-
 noinst_LTLIBRARIES = libasn1fix.la
 
 libasn1fix_la_LDFLAGS = -all-static
@@ -29,7 +26,6 @@
 	asn1fix_class.c asn1fix_class.h			\
 	asn1fix_tags.c asn1fix_tags.h			\
 	asn1fix_enum.c asn1fix_enum.h			\
-	asn1fix_cws_y.y asn1fix_cws_l.l			\
 	asn1fix_cws.c asn1fix_cws.h			\
 	asn1fix_constraint_compat.c
 
diff --git a/libasn1fix/Makefile.in b/libasn1fix/Makefile.in
index 61a4d84..a259a34 100644
--- a/libasn1fix/Makefile.in
+++ b/libasn1fix/Makefile.in
@@ -39,8 +39,7 @@
 host_triplet = @host@
 check_PROGRAMS = check_fixer$(EXEEXT)
 subdir = libasn1fix
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	asn1fix_cws_l.c asn1fix_cws_y.c asn1fix_cws_y.h
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -56,7 +55,7 @@
 	asn1fix_integer.lo asn1fix_crange.lo asn1fix_dereft.lo \
 	asn1fix_derefv.lo asn1fix_export.lo asn1fix_param.lo \
 	asn1fix_class.lo asn1fix_tags.lo asn1fix_enum.lo \
-	asn1fix_cws_y.lo asn1fix_cws_l.lo asn1fix_constraint_compat.lo
+	asn1fix_cws.lo asn1fix_constraint_compat.lo
 libasn1fix_la_OBJECTS = $(am_libasn1fix_la_OBJECTS)
 check_fixer_SOURCES = check_fixer.c
 check_fixer_OBJECTS = check_fixer.$(OBJEXT)
@@ -73,8 +72,7 @@
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_constraint_compat.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_crange.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_cstring.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/asn1fix_cws_l.Plo \
-@AMDEP_TRUE@	./$(DEPDIR)/asn1fix_cws_y.Plo \
+@AMDEP_TRUE@	./$(DEPDIR)/asn1fix_cws.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_dereft.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_derefv.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_enum.Plo \
@@ -94,11 +92,6 @@
 CCLD = $(CC)
 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \
-	$(AM_YFLAGS)
 SOURCES = $(libasn1fix_la_SOURCES) check_fixer.c
 DIST_SOURCES = $(libasn1fix_la_SOURCES) check_fixer.c
 ETAGS = etags
@@ -217,8 +210,6 @@
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/libasn1parser
 
-AM_YFLAGS = -p asn1fix_cws_ -d
-AM_LFLAGS = -sp -Cem -Pasn1fix_cws_ -olex.yy.c
 noinst_LTLIBRARIES = libasn1fix.la
 libasn1fix_la_LDFLAGS = -all-static
 libasn1fix_la_SOURCES = \
@@ -241,7 +232,7 @@
 	asn1fix_class.c asn1fix_class.h			\
 	asn1fix_tags.c asn1fix_tags.h			\
 	asn1fix_enum.c asn1fix_enum.h			\
-	asn1fix_cws_y.y asn1fix_cws_l.l			\
+	asn1fix_cws.c asn1fix_cws.h			\
 	asn1fix_constraint_compat.c
 
 check_fixer_LDADD = $(noinst_LTLIBRARIES)		\
@@ -253,7 +244,7 @@
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .l .lo .o .obj .y
+.SUFFIXES: .c .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -292,11 +283,6 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-asn1fix_cws_y.h: asn1fix_cws_y.c
-	@if test ! -f $@; then \
-	  rm -f asn1fix_cws_y.c; \
-	  $(MAKE) asn1fix_cws_y.c; \
-	else :; fi
 libasn1fix.la: $(libasn1fix_la_OBJECTS) $(libasn1fix_la_DEPENDENCIES) 
 	$(LINK)  $(libasn1fix_la_LDFLAGS) $(libasn1fix_la_OBJECTS) $(libasn1fix_la_LIBADD) $(LIBS)
 
@@ -325,8 +311,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_constraint_compat.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_crange.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_cstring.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_cws_l.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_cws_y.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_cws.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_dereft.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_derefv.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1fix_enum.Plo@am__quote@
@@ -363,31 +348,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
-.l.c:
-	$(LEXCOMPILE) $<
-	sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@
-	rm -f $(LEX_OUTPUT_ROOT).c
-
-.y.c:
-	$(YACCCOMPILE) $<
-	if test -f y.tab.h; then \
-	  to=`echo "$*_H" | sed \
-                -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-                -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
-	  sed "/^#/ s/Y_TAB_H/$$to/g" y.tab.h >$*.ht; \
-	  rm -f y.tab.h; \
-	  if cmp -s $*.ht $*.h; then \
-	    rm -f $*.ht ;\
-	  else \
-	    mv $*.ht $*.h; \
-	  fi; \
-	fi
-	if test -f y.output; then \
-	  mv y.output $*.output; \
-	fi
-	sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
-	rm -f y.tab.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -576,9 +536,6 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-rm -f asn1fix_cws_y.c
-	-rm -f asn1fix_cws_y.h
-	-rm -f asn1fix_cws_l.c
 clean: clean-am
 
 clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
diff --git a/libasn1fix/asn1fix.c b/libasn1fix/asn1fix.c
index 44dbf0e..dbe18c2 100644
--- a/libasn1fix/asn1fix.c
+++ b/libasn1fix/asn1fix.c
@@ -223,6 +223,11 @@
 		RET2RVAL(ret, rvalue);
 
 		/*
+		 * Parse WITH SYNTAX in CLASSes.
+		 */
+		ret = asn1f_parse_class_with_syntax(arg);
+
+		/*
 		 * Resolve references in constraints.
 		 */
 		ret = asn1f_recurse_expr(arg, asn1f_resolve_constraints);
diff --git a/libasn1fix/asn1fix_class.c b/libasn1fix/asn1fix_class.c
index 11acd8b..bb24a16 100644
--- a/libasn1fix/asn1fix_class.c
+++ b/libasn1fix/asn1fix_class.c
@@ -64,3 +64,17 @@
 
 	return NULL;
 }
+
+
+int
+asn1f_parse_class_with_syntax(arg_t *arg) {
+	asn1p_expr_t *expr = arg->expr;
+
+	if(expr->expr_type != A1TC_CLASSDEF
+	|| expr->with_syntax == NULL)
+		return 0;
+
+	DEBUG("Class %s: checking WITH SYNTAX", expr->Identifier);
+
+	return 0;
+}
diff --git a/libasn1fix/asn1fix_class.h b/libasn1fix/asn1fix_class.h
index 763e48c..b8a6e78 100644
--- a/libasn1fix/asn1fix_class.h
+++ b/libasn1fix/asn1fix_class.h
@@ -12,4 +12,10 @@
 asn1p_expr_t *asn1f_class_access2(asn1p_t *asn, asn1p_module_t *mod,
 	asn1p_expr_t *expr, asn1p_ref_t *);
 
+/*
+ * CLASS may contain the "WITH SYNTAX" clause, in which case we are
+ * going to parse it.
+ */
+int asn1f_parse_class_with_syntax(arg_t *arg);
+
 #endif	/* _ASN1FIX_CLASS_H_ */
diff --git a/libasn1fix/asn1fix_cws.c b/libasn1fix/asn1fix_cws.c
index 2a629e9..6a8abf9 100644
--- a/libasn1fix/asn1fix_cws.c
+++ b/libasn1fix/asn1fix_cws.c
@@ -1 +1,2 @@
 #include "asn1fix_internal.h"
+#include "asn1fix_cws.h"
diff --git a/libasn1fix/asn1fix_cws.h b/libasn1fix/asn1fix_cws.h
index a134e53..75f7830 100644
--- a/libasn1fix/asn1fix_cws.h
+++ b/libasn1fix/asn1fix_cws.h
@@ -1,24 +1,4 @@
 #ifndef	_ASN1FIX_CLASS_WITH_SYNTAX_H_
 #define	_ASN1FIX_CLASS_WITH_SYNTAX_H_
 
-/*
- * This structure describes the "WITH SYNTAX" clause of a CLASS.
- */
-typedef struct asn1f_cws_syntax_list_s {
-	struct asn1f_cws_spec **cwspecs;
-	int cwcount;	/* Number of pieces of CWS information */
-} asn1f_cws_syntax_list_t;
-
-struct asn1f_cws_spec {
-	enum {
-		CWS_LITERAL,
-		CWS_FIELD,
-		CWS_OPTIONALGROUP
-	} type;
-	union {
-		char *token;	/* For CWSB_LITERAL & CWSB_FIELD */
-		asn1f_cws_syntax_list_t *syntax;
-	} content;
-};
-
 #endif	/* _ASN1FIX_CLASS_WITH_SYNTAX_H_ */