diff options
author | Lev Walkin <vlm@lionet.info> | 2006-03-14 15:23:06 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2006-03-14 15:23:06 +0000 |
commit | cb4cd5b22ac44b4605bdecf51220316ff71605cc (patch) | |
tree | 54a93789818124d1696d7b9e32c493e880fe296d | |
parent | c2a75094b58cc11b4985a00e3e6bb4fd341b4cb1 (diff) |
CLASS WITH SYNTAX
-rw-r--r-- | libasn1fix/Makefile.am | 5 | ||||
-rw-r--r-- | libasn1fix/Makefile.in | 52 | ||||
-rw-r--r-- | libasn1fix/asn1fix_cws.c | 1 | ||||
-rw-r--r-- | libasn1fix/asn1fix_cws.h | 24 |
4 files changed, 79 insertions, 3 deletions
diff --git a/libasn1fix/Makefile.am b/libasn1fix/Makefile.am index 0db2c685..21b1b830 100644 --- a/libasn1fix/Makefile.am +++ b/libasn1fix/Makefile.am @@ -3,6 +3,9 @@ AM_CFLAGS = @ADD_CFLAGS@ 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 @@ libasn1fix_la_SOURCES = \ 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 b4488095..61a4d842 100644 --- a/libasn1fix/Makefile.in +++ b/libasn1fix/Makefile.in @@ -39,7 +39,8 @@ POST_UNINSTALL = : 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 @@ am_libasn1fix_la_OBJECTS = asn1fix.lo asn1fix_misc.lo asn1fix_value.lo \ 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 @@ am__depfiles_maybe = depfiles @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 @@ LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ 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_CFLAGS = @ADD_CFLAGS@ 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 @@ libasn1fix_la_SOURCES = \ 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 @@ TESTS = ${top_srcdir}/tests/*.asn1 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 @@ clean-noinstLTLIBRARIES: 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 @@ distclean-compile: @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 @@ distclean-compile: @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 @@ distclean-generic: 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 00000000..2a629e92 --- /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 00000000..a134e532 --- /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_ */ |