diff --git a/libasn1fix/Makefile.am b/libasn1fix/Makefile.am
index 0db2c68..21b1b83 100644
--- a/libasn1fix/Makefile.am
+++ b/libasn1fix/Makefile.am
@@ -3,6 +3,9 @@
 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
@@ -26,6 +29,8 @@
 	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_PROGRAMS = check_fixer
diff --git a/libasn1fix/Makefile.in b/libasn1fix/Makefile.in
index b448809..61a4d84 100644
--- a/libasn1fix/Makefile.in
+++ b/libasn1fix/Makefile.in
@@ -39,7 +39,8 @@
 host_triplet = @host@
 check_PROGRAMS = check_fixer$(EXEEXT)
 subdir = libasn1fix
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	asn1fix_cws_l.c asn1fix_cws_y.c asn1fix_cws_y.h
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -55,7 +56,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_constraint_compat.lo
+	asn1fix_cws_y.lo asn1fix_cws_l.lo asn1fix_constraint_compat.lo
 libasn1fix_la_OBJECTS = $(am_libasn1fix_la_OBJECTS)
 check_fixer_SOURCES = check_fixer.c
 check_fixer_OBJECTS = check_fixer.$(OBJEXT)
@@ -72,6 +73,8 @@
 @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_dereft.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_derefv.Plo \
 @AMDEP_TRUE@	./$(DEPDIR)/asn1fix_enum.Plo \
@@ -91,6 +94,11 @@
 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
@@ -209,6 +217,8 @@
 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 = \
@@ -231,6 +241,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_constraint_compat.c
 
 check_fixer_LDADD = $(noinst_LTLIBRARIES)		\
@@ -242,7 +253,7 @@
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .l .lo .o .obj .y
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -281,6 +292,11 @@
 	  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)
 
@@ -309,6 +325,8 @@
 @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_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@
@@ -345,6 +363,31 @@
 @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
 
@@ -533,6 +576,9 @@
 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_cws.c b/libasn1fix/asn1fix_cws.c
new file mode 100644
index 0000000..2a629e9
--- /dev/null
+++ b/libasn1fix/asn1fix_cws.c
@@ -0,0 +1 @@
+#include "asn1fix_internal.h"
diff --git a/libasn1fix/asn1fix_cws.h b/libasn1fix/asn1fix_cws.h
new file mode 100644
index 0000000..a134e53
--- /dev/null
+++ b/libasn1fix/asn1fix_cws.h
@@ -0,0 +1,24 @@
+#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_ */
