rrtbl.h

来自「中科院开源的ictprop源码,使用方法: 1、修改源码中的InputComb」· C头文件 代码 · 共 40 行

H
40
字号
#ifndef RRTBL_H
#define RRTBL_H

/*DECLR OF ROLE INVERSION TABLE*/

typedef struct rulrol_struct{
        unsigned int rule;
        unsigned int role;
        unsigned int expsymb;
        char expmode;
        struct rulrol_struct *nxt;
} rulrol_struct;
        
typedef struct rr_tbl_entry_t{
        rulrol_struct *lrr;
        rulrol_struct *rrr;
}rr_tbl_entry_t;

extern unsigned int *rolestring;
extern unsigned int *postfixstring;
extern rr_tbl_entry_t *rr_tbl;

#define rrr(cate, preread) ((cate>=tntcount||preread>=tcount)?NULL:rr_tbl[preread*(tntcount-1)+cate-1].rrr)
#define lrr(cate, preread) ((cate>=tntcount||preread>=tcount)?NULL:rr_tbl[preread*(tntcount-1)+cate-1].lrr)
extern int rrini(void);
extern int rrrelease(void);
extern int listrr(void);
extern int expecini(void);
extern int expecrelease(void);
extern int rrready;

#define RUL(i) ruleindex[i]
#define ROLPOS(i, j) RUL(i).fstidx+j
#define EXP(i, j) rolestring[ROLPOS(i, j)]
#define PST(i, j) postfixstring[ROLPOS(i, j)]
#define TOSHIFT(i, j) (RUL(i).length>j)
#define REQ(rul1, rol1, rul2, rol2) ((rol1==rol2) && (rul1==rul2))
#define RGT(rul1, rol1, rul2, rol2) ((rul1>rul2) || (rul1==rul2) && (rol1>rol2))
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?