54 #ifndef _S3_CONTEXT_FREE_GRAMMAR_H
55 #define _S3_CONTEXT_FREE_GRAMMAR_H
60 #include "prim_type.h"
61 #include "hash_table.h"
69 #define S3_CFG_MAX_RULE_STR_LEN 1023
70 #define S3_CFG_MAX_ITEM_STR_LEN 40
71 #define S3_CFG_MAX_ITEM_COUNT 20
72 #define S3_CFG_INITIAL_RULE_COUNT 1
73 #define S3_CFG_INITIAL_RULE_SET_COUNT 50
74 #define S3_CFG_INITIAL_PARSE_SET_COUNT 20
75 #define S3_CFG_PARSE_HASH_SIZE 251
76 #define S3_CFG_INITIAL_STATE_SET_COUNT 20
77 #define S3_CFG_INITIAL_TERM_COUNT 50
78 #define S3_CFG_NAME_HASH_SIZE 4091
80 #define S3_CFG_INVALID_SCORE 1.0f
81 #define S3_CFG_INITIAL_SCORE 0.0f
83 #define S3_CFG_NONTERM_PREFIX '$'
84 #define S3_CFG_TERM_BIT 0x80000000
85 #define S3_CFG_INDEX_MASK 0x7FFFFFFF
87 #define S3_CFG_INVALID_ID 0x7FFFFFFF
89 #define S3_CFG_PSTART_ITEM 0x00000000
90 #define S3_CFG_PSTART_ITEM_STR "$PSTART"
91 #define S3_CFG_START_ITEM 0x00000001
92 #define S3_CFG_START_ITEM_STR "$START"
93 #define S3_CFG_EOR_ITEM (0x00000002 | S3_CFG_TERM_BIT)
94 #define S3_CFG_EOR_ITEM_STR "#EOR#"
95 #define S3_CFG_EOI_ITEM (0x00000003 | S3_CFG_TERM_BIT)
96 #define S3_CFG_EOI_ITEM_STR "#EOI#"
97 #define S3_CFG_NIL_ITEM (0x00000004 | S3_CFG_TERM_BIT)
98 #define S3_CFG_NIL_ITEM_STR "#NIL#"
100 #define S3_CFG_START_RULE \
101 { S3_CFG_PSTART_ITEM, 0.0f, { S3_CFG_START_ITEM, S3_CFG_EOR_ITEM }, 1 }
103 #define S3_CFG_AUTO_PRUNE_SCORE 0x00000001
104 #define S3_CFG_AUTO_PRUNE_RANK 0x00000002
106 #define s3_cfg_is_null_parse(x) (x->entries.count == 0)
108 #define s3_cfg_is_terminal(x) (x & S3_CFG_TERM_BIT)
110 #define s3_cfg_id2index(x) (x & S3_CFG_INDEX_MASK)
302 s3_cfg_id_t *_products);
s3_cfg_id_t input
Definition: s3_cfg.h:147
s3_cfg_rule_t * rule
Definition: s3_cfg.h:137
void s3_cfg_free_parse_tree(s3_cfg_t *_cfg, s3_cfg_state_t *_parse)
int32 log_score
Definition: s3_cfg.h:122
void s3_cfg_close(s3_cfg_t *_cfg)
s3_cfg_entry_t * best_completed_entry
Definition: s3_cfg.h:152
s3_arraylist_t entries
Definition: s3_cfg.h:148
s3_cfg_id_t src
Definition: s3_cfg.h:115
int8 * predictions
Definition: s3_cfg.h:165
struct s3_cfg_entry_s * complete
Definition: s3_cfg.h:142
void s3_cfg_rescore(s3_cfg_t *_cfg, logmath_t *logmath)
hash_table_t * name2id
Definition: s3_cfg.h:163
s3_cfg_state_t * s3_cfg_input_term(s3_cfg_t *_cfg, s3_cfg_state_t *_cur, s3_cfg_id_t _term)
S3DECODER_EXPORT s3_cfg_t * s3_cfg_read_simple(const char *_fn)
S3DECODER_EXPORT void s3_cfg_compile_rules(s3_cfg_t *_cfg, logmath_t *logmath)
struct s3_cfg_state_s s3_cfg_state_t
s3_arraylist_t item_info
Definition: s3_cfg.h:162
s3_cfg_entry_t * best_overall_parse
Definition: s3_cfg.h:155
int num_expanded
Definition: s3_cfg.h:157
s3_arraylist_t expansions
Definition: s3_cfg.h:149
s3_cfg_t * s3_cfg_read_srgs(const char *_fn)
void s3_cfg_print_parse(s3_cfg_t *_cfg, s3_cfg_entry_t *_parse, FILE *_out)
void s3_cfg_print_rule(s3_cfg_t *_cfg, s3_cfg_rule_t *_rule, FILE *_out)
struct s3_cfg_state_s * back
Definition: s3_cfg.h:150
void s3_cfg_init(s3_cfg_t *_cfg)
uint32 s3_cfg_id_t
Definition: s3_cfg.h:112
void s3_cfg_print_entry(s3_cfg_t *_cfg, s3_cfg_entry_t *_entry, FILE *_out)
struct s3_cfg_state_s * origin
Definition: s3_cfg.h:139
s3_cfg_entry_t * best_overall_entry
Definition: s3_cfg.h:153
struct s3_cfg_entry_s * back
Definition: s3_cfg.h:141
s3_cfg_state_t * s3_cfg_create_parse(s3_cfg_t *_cfg)
s3_arraylist_t rules
Definition: s3_cfg.h:161
struct s3_cfg_rule_s s3_cfg_rule_t
#define S3DECODER_EXPORT
Definition: sphinx3_export.h:15
void s3_cfg_write_simple(s3_cfg_t *_cfg, const char *_fn)
S3DECODER_EXPORT s2_fsg_t * s3_cfg_convert_to_fsg(s3_cfg_t *_cfg, int _max_expansion)
char * name
Definition: s3_cfg.h:130
int len
Definition: s3_cfg.h:125
int32 score
Definition: s3_cfg.h:140
s3_cfg_id_t * products
Definition: s3_cfg.h:124
s3_cfg_id_t id
Definition: s3_cfg.h:129
s3_arraylist_t rules
Definition: s3_cfg.h:131
s3_cfg_rule_t * nil_rule
Definition: s3_cfg.h:132
s3_cfg_item_t * s3_cfg_get_term_info(s3_cfg_t *_cfg, s3_cfg_id_t _id)
struct s3_cfg_entry_s s3_cfg_entry_t
s3_cfg_id_t s3_cfg_str2id(s3_cfg_t *_cfg, char *_item)
s3_cfg_entry_t * best_completed_parse
Definition: s3_cfg.h:154
Definition: s3_arraylist.h:16
s3_cfg_rule_t * s3_cfg_add_rule(s3_cfg_t *_cfg, s3_cfg_id_t _src, float32 _fake_score, s3_cfg_id_t *_products)
float32 prob_score
Definition: s3_cfg.h:120
float32 score
Definition: s3_cfg.h:118
int dot
Definition: s3_cfg.h:138
void s3_cfg_free_parse(s3_cfg_t *_cfg, s3_cfg_state_t *_parse)
const char * s3_cfg_id2str(s3_cfg_t *_cfg, s3_cfg_id_t _id)