include/jsgf.h File Reference

JSGF grammar compiler. More...

#include <sphinxbase_export.h>
#include <hash_table.h>
#include <glist.h>
#include <stdio.h>
#include <fsg_model.h>
#include <logmath.h>

Go to the source code of this file.

Defines

#define jsgf_rule_iter_next(itor)   hash_table_iter_next(itor)
 Advance an iterator to the next rule in the grammar.
#define jsgf_rule_iter_rule(itor)   ((jsgf_rule_t *)(itor)->ent->val)
 Get the current rule in a rule iterator.
#define jsgf_rule_iter_free(itor)   hash_table_iter_free(itor)
 Free a rule iterator (if the end hasn't been reached).

Typedefs

typedef struct jsgf_s jsgf_t
typedef struct jsgf_rule_s jsgf_rule_t
typedef hash_iter_t jsgf_rule_iter_t
 Iterator over rules in a grammar.

Functions

SPHINXBASE_EXPORT jsgf_tjsgf_grammar_new (jsgf_t *parent)
 Create a new JSGF grammar.
SPHINXBASE_EXPORT jsgf_tjsgf_parse_file (const char *filename, jsgf_t *parent)
 Parse a JSGF grammar from a file.
SPHINXBASE_EXPORT void jsgf_grammar_free (jsgf_t *jsgf)
 Free a JSGF grammar.
SPHINXBASE_EXPORT
jsgf_rule_iter_t
jsgf_rule_iter (jsgf_t *grammar)
 Get an iterator over all rules in a grammar.
SPHINXBASE_EXPORT jsgf_rule_tjsgf_get_rule (jsgf_t *grammar, char const *name)
 Get a rule by name from a grammar.
SPHINXBASE_EXPORT char const * jsgf_rule_name (jsgf_rule_t *rule)
 Get the rule name from a rule.
SPHINXBASE_EXPORT int jsgf_rule_public (jsgf_rule_t *rule)
 Test if a rule is public or not.
SPHINXBASE_EXPORT fsg_model_tjsgf_build_fsg (jsgf_t *grammar, jsgf_rule_t *rule, logmath_t *lmath, float32 lw)
 Build a Sphinx FSG object from a JSGF rule.
SPHINXBASE_EXPORT int jsgf_write_fsg (jsgf_t *grammar, jsgf_rule_t *rule, FILE *outfh)
 Convert a JSGF rule to Sphinx FSG text form.

Detailed Description

JSGF grammar compiler.

This file defines the data structures for parsing JSGF grammars into Sphinx finite-state grammars.

Definition in file jsgf.h.


Function Documentation

SPHINXBASE_EXPORT jsgf_t* jsgf_grammar_new ( jsgf_t parent  ) 

Create a new JSGF grammar.

Parameters:
parent optional parent grammar for this one (NULL, usually).
Returns:
new JSGF grammar object, or NULL on failure.

Definition at line 81 of file jsgf.c.

References ckd_calloc, ckd_salloc, glist_add_ptr(), glist_reverse(), hash_table_new(), jsgf_s::imports, jsgf_s::parent, jsgf_s::rules, and jsgf_s::searchpath.

Referenced by jsgf_parse_file().

SPHINXBASE_EXPORT jsgf_t* jsgf_parse_file ( const char *  filename,
jsgf_t parent 
)

Parse a JSGF grammar from a file.

Parameters:
filename the name of the file to parse.
parent optional parent grammar for this one (NULL, usually).
Returns:
new JSGF grammar object, or NULL on failure.

Definition at line 709 of file jsgf.c.

References jsgf_grammar_free(), and jsgf_grammar_new().

SPHINXBASE_EXPORT int jsgf_write_fsg ( jsgf_t grammar,
jsgf_rule_t rule,
FILE *  outfh 
)

Convert a JSGF rule to Sphinx FSG text form.

This does a direct conversion without doing transitive closure on null transitions and so forth.

Definition at line 486 of file jsgf.c.

References jsgf_link_s::atom, ckd_free(), jsgf_rule_s::entry, jsgf_rule_s::exit, jsgf_link_s::from, glist_free(), glist_reverse(), gnode_ptr, jsgf_s::links, jsgf_atom_s::name, jsgf_rule_s::name, jsgf_s::nstate, jsgf_link_s::to, and jsgf_atom_s::weight.


Generated on 20 Nov 2009 for SphinxBase by  doxygen 1.6.1