Browse Source

code cleanup: reduce variable scopes in compiledata.c

master
Juho Hiltunen 2 years ago
parent
commit
745ae078fb
1 changed files with 29 additions and 44 deletions
  1. 29
    44
      src/libespeak-ng/compiledata.c

+ 29
- 44
src/libespeak-ng/compiledata.c View File

@@ -450,7 +450,6 @@ static espeak_ng_STATUS ReadPhondataManifest(CompileContext *ctx, espeak_ng_ERRO
// Read the phondata-manifest file
FILE *f;
int n_lines = 0;
int ix;
char *p;
unsigned int value;
char buf[sizeof(path_home)+40];
@@ -466,7 +465,7 @@ static espeak_ng_STATUS ReadPhondataManifest(CompileContext *ctx, espeak_ng_ERRO
rewind(f);

if (ctx->manifest != NULL) {
for (ix = 0; ix < ctx->n_manifest; ix++)
for (int ix = 0; ix < ctx->n_manifest; ix++)
free(ctx->manifest[ix].name);
}

@@ -544,13 +543,11 @@ static void ReservePhCodes(CompileContext *ctx)
{
// Reserve phoneme codes which have fixed numbers so that they can be
// referred to from the program code.
unsigned int word;
const MNEM_TAB *p;

p = reserved_phonemes;
while (p->mnem != NULL) {
word = StringToWord(p->mnem);
ctx->phoneme_tab2[p->value].mnemonic = word;
ctx->phoneme_tab2[p->value].mnemonic = StringToWord(p->mnem);
ctx->phoneme_tab2[p->value].code = p->value;
if (ctx->n_phcodes <= p->value)
ctx->n_phcodes = p->value+1;
@@ -637,12 +634,9 @@ static int CheckNextChar(CompileContext *ctx)

static int NextItem(CompileContext *ctx, int type)
{
int acc;
unsigned char c = 0;
unsigned char c2;
int ix;
int sign;
char *p;
const keywtab_t *pk;

ctx->item_type = -1;
@@ -701,9 +695,10 @@ static int NextItem(CompileContext *ctx, int type)
return 0;

if ((type == tNUMBER) || (type == tSIGNEDNUMBER)) {
acc = 0;
sign = 1;
p = ctx->item_string;
int acc = 0;
int sign = 1;
char *p;
p = ctx->item_string;

if ((*p == '-') && (type == tSIGNEDNUMBER)) {
sign = -1;
@@ -799,7 +794,6 @@ static int Range(int value, int divide, int min, int max)
static int CompileVowelTransition(CompileContext *ctx, int which)
{
// Compile a vowel transition
int key;
int len = 0;
int rms = 0;
int f1 = 0;
@@ -830,7 +824,7 @@ static int CompileVowelTransition(CompileContext *ctx, int which)
}

for (;;) {
key = NextItem(ctx, tKEYWORD);
int key = NextItem(ctx, tKEYWORD);
if (ctx->item_type != tTRANSITION) {
UngetItem(ctx);
break;
@@ -1213,8 +1207,6 @@ static int Hash8(const char *string)
static int LoadEnvelope2(CompileContext *ctx, FILE *f)
{
int ix, ix2;
int n;
int x, y;
int displ;
int n_points;
char line_buf[128];
@@ -1230,7 +1222,7 @@ static int LoadEnvelope2(CompileContext *ctx, FILE *f)
break;

env_lin[n_points] = 0;
n = sscanf(line_buf, "%f %f %d", &env_x[n_points], &env_y[n_points], &env_lin[n_points]);
int n = sscanf(line_buf, "%f %f %d", &env_x[n_points], &env_y[n_points], &env_lin[n_points]);
if (n >= 2) {
env_x[n_points] *= (float)1.28; // convert range 0-100 to 0-128
n_points++;
@@ -1244,12 +1236,14 @@ static int LoadEnvelope2(CompileContext *ctx, FILE *f)

ix = 0;
ix2 = 0;
if (n_points > 0) for (x = 0; x < ENV_LEN; x++) {

if (n_points > 0) for (int x = 0; x < ENV_LEN; x++) {
if (n_points > 3 && x > env_x[ix+3])
ix++;
if (n_points > 2 && x >= env_x[ix2+1])
ix2++;

int y;
if (env_lin[ix2] > 0) {
y = (env_y[ix2] + (env_y[ix2+1] - env_y[ix2]) * ((float)x - env_x[ix2]) / (env_x[ix2+1] - env_x[ix2])) * 2.55;
} else if (n_points > 3)
@@ -1272,12 +1266,8 @@ static espeak_ng_STATUS LoadDataFile(CompileContext *ctx, const char *path, int
// load spectrum sequence or sample data from a file.
// return index into spect or sample data area. bit 23=1 if a sample

FILE *f;
int id;
int hash;
int type_code = ' ';
REF_HASH_TAB *p, *p2;
char buf[sizeof(path_home)+150];

if (strcmp(path, "NULL") == 0)
return ENS_OK;
@@ -1300,8 +1290,10 @@ static espeak_ng_STATUS LoadDataFile(CompileContext *ctx, const char *path, int
}

if (*addr == 0) {
char buf[sizeof(path_home)+150];
sprintf(buf, "%s/%s", ctx->phsrc, path);

FILE *f;
if ((f = fopen(buf, "rb")) == NULL) {
sprintf(buf, "%s/%s.wav", ctx->phsrc, path);
if ((f = fopen(buf, "rb")) == NULL) {
@@ -1310,10 +1302,11 @@ static espeak_ng_STATUS LoadDataFile(CompileContext *ctx, const char *path, int
}
}

id = Read4Bytes(f);
int id = Read4Bytes(f);
rewind(f);

espeak_ng_STATUS status = ENS_OK;
int type_code = ' ';
if (id == 0x43455053) {
status = LoadSpect(ctx, path, control, addr);
type_code = 'S';
@@ -1445,27 +1438,25 @@ static void CompileSound(CompileContext *ctx, int keyword, int isvowel)
*/
static int CompileIf(CompileContext *ctx, int elif)
{
int key;
bool finish = false;
int word = 0;
int word2;
int data;
int bitmap;
int brackets;
bool not_flag;
unsigned short *prog_last_if = NULL;

ctx->then_count = 2;
ctx->after_if = true;

while (!finish) {
not_flag = false;
word2 = 0;
bool not_flag = false;
int word2 = 0;
if (ctx->prog_out >= ctx->prog_out_max) {
error(ctx, "Phoneme program too large");
return 0;
}

int key;
if ((key = NextItem(ctx, tCONDITION)) < 0)
error(ctx, "Expected a condition, not '%s'", ctx->item_string);

@@ -1555,11 +1546,10 @@ static int CompileIf(CompileContext *ctx, int elif)
static void FillThen(CompileContext *ctx, int add)
{
unsigned short *p;
int offset;

p = ctx->if_stack[ctx->if_level].p_then;
if (p != NULL) {
offset = ctx->prog_out - p + add;
int offset = ctx->prog_out - p + add;

if ((ctx->then_count == 1) && (ctx->if_level == 1)) {
// The THEN part only contains one statement, we can remove the THEN jump
@@ -1583,7 +1573,6 @@ static void FillThen(CompileContext *ctx, int add)
static int CompileElse(CompileContext *ctx)
{
unsigned short *ref;
unsigned short *p;

if (ctx->if_level < 1) {
error(ctx, "ELSE not expected");
@@ -1599,6 +1588,7 @@ static int CompileElse(CompileContext *ctx)
ref = ctx->prog_out;
*ctx->prog_out++ = 0;

unsigned short *p;
if ((p = ctx->if_stack[ctx->if_level].p_else) != NULL)
*ref = ref - p; // backwards offset to the previous else
ctx->if_stack[ctx->if_level].p_else = ref;
@@ -1622,8 +1612,6 @@ static int CompileElif(CompileContext *ctx)
static int CompileEndif(CompileContext *ctx)
{
unsigned short *p;
int chain;
int offset;

if (ctx->if_level < 1) {
error(ctx, "ENDIF not expected");
@@ -1633,10 +1621,11 @@ static int CompileEndif(CompileContext *ctx)
FillThen(ctx, 0);

if ((p = ctx->if_stack[ctx->if_level].p_else) != NULL) {
int chain;
do {
chain = *p; // a chain of previous else links

offset = ctx->prog_out - p;
int offset = ctx->prog_out - p;
if (offset > MAX_JUMP)
error(ctx, "IF block is too long");
*p = i_JUMP + offset;
@@ -1787,7 +1776,6 @@ static void DecThenCount(CompileContext *ctx)
static int CompilePhoneme(CompileContext *ctx, int compile_phoneme)
{
int endphoneme = 0;
int keyword;
int value;
int phcode = 0;
int flags;
@@ -1836,6 +1824,7 @@ static int CompilePhoneme(CompileContext *ctx, int compile_phoneme)
ctx->phoneme_out->phflags = 0;

while (!endphoneme && !feof(ctx->f_in)) {
int keyword;
if ((keyword = NextItem(ctx, tKEYWORD)) < 0) {
if (keyword == -2) {
error(ctx, "Missing 'endphoneme' before end-of-file"); // end of file
@@ -2140,9 +2129,7 @@ static void WritePhonemeTables(CompileContext *ctx)
{
int ix;
int j;
int n;
int value;
int count;
PHONEME_TAB *p;

value = ctx->n_phoneme_tabs;
@@ -2153,12 +2140,12 @@ static void WritePhonemeTables(CompileContext *ctx)

for (ix = 0; ix < ctx->n_phoneme_tabs; ix++) {
p = ctx->phoneme_tab_list2[ix].phoneme_tab_ptr;
n = ctx->n_phcodes_list[ix];
int n = ctx->n_phcodes_list[ix];
memset(&p[n], 0, sizeof(p[n]));
p[n].mnemonic = 0; // terminate the phoneme table

// count number of locally declared phonemes
count = 0;
int count = 0;
for (j = 0; j < n; j++) {
if (ix == 0)
p[j].phflags |= phLOCAL; // write all phonemes in the base phoneme table
@@ -2211,8 +2198,6 @@ static void EndPhonemeTable(CompileContext *ctx)

static void StartPhonemeTable(CompileContext *ctx, const char *name)
{
int ix;
int j;
PHONEME_TAB *p;

if (ctx->n_phoneme_tabs >= N_PHONEME_TABS-1) {
@@ -2235,6 +2220,7 @@ static void StartPhonemeTable(CompileContext *ctx, const char *name)

if (ctx->n_phoneme_tabs > 0) {
NextItem(ctx, tSTRING); // name of base phoneme table
int ix;
for (ix = 0; ix < ctx->n_phoneme_tabs; ix++) {
if (strcmp(ctx->item_string, ctx->phoneme_tab_list2[ix].name) == 0) {
ctx->phoneme_tab_list2[ctx->n_phoneme_tabs].includes = ix+1;
@@ -2244,6 +2230,7 @@ static void StartPhonemeTable(CompileContext *ctx, const char *name)
ctx->n_phcodes = ctx->n_phcodes_list[ix];

// clear "local phoneme" bit"
int j;
for (j = 0; j < ctx->n_phcodes; j++)
ctx->phoneme_tab2[j].phflags &= ~phLOCAL;
break;
@@ -2259,7 +2246,6 @@ static void StartPhonemeTable(CompileContext *ctx, const char *name)

static void CompilePhonemeFiles(CompileContext *ctx)
{
int item;
FILE *f;
char buf[sizeof(path_home)+120];

@@ -2282,7 +2268,7 @@ static void CompilePhonemeFiles(CompileContext *ctx)
ctx->linenum = ctx->stack[ctx->stack_ix].linenum;
}

item = NextItem(ctx, tKEYWORD);
int item = NextItem(ctx, tKEYWORD);

switch (item)
{
@@ -2549,7 +2535,6 @@ espeak_ng_CompileIntonationPath(const char *source_path,
int ix;
char *p;
char c;
int keyword;
int n_tune_names = 0;
bool done_split = false;
bool done_onset = false;
@@ -2640,7 +2625,7 @@ espeak_ng_CompileIntonationPath(const char *source_path,
}

while (!feof(ctx->f_in)) {
keyword = NextItem(ctx, tINTONATION);
int keyword = NextItem(ctx, tINTONATION);

switch (keyword)
{

Loading…
Cancel
Save