📄 marcomp.h
字号:
/* $Id: marcomp.h,v 1.1 2003/02/28 12:33:39 oleg Exp $*/#ifndef MARCOMP_H#define MARCOMP_H#ifdef __cplusplusextern "C" {#endiftypedef 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 1typedef 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -