+++ /dev/null
-/*
- $Id: marcomp.h,v 1.2 2006-05-10 08:13:28 adam Exp $
-*/
-#ifndef MARCOMP_H
-#define MARCOMP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct mc_subfield
-{
- char *name;
- char *prefix;
- char *suffix;
- struct {
- int start;
- int end;
- } interval;
- int which;
- union {
-#define MC_SF 1
-#define MC_SFGROUP 2
-#define MC_SFVARIANT 3
- struct mc_field *in_line;
- struct mc_subfield *child;
- } u;
- struct mc_subfield *next;
- struct mc_subfield *parent;
-} mc_subfield;
-
-#define SZ_FNAME 3
-#define SZ_IND 1
-#define SZ_SFNAME 1
-#define SZ_PREFIX 1
-#define SZ_SUFFIX 1
-
-typedef struct mc_field
-{
- char *name;
- char *ind1;
- char *ind2;
- struct {
- int start;
- int end;
- } interval;
- struct mc_subfield *list;
-} mc_field;
-
-typedef enum
-{
- NOP,
- REGULAR,
- LVARIANT,
- RVARIANT,
- LGROUP,
- RGROUP,
- LINLINE,
- RINLINE,
- SUBFIELD,
- LINTERVAL,
- RINTERVAL,
-} mc_token;
-
-typedef enum
-{
- EMCOK = 0, /* first always, mondatory */
- EMCNOMEM,
- EMCF,
- EMCSF,
- EMCSFGROUP,
- EMCSFVAR,
- EMCSFINLINE,
- EMCEND /* last always, mondatory */
-} mc_errcode;
-
-typedef struct mc_context
-{
- int offset;
-
- int crrval;
- mc_token crrtok;
-
- mc_errcode errcode;
-
- int len;
- const char *data;
-} mc_context;
-
-mc_context *mc_mk_context(const char *s);
-void mc_destroy_context(mc_context *c);
-
-mc_field *mc_getfield(mc_context *c);
-void mc_destroy_field(mc_field *p);
-void mc_pr_field(mc_field *p, int offset);
-
-mc_subfield *mc_getsubfields(mc_context *c, mc_subfield *parent);
-void mc_destroy_subfield(mc_subfield *p);
-void mc_destroy_subfields_recursive(mc_subfield *p);
-void mc_pr_subfields(mc_subfield *p, int offset);
-
-mc_errcode mc_errno(mc_context *c);
-const char *mc_error(mc_errcode no);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/*
- * Local variables:
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=4 tabstop=8 expandtab
- */
-