diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-15 13:51:03 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-15 14:05:39 +0300 |
commit | a0826b4c7cd66c4862d9b61bb7e14d73fcba28f6 (patch) | |
tree | 71762fca263967e5803ce803b0a0aa94555e125d /am | |
parent | fd64fa62bc68d8c2e0d693033e874fcc1f023544 (diff) | |
download | grecs-a0826b4c7cd66c4862d9b61bb7e14d73fcba28f6.tar.gz grecs-a0826b4c7cd66c4862d9b61bb7e14d73fcba28f6.tar.bz2 |
Provide a framework for multiple parsers. Implement meta1 parser.
* Makefile.am (EXTRA_DIST): Add build-aux/yyrename
* am/grecs.m4: New options: parser-meta1 and all-parsers
* src/.gitignore: Update.
* src/Make.am [GRECS_COND_META1_PARSER]: Set GRECS_PARSER_META1 and
GRECS_EXTRA_META1
(GRECS_SRC): Add new files.
(EXTRA_DIST): Add GRECS_EXTRA_META1.
(LEXCOMPILE,YACCCOMPILE): Redefine
* src/grecs-gram.y: Don't include yygrecs.h
(grecs_vasprintf,grecs_asprintf): Move to a separate file.
(grecs_parse): Rename to grecs_grecs_parser.
Actual grecs_parse is defined in parser.c
(grecs_gram_trace): Move to parser.c
* src/grecs-lex.l: Don't include yygrecs.h
Use line_acc functions.
* src/grecs.h (grecs_trace_flags): New extern.
(GRECS_TRACE_GRAM, GRECS_TRACE_LEX): New flags.
(grecs_lex_begin): Change signature.
(grecs_grecs_parser,grecs_meta1_parser): New protos.
(grecs_line_acc_create)
(grecs_line_acc_free,grecs_line_acc_grow_char)
(grecs_line_acc_grow_char_unescape)
(grecs_line_acc_grow)
(grecs_line_acc_grow_unescape_last): New protos.
(GRECS_TXTACC_BUFSIZE): New const
(grecs_txtacc_create,grecs_txtacc_free)
(grecs_txtacc_grow,grecs_txtacc_finish)
(grecs_txtacc_free_string): New protos.
(grecs_value_match): New proto.
* src/wordsplit.c (quote_transtab): Translate \"
* src/yygrecs.h: Remove.
* src/yytrans: New file.
* build-aux/yyrename: New file.
* src/asprintf.c: New file.
* src/lineacc.c: New file.
* src/meta1-gram.y: New file.
* src/meta1-lex.l: New file.
* src/parser.c: New file.
* src/txtacc.c: New file.
* doc/grecs_parse.3: Update.
* doc/GRECS_SETUP.3: Update.
Diffstat (limited to 'am')
-rw-r--r-- | am/grecs.m4 | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/am/grecs.m4 b/am/grecs.m4 index 0d1b03d..8f4868b 100644 --- a/am/grecs.m4 +++ b/am/grecs.m4 | |||
@@ -148,7 +148,11 @@ AC_DEFUN([GRECS_SETUP],[ | |||
148 | GRECS_BUILD_AUX="build-aux/getopt.m4" | 148 | GRECS_BUILD_AUX="build-aux/getopt.m4" |
149 | ]) | 149 | ]) |
150 | _GRECS_IF_OPTION_SET([git2chg],[GRECS_BUILD_AUX="$GRECS_BUILD_AUX build-aux/git2chg.awk"]) | 150 | _GRECS_IF_OPTION_SET([git2chg],[GRECS_BUILD_AUX="$GRECS_BUILD_AUX build-aux/git2chg.awk"]) |
151 | 151 | AM_CONDITIONAL([GRECS_COND_META1_PARSER], | |
152 | _GRECS_OPTION_SWITCH([parser-meta1],[true], | ||
153 | [all-parsers],[true], | ||
154 | [false])) | ||
155 | |||
152 | AC_SUBST([GRECS_SRCDIR],$1) | 156 | AC_SUBST([GRECS_SRCDIR],$1) |
153 | AC_SUBST([GRECS_BUILD_AUX]) | 157 | AC_SUBST([GRECS_BUILD_AUX]) |
154 | AC_SUBST([GRECS_INCLUDES]) | 158 | AC_SUBST([GRECS_INCLUDES]) |
@@ -160,6 +164,7 @@ AC_DEFUN([GRECS_SETUP],[ | |||
160 | AC_SUBST([GRECS_README]) | 164 | AC_SUBST([GRECS_README]) |
161 | AC_SUBST([GRECS_INCLUDES],['-I$(top_srcdir)/]grecsdir[src]') | 165 | AC_SUBST([GRECS_INCLUDES],['-I$(top_srcdir)/]grecsdir[src]') |
162 | AC_SUBST([GRECS_HOST_PROJECT_INCLUDES]) | 166 | AC_SUBST([GRECS_HOST_PROJECT_INCLUDES]) |
167 | |||
163 | _GRECS_OPTION_SWITCH([install],[ | 168 | _GRECS_OPTION_SWITCH([install],[ |
164 | LT_INIT | 169 | LT_INIT |
165 | GRECS_LDADD=['$(top_builddir)/]grecsdir[src/libgrecs.la'] | 170 | GRECS_LDADD=['$(top_builddir)/]grecsdir[src/libgrecs.la'] |