/**
* @file rdhmmdef_regtree.c
*
*
* @brief HTK %HMM 定義ファイルの読み込み:Regression tree
*
* Regression tree は保存されず,読み飛ばされます.
*
*
*
* @brief Read HTK %HMM definition file: Regression tree
*
* The regression tree informations are not saved, just skipped.
*
*
* @author Akinobu LEE
* @date Wed Feb 16 02:30:28 2005
*
* $Revision: 1.4 $
*
*/
/*
* Copyright (c) 1991-2012 Kawahara Lab., Kyoto University
* Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
* Copyright (c) 2005-2012 Julius project team, Nagoya Institute of Technology
* All rights reserved
*/
#include
#include
extern char *rdhmmdef_token; ///< Current token
/**
* Read in the regression tree to skip till next macro.
*
* @param fp [in] file pointer
*/
static void
regtree_read(FILE *fp)
{
int num;
read_token(fp);
NoTokErr("missing REGTREE terminal node num");
num = atoi(rdhmmdef_token);
read_token(fp);
for(;;) {
if (currentis("NODE")) { /* skip 3 arguments */
read_token(fp);
read_token(fp);
read_token(fp);
read_token(fp);
} else if (currentis("TNODE")) { /* skip 2 argument */
read_token(fp);
read_token(fp);
read_token(fp);
} else {
break;
}
}
}
/**
* Skip a regression tree data or its macro reference.
*
* @param name [in] macro name
* @param fp [in] file pointer
* @param hmm [in] %HMM definition data
*/
void
def_regtree_macro(char *name, FILE *fp, HTK_HMM_INFO *hmm)
{
if (currentis("~r")) { /* macro reference */
/* ignore silently */
} else if (currentis("REGTREE")) { /* definition */
/* do not define actually, just read forward till next macro */
regtree_read(fp);
} else {
rderr("no regtree data\n");
}
return;
}