blob: 3c3a4db51ab3fcc26ae91dd6c060e09d93840b5a [file] [log] [blame]
/*---------------------------------------------------------------------------*
* srec_tokens.h *
* *
* Copyright 2007, 2008 Nuance Communciations, Inc. *
* *
* Licensed under the Apache License, Version 2.0 (the 'License'); *
* you may not use this file except in compliance with the License. *
* *
* You may obtain a copy of the License at *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an 'AS IS' BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License. *
* *
*---------------------------------------------------------------------------*/
#ifndef _SREC_TOKENS_H_
#define _SREC_TOKENS_H_
#include"srec.h"
#include"srec_sizes.h"
/* miscdata what_to_do_if_fails */
#define EXIT_IF_NO_TOKENS 1 /*for handling allocation failures*/
#define NULL_IF_NO_TOKENS 2 /*for handling allocation failures*/
/*
* fsmarc_token management
*/
int count_fsmarc_token_list(srec* rec, stokenID token_index);
void initialize_free_fsmarc_tokens(srec *rec);
stokenID setup_free_fsmarc_token(srec *rec, FSMarc* arc, arcID fsm_arc_index, miscdata what_to_do_if_fails);
void free_fsmarc_token(srec *rec, stokenID old_token_index);
void sort_fsmarc_token_list(srec* rec, stokenID* ptoken_index);
/*
* word_token management
*/
void initialize_free_word_tokens(srec *rec);
wtokenID get_free_word_token(srec *rec, miscdata what_to_do_if_fails);
/*
* fsmnode_token management
*/
int count_fsmnode_token_list(srec* rec, ftokenID token_index);
void initialize_free_fsmnode_tokens(srec *rec);
ftokenID get_free_fsmnode_token(srec *rec, miscdata what_to_do_if_fails);
void free_fsmnode_token(srec *rec, ftokenID old_token_index);
/*
* altword token management
*/
void initialize_free_altword_tokens(srec *rec);
int count_altword_token(srec* rec, altword_token* b);
altword_token* get_free_altword_token(srec* rec, miscdata what_to_do_if_fails);
int free_altword_token(srec* rec, altword_token* old_token);
altword_token* free_altword_token_batch(srec* rec, altword_token* old_token);
#define print_altword_token_counts(a,b)
#endif